diff --git a/packages/lib/package.json b/packages/lib/package.json index 472864be..ad1f15c7 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -1,6 +1,6 @@ { "name": "@dorgtech/daocreator-lib", - "version": "1.0.1", + "version": "1.0.2", "main": "dist/index.js", "license": "MIT", "scripts": { @@ -18,7 +18,7 @@ "jsonschema": "^1.2.5" }, "devDependencies": { - "@daostack/migration": "0.0.1-rc.36-v5", + "@daostack/migration": "0.0.1-rc.41-v7", "@types/bn.js": "^4.11.5", "@types/node": "^10.12.18", "@types/web3": "1.0.19", diff --git a/packages/lib/scripts/prepArc.js b/packages/lib/scripts/prepArc.js index 8bc68dfb..f9c1795b 100644 --- a/packages/lib/scripts/prepArc.js +++ b/packages/lib/scripts/prepArc.js @@ -16,7 +16,7 @@ async function copyMigrationScript() { "utils.js", "sanitize.js", "migration.json", - "contracts-optimized/0.0.1-rc.33" + "contracts-optimized/0.0.1-rc.41" ]; const baseDir = path.dirname(require.resolve("@daostack/migration")); const destDir = path.join(__dirname, "../src/dependency/arc/src"); diff --git a/packages/lib/src/dependency/arc/migration.ts b/packages/lib/src/dependency/arc/migration.ts index 274d01a6..f862db41 100644 --- a/packages/lib/src/dependency/arc/migration.ts +++ b/packages/lib/src/dependency/arc/migration.ts @@ -15,7 +15,15 @@ export const migrateDAO = async ( try { const web3 = await getWeb3(); const opts = await getDefaultOpts(); - const network = await getNetworkName(); + let network = await getNetworkName(); + + if (network === 'private') { + if (await web3.eth.net.getId() === 100) { + network = 'xdai' + } else if (await web3.eth.net.getId() === 77) { + network = 'sokol' + } + } const logTx = async ({ transactionHash, gasUsed }: any, msg: string) => { const tx = await web3.eth.getTransaction(transactionHash); @@ -65,7 +73,7 @@ export const migrateDAO = async ( return { receipt, result }; }; - const arcVersion = "0.0.1-rc.33"; + const arcVersion = "0.0.1-rc.41"; const getArcVersionNumber = (ver: string) => Number(ver.slice(-2)); // If the user doesn't have a supported network chosen, abort diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ARCDebug.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ARCDebug.json deleted file mode 100644 index 343bb959..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ARCDebug.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "contractName": "ARCDebug", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_msg", - "type": "address" - } - ], - "name": "LogAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "int256", - "name": "_msg", - "type": "int256" - } - ], - "name": "LogInt", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "_msg", - "type": "string" - } - ], - "name": "LogString", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_msg", - "type": "uint256" - } - ], - "name": "LogUint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "_msg", - "type": "bytes" - } - ], - "name": "LogBytes", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "_msg", - "type": "bytes32" - } - ], - "name": "LogBytes32", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "_msg", - "type": "bool" - } - ], - "name": "LogBool", - "type": "event" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ARCVotingMachineCallbacksMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ARCVotingMachineCallbacksMock.json deleted file mode 100644 index 90ebf0c1..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ARCVotingMachineCallbacksMock.json +++ /dev/null @@ -1,144 +0,0 @@ -{ - "contractName": "ARCVotingMachineCallbacksMock", - "abi": [ - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "address", - "name": "_votingMachine", - "type": "address" - } - ], - "name": "propose", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AbsoluteVote.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AbsoluteVote.json deleted file mode 100644 index 4d27d880..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AbsoluteVote.json +++ /dev/null @@ -1,400 +0,0 @@ -{ - "contractName": "AbsoluteVote", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { "internalType": "uint256", "name": "precReq", "type": "uint256" }, - { "internalType": "address", "name": "voteOnBehalf", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalsCnt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposals", - "outputs": [ - { - "internalType": "bytes32", - "name": "organizationId", - "type": "bytes32" - }, - { "internalType": "bool", "name": "open", "type": "bool" }, - { "internalType": "address", "name": "callbacks", "type": "address" }, - { - "internalType": "uint256", - "name": "numOfChoices", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "paramsHash", "type": "bytes32" }, - { "internalType": "uint256", "name": "totalVotes", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MAX_NUM_OF_CHOICES", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "organizations", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_isProxyVote", - "type": "bool" - } - ], - "name": "AVVoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_decision", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_totalReputation", - "type": "uint256" - } - ], - "name": "ExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "VoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - } - ], - "name": "CancelVoting", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "vote", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "cancelVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "execute", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getNumberOfChoices", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "voteInfo", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_choice", "type": "uint256" } - ], - "name": "voteStatus", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "isVotable", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isAbstainAllow", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAllowedRangeOfChoices", - "outputs": [ - { "internalType": "uint256", "name": "min", "type": "uint256" }, - { "internalType": "uint256", "name": "max", "type": "uint256" } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_precReq", "type": "uint256" }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_precReq", "type": "uint256" }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AbsoluteVoteExecuteMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AbsoluteVoteExecuteMock.json deleted file mode 100644 index 7c47b473..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AbsoluteVoteExecuteMock.json +++ /dev/null @@ -1,404 +0,0 @@ -{ - "contractName": "AbsoluteVoteExecuteMock", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "absoluteVote", - "outputs": [ - { - "internalType": "contract AbsoluteVote", - "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": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputation", - "outputs": [ - { "internalType": "contract Reputation", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposalsBlockNumbers", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Reputation", - "name": "_reputation", - "type": "address" - }, - { - "internalType": "contract AbsoluteVote", - "name": "_absoluteVote", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_msg", - "type": "address" - } - ], - "name": "LogAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "int256", - "name": "_msg", - "type": "int256" - } - ], - "name": "LogInt", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "_msg", - "type": "string" - } - ], - "name": "LogString", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_msg", - "type": "uint256" - } - ], - "name": "LogUint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "_msg", - "type": "bytes" - } - ], - "name": "LogBytes", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "_msg", - "type": "bytes32" - } - ], - "name": "LogBytes32", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "_msg", - "type": "bool" - } - ], - "name": "LogBool", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_decision", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "_proposer", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "burnReputationTest", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "setProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ActionMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ActionMock.json deleted file mode 100644 index 4fd4eaf4..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ActionMock.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "contractName": "ActionMock", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "activationTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_addr", - "type": "address" - } - ], - "name": "WithoutReturnValue", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "ReceiveEther", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_a", "type": "uint256" }, - { "internalType": "address", "name": "_b", "type": "address" }, - { "internalType": "bytes32", "name": "_c", "type": "bytes32" } - ], - "name": "test", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_addr", "type": "address" } - ], - "name": "test2", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_addr", "type": "address" } - ], - "name": "withoutReturnValue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_activationTime", - "type": "uint256" - } - ], - "name": "setActivationTime", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "test3", - "outputs": [], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Address.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Address.json deleted file mode 100644 index 6d16a5ef..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Address.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "Address", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Agreement.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Agreement.json deleted file mode 100644 index 12ee64c6..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Agreement.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "contractName": "Agreement", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AgreementMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AgreementMock.json deleted file mode 100644 index 1742c2ee..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/AgreementMock.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "contractName": "AgreementMock", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "setAgreementHashTest", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "test", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Auction4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Auction4Reputation.json deleted file mode 100644 index 4a2e9ebc..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Auction4Reputation.json +++ /dev/null @@ -1,282 +0,0 @@ -{ - "contractName": "Auction4Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "auctionPeriod", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "auctionReputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfAuctions", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "wallet", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "auctionsEndTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "auctions", - "outputs": [ - { "internalType": "uint256", "name": "totalBid", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "auctionsStartTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationRewardLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { "internalType": "contract IERC20", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_bidder", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_auctionId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Bid", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_auctionId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_auctionReputationReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_auctionsStartTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_auctionPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_numberOfAuctions", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_redeemEnableTime", - "type": "uint256" - }, - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { "internalType": "address", "name": "_wallet", "type": "address" }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_auctionId", "type": "uint256" } - ], - "name": "redeem", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "uint256", "name": "_auctionId", "type": "uint256" }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "bid", - "outputs": [ - { "internalType": "uint256", "name": "auctionId", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "transferToWallet", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_bidder", "type": "address" }, - { "internalType": "uint256", "name": "_auctionId", "type": "uint256" } - ], - "name": "getBid", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Avatar.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Avatar.json deleted file mode 100644 index 9ad22d54..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Avatar.json +++ /dev/null @@ -1,374 +0,0 @@ -{ - "contractName": "Avatar", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "orgName", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nativeReputation", - "outputs": [ - { "internalType": "contract Reputation", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nativeToken", - "outputs": [ - { "internalType": "contract DAOToken", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "string", "name": "_orgName", "type": "string" }, - { - "internalType": "contract DAOToken", - "name": "_nativeToken", - "type": "address" - }, - { - "internalType": "contract Reputation", - "name": "_nativeReputation", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { "payable": true, "stateMutability": "payable", "type": "fallback" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_contract", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_success", - "type": "bool" - } - ], - "name": "GenericCall", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_amountInWei", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - } - ], - "name": "SendEther", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_externalToken", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "ExternalTokenTransfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_externalToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "ExternalTokenTransferFrom", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_externalToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "ExternalTokenApproval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "ReceiveEther", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "_metaData", - "type": "string" - } - ], - "name": "MetaData", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_contract", "type": "address" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "genericCall", - "outputs": [ - { "internalType": "bool", "name": "success", "type": "bool" }, - { "internalType": "bytes", "name": "returnValue", "type": "bytes" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_amountInWei", - "type": "uint256" - }, - { "internalType": "address payable", "name": "_to", "type": "address" } - ], - "name": "sendEther", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "externalTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "externalTokenTransferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "externalTokenApproval", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "string", "name": "_metaData", "type": "string" } - ], - "name": "metaData", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/BadERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/BadERC20.json deleted file mode 100644 index b9c551c6..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/BadERC20.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "contractName": "BadERC20", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "balances", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "transfer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ContinuousLocking4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ContinuousLocking4Reputation.json deleted file mode 100644 index 1e53beb2..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ContinuousLocking4Reputation.json +++ /dev/null @@ -1,446 +0,0 @@ -{ - "contractName": "ContinuousLocking4Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "repRewardConstB", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "repRewardConstA", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxLockingBatches", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MAX_LOCKING_BATCHES_HARDCAP", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "batchTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "batchesIndexCap", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "startTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockCounter", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "name": "lockers", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "uint256", "name": "lockingTime", "type": "uint256" }, - { "internalType": "uint256", "name": "period", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationRewardLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "batches", - "outputs": [ - { "internalType": "uint256", "name": "totalScore", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLockedLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { "internalType": "contract IERC20", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_lockingId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_batchIndex", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "uint256", - "name": "_lockingId", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Release", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_locker", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_lockingId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_period", - "type": "uint256" - } - ], - "name": "LockToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_locker", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_lockingId", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_extendPeriod", - "type": "uint256" - } - ], - "name": "ExtendLocking", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputationReward", - "type": "uint256" - }, - { "internalType": "uint256", "name": "_startTime", "type": "uint256" }, - { "internalType": "uint256", "name": "_batchTime", "type": "uint256" }, - { - "internalType": "uint256", - "name": "_redeemEnableTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxLockingBatches", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_repRewardConstA", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_repRewardConstB", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_batchesIndexCap", - "type": "uint256" - }, - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_lockingId", "type": "uint256" } - ], - "name": "redeem", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "uint256", "name": "_period", "type": "uint256" }, - { - "internalType": "uint256", - "name": "_batchIndexToLockIn", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "lock", - "outputs": [ - { "internalType": "uint256", "name": "lockingId", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_extendPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_batchIndexToLockIn", - "type": "uint256" - }, - { "internalType": "uint256", "name": "_lockingId", "type": "uint256" }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "extendLocking", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_lockingId", "type": "uint256" } - ], - "name": "release", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_batchIndex", "type": "uint256" } - ], - "name": "getRepRewardPerBatch", - "outputs": [ - { "internalType": "uint256", "name": "repReward", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_batchIndex", "type": "uint256" }, - { "internalType": "uint256", "name": "_lockingId", "type": "uint256" } - ], - "name": "getLockingIdScore", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ContributionReward.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ContributionReward.json deleted file mode 100644 index b5cbd599..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ContributionReward.json +++ /dev/null @@ -1,677 +0,0 @@ -{ - "contractName": "ContributionReward", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "bytes32", - "name": "voteApproveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "organizationsProposals", - "outputs": [ - { - "internalType": "uint256", - "name": "nativeTokenReward", - "type": "uint256" - }, - { - "internalType": "int256", - "name": "reputationChange", - "type": "int256" - }, - { "internalType": "uint256", "name": "ethReward", "type": "uint256" }, - { - "internalType": "contract IERC20", - "name": "externalToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "externalTokenReward", - "type": "uint256" - }, - { - "internalType": "address payable", - "name": "beneficiary", - "type": "address" - }, - { - "internalType": "uint256", - "name": "periodLength", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "numberOfPeriods", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "executionTime", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_reputationChange", - "type": "int256" - }, - { - "indexed": false, - "internalType": "uint256[5]", - "name": "_rewards", - "type": "uint256[5]" - }, - { - "indexed": false, - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - } - ], - "name": "NewContributionProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_amount", - "type": "int256" - } - ], - "name": "RedeemReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemEther", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemNativeToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemExternalToken", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_param", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "_voteApproveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - }, - { - "internalType": "int256", - "name": "_reputationChange", - "type": "int256" - }, - { - "internalType": "uint256[5]", - "name": "_rewards", - "type": "uint256[5]" - }, - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { - "internalType": "address payable", - "name": "_beneficiary", - "type": "address" - } - ], - "name": "proposeContributionReward", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "redeemReputation", - "outputs": [ - { "internalType": "int256", "name": "reputation", "type": "int256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "redeemNativeToken", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "redeemEther", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "redeemExternalToken", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "bool[4]", - "name": "_whatToRedeem", - "type": "bool[4]" - } - ], - "name": "redeem", - "outputs": [ - { - "internalType": "int256", - "name": "reputationReward", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "nativeTokenReward", - "type": "uint256" - }, - { "internalType": "uint256", "name": "etherReward", "type": "uint256" }, - { - "internalType": "uint256", - "name": "externalTokenReward", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" }, - { "internalType": "uint256", "name": "_redeemType", "type": "uint256" } - ], - "name": "getPeriodsToPay", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" }, - { "internalType": "uint256", "name": "_redeemType", "type": "uint256" } - ], - "name": "getRedeemedPeriods", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getProposalEthReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getProposalExternalTokenReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getProposalExternalToken", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getProposalExecutionTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_voteApproveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Controller.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Controller.json deleted file mode 100644 index 979bb082..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Controller.json +++ /dev/null @@ -1,657 +0,0 @@ -{ - "contractName": "Controller", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "globalConstraintsRegisterPre", - "outputs": [ - { "internalType": "bool", "name": "isRegistered", "type": "bool" }, - { "internalType": "uint256", "name": "index", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "newController", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "globalConstraintsPre", - "outputs": [ - { "internalType": "address", "name": "gcAddress", "type": "address" }, - { "internalType": "bytes32", "name": "params", "type": "bytes32" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "globalConstraintsRegisterPost", - "outputs": [ - { "internalType": "bool", "name": "isRegistered", "type": "bool" }, - { "internalType": "uint256", "name": "index", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nativeReputation", - "outputs": [ - { "internalType": "contract Reputation", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "schemes", - "outputs": [ - { "internalType": "bytes32", "name": "paramsHash", "type": "bytes32" }, - { "internalType": "bytes4", "name": "permissions", "type": "bytes4" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nativeToken", - "outputs": [ - { "internalType": "contract DAOToken", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "globalConstraintsPost", - "outputs": [ - { "internalType": "address", "name": "gcAddress", "type": "address" }, - { "internalType": "bytes32", "name": "params", "type": "bytes32" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "MintReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "BurnReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "MintTokens", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_scheme", - "type": "address" - } - ], - "name": "RegisterScheme", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_scheme", - "type": "address" - } - ], - "name": "UnregisterScheme", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_oldController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_newController", - "type": "address" - } - ], - "name": "UpgradeController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_params", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum GlobalConstraintInterface.CallPhase", - "name": "_when", - "type": "uint8" - } - ], - "name": "AddGlobalConstraint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_index", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_isPre", - "type": "bool" - } - ], - "name": "RemoveGlobalConstraint", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "mintTokens", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "bytes4", "name": "_permissions", "type": "bytes4" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "registerScheme", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "unregisterScheme", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "unregisterSelf", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "addGlobalConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "removeGlobalConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newController", - "type": "address" - }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "upgradeController", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_contract", "type": "address" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "genericCall", - "outputs": [ - { "internalType": "bool", "name": "", "type": "bool" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_amountInWei", - "type": "uint256" - }, - { "internalType": "address payable", "name": "_to", "type": "address" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "sendEther", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenTransferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenApproval", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "string", "name": "_metaData", "type": "string" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "metaData", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getNativeReputation", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "isSchemeRegistered", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getSchemeParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getSchemePermissions", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "", "type": "address" } - ], - "name": "getGlobalConstraintParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "globalConstraintsCount", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "isGlobalConstraintRegistered", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ControllerCreator.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ControllerCreator.json deleted file mode 100644 index 36d4e4d3..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ControllerCreator.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "contractName": "ControllerCreator", - "abi": [ - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "create", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ControllerInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ControllerInterface.json deleted file mode 100644 index 096ec643..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ControllerInterface.json +++ /dev/null @@ -1,360 +0,0 @@ -{ - "contractName": "ControllerInterface", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "mintTokens", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "bytes4", "name": "_permissions", "type": "bytes4" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "registerScheme", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "unregisterScheme", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "unregisterSelf", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "addGlobalConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "removeGlobalConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newController", - "type": "address" - }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "upgradeController", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_contract", "type": "address" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "genericCall", - "outputs": [ - { "internalType": "bool", "name": "", "type": "bool" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_amountInWei", - "type": "uint256" - }, - { "internalType": "address payable", "name": "_to", "type": "address" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "sendEther", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenTransferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenApproval", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "string", "name": "_metaData", "type": "string" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "metaData", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getNativeReputation", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "isSchemeRegistered", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getSchemeParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getGlobalConstraintParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getSchemePermissions", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "globalConstraintsCount", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "isGlobalConstraintRegistered", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/CurveInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/CurveInterface.json deleted file mode 100644 index 4c94b6f5..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/CurveInterface.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "contractName": "CurveInterface", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "name": "calc", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAORegistry.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAORegistry.json deleted file mode 100644 index 30fe257a..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAORegistry.json +++ /dev/null @@ -1,2367 +0,0 @@ -{ - "contractName": "DAORegistry", - "abi": [ - { - "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": "isOwner", - "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" - }, - { - "inputs": [{ "name": "_owner", "type": "address" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [{ "indexed": true, "name": "_avatar", "type": "address" }], - "name": "Propose", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { "indexed": true, "name": "_avatar", "type": "address" }, - { "indexed": false, "name": "_name", "type": "string" } - ], - "name": "Register", - "type": "event" - }, - { - "anonymous": false, - "inputs": [{ "indexed": true, "name": "_avatar", "type": "address" }], - "name": "UnRegister", - "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": "_avatar", "type": "address" }], - "name": "propose", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "_avatar", "type": "address" }, - { "name": "_name", "type": "string" } - ], - "name": "register", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [{ "name": "_avatar", "type": "address" }], - "name": "unRegister", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "name": "_name", "type": "string" }], - "name": "isRegister", - "outputs": [{ "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "sourceMap": "90:903:0:-;;;325:77;8:9:-1;5:2;;;30:1;27;20:12;5:2;325:77:0;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;325:77:0;515:6:2;:19;;-1:-1:-1;;;;;;515:19:2;524:10;515:19;;;;549:40;;-1:-1:-1;;;;;582:6:2;;;;;515;-1:-1:-1;;;;;;;;;;;549:40:2;515:6;;549:40;370:25:0;388:6;370:17;;;;:25;:::i;:::-;325:77;90:903;;1731:107:2;863:9;:7;;;;:9;:::i;:::-;855:18;;;;;;;;1803:28;1822:8;1803:18;;;;:28;:::i;:::-;1731:107;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:2;1042:10;:20;;979:90::o;1982:183::-;-1:-1:-1;;;;;2055:22:2;;;;2047:31;;;;;;2114:6;;;2093:38;;-1:-1:-1;;;;;2093:38:2;;;;2114:6;;;-1:-1:-1;;;;;;;;;;;2093:38:2;;2141:6;:17;;-1:-1:-1;;;;;;2141:17:2;-1:-1:-1;;;;;2141:17:2;;;;;;;;;;1982:183::o;90:903:0:-;;;;;;;", - "deployedSourceMap": "90:903:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;90:903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:79;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;408:79:0;-1:-1:-1;;;;;408:79:0;;:::i;:::-;;884:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;884:106:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;884:106:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;884:106:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;884:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;884:106:0;;-1:-1:-1;884:106:0;;-1:-1:-1;;;;;884:106:0:i;:::-;;;;;;;;;;;;;;;;;;685:95;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;685:95:0;-1:-1:-1;;;;;685:95:0;;:::i;493:186::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;493:186:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;493:186:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;493:186:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;493:186:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;493:186:0;;-1:-1:-1;493:186:0;;-1:-1:-1;;;;;493:186:0:i;1423:137:2:-;;;:::i;659:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;659:77:2;;;;;;;;;;;;;;979:90;;;:::i;1731:107::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1731:107:2;-1:-1:-1;;;;;1731:107:2;;:::i;408:79:0:-;464:16;;-1:-1:-1;;;;;464:16:0;;;;;;;;408:79;:::o;884:106::-;945:4;968:8;977:5;968:15;;;;;;;;;;;;;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;;968:15:0;;;;;-1:-1:-1;968:15:0;;;;;;;;;;;;;;884:106;-1:-1:-1;;;;884:106:0:o;685:95::-;863:9:2;:7;:9::i;:::-;855:18;;;;;;;;754:19:0;;-1:-1:-1;;;;;754:19:0;;;;;;;;685:95;:::o;493:186::-;863:9:2;:7;:9::i;:::-;855:18;;;;;;;;585:8:0;594:5;585:15;;;;;;;;;;;;;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;;585:15:0;;;;;-1:-1:-1;585:15:0;;;;;;;;;;;;;584:16;;-1:-1:-1;576:25:0;;-1:-1:-1;576:25:0;;;;;629:4;611:8;620:5;611:15;;;;;;;;;;;;;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;;611:15:0;;;;;-1:-1:-1;611:15:0;;;;;;;;;;;:22;;-1:-1:-1;;611:22:0;;;;;;;;;;;648:24;;;;;;;;;;;-1:-1:-1;;;;;648:24:0;;;;;;;-1:-1:-1;611:15:0;-1:-1:-1;611:15:0;;648:24;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;648:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:186;;:::o;1423:137:2:-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1521:1;1505:6;;1484:40;;-1:-1:-1;;;;;1505:6:2;;;;1484:40;;1521:1;;1484:40;1551:1;1534:19;;-1:-1:-1;;1534:19:2;;;1423:137::o;659:77::-;697:7;723:6;-1:-1:-1;;;;;723:6:2;659:77;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:2;1042:10;:20;;979:90::o;1731:107::-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1803:28;1822:8;1803:18;:28::i;:::-;1731:107;:::o;1982:183::-;-1:-1:-1;;;;;2055:22:2;;;;2047:31;;;;;;2114:6;;;2093:38;;-1:-1:-1;;;;;2093:38:2;;;;2114:6;;;2093:38;;;2141:6;:17;;-1:-1:-1;;2141:17:2;-1:-1:-1;;;;;2141:17:2;;;;;;;;;;1982:183::o", - "source": "pragma solidity ^0.5.4;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract DAORegistry is Ownable {\n\n event Propose(address indexed _avatar);\n event Register(address indexed _avatar, string _name);\n event UnRegister(address indexed _avatar);\n\n mapping(string=>bool) private registry;\n\n constructor(address _owner) public {\n transferOwnership(_owner);\n }\n\n function propose(address _avatar) public {\n emit Propose(_avatar);\n }\n\n function register(address _avatar, string memory _name) public onlyOwner {\n require(!registry[_name]);\n registry[_name] = true;\n emit Register(_avatar, _name);\n }\n\n function unRegister(address _avatar) public onlyOwner {\n emit UnRegister(_avatar);\n }\n\n //This getter is needed because Dynamically-sized keys for public mappings are not supported.\n function isRegister(string memory _name) public view returns(bool) {\n return registry[_name];\n }\n\n}\n", - "sourcePath": "/Users/oren/daostack/daostack2/arc-hive/contracts/DAORegistry.sol", - "ast": { - "absolutePath": "/Users/oren/daostack/daostack2/arc-hive/contracts/DAORegistry.sol", - "exportedSymbols": { "DAORegistry": [95] }, - "id": 96, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": ["solidity", "^", "0.5", ".4"], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 96, - "sourceUnit": 263, - "src": "25:63:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 262, - "src": "114:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$262", - "typeString": "contract Ownable" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "114:7:0" - } - ], - "contractDependencies": [262], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 95, - "linearizedBaseContracts": [95, 262], - "name": "DAORegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 8, - "name": "Propose", - "nodeType": "EventDefinition", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6, - "indexed": true, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 8, - "src": "143:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "143:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "142:25:0" - }, - "src": "129:39:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 14, - "name": "Register", - "nodeType": "EventDefinition", - "parameters": { - "id": 13, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10, - "indexed": true, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 14, - "src": "188:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "188:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12, - "indexed": false, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 14, - "src": "213:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "213:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "187:39:0" - }, - "src": "173:54:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 18, - "name": "UnRegister", - "nodeType": "EventDefinition", - "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "indexed": true, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "249:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "249:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "248:25:0" - }, - "src": "232:42:0" - }, - { - "constant": false, - "id": 22, - "name": "registry", - "nodeType": "VariableDeclaration", - "scope": 95, - "src": "280:38:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "typeName": { - "id": 21, - "keyType": { - "id": 19, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "288:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "280:21:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "valueType": { - "id": 20, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "296:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 31, - "nodeType": "Block", - "src": "360:42:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 28, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "388:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27, - "name": "transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "370:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "370:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30, - "nodeType": "ExpressionStatement", - "src": "370:25:0" - } - ] - }, - "documentation": null, - "id": 32, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "337:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 23, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "337:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:16:0" - }, - "returnParameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [], - "src": "360:0:0" - }, - "scope": 95, - "src": "325:77:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 41, - "nodeType": "Block", - "src": "449:38:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 38, - "name": "_avatar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "472:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 37, - "name": "Propose", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "464:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "464:16:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 40, - "nodeType": "EmitStatement", - "src": "459:21:0" - } - ] - }, - "documentation": null, - "id": 42, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "propose", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 35, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "425:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "425:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "424:17:0" - }, - "returnParameters": { - "id": 36, - "nodeType": "ParameterList", - "parameters": [], - "src": "449:0:0" - }, - "scope": 95, - "src": "408:79:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 69, - "nodeType": "Block", - "src": "566:113:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 55, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "584:16:0", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 52, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "585:8:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 54, - "indexExpression": { - "argumentTypes": null, - "id": 53, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "594:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "585:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 51, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [280, 281], - "referencedDeclaration": 280, - "src": "576:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "576:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 57, - "nodeType": "ExpressionStatement", - "src": "576:25:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 58, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "611:8:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 60, - "indexExpression": { - "argumentTypes": null, - "id": 59, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "620:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "611:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 61, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "629:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "611:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 63, - "nodeType": "ExpressionStatement", - "src": "611:22:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 65, - "name": "_avatar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "657:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 66, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "666:5:0", - "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": 64, - "name": "Register", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14, - "src": "648:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "648:24:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 68, - "nodeType": "EmitStatement", - "src": "643:29:0" - } - ] - }, - "documentation": null, - "id": 70, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 49, - "modifierName": { - "argumentTypes": null, - "id": 48, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "556:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "556:9:0" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 47, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "511:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "528:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 45, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "528:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "510:38:0" - }, - "returnParameters": { - "id": 50, - "nodeType": "ParameterList", - "parameters": [], - "src": "566:0:0" - }, - "scope": 95, - "src": "493:186:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 81, - "nodeType": "Block", - "src": "739:41:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 78, - "name": "_avatar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72, - "src": "765:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77, - "name": "UnRegister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "754:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "754:19:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 80, - "nodeType": "EmitStatement", - "src": "749:24:0" - } - ] - }, - "documentation": null, - "id": 82, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 75, - "modifierName": { - "argumentTypes": null, - "id": 74, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "729:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "729:9:0" - } - ], - "name": "unRegister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 73, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 72, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "705:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 71, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "705:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "704:17:0" - }, - "returnParameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [], - "src": "739:0:0" - }, - "scope": 95, - "src": "685:95:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 93, - "nodeType": "Block", - "src": "951:39:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 89, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "968:8:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 91, - "indexExpression": { - "argumentTypes": null, - "id": 90, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "977:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "968:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 88, - "id": 92, - "nodeType": "Return", - "src": "961:22:0" - } - ] - }, - "documentation": null, - "id": 94, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 85, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "904:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 83, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "904:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:21:0" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "945:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 86, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "945:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "944:6:0" - }, - "scope": 95, - "src": "884:106:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 96, - "src": "90:903:0" - } - ], - "src": "0:994:0" - }, - "legacyAST": { - "absolutePath": "/Users/oren/daostack/daostack2/arc-hive/contracts/DAORegistry.sol", - "exportedSymbols": { "DAORegistry": [95] }, - "id": 96, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": ["solidity", "^", "0.5", ".4"], - "nodeType": "PragmaDirective", - "src": "0:23:0" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "file": "openzeppelin-solidity/contracts/ownership/Ownable.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 96, - "sourceUnit": 263, - "src": "25:63:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 3, - "name": "Ownable", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 262, - "src": "114:7:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Ownable_$262", - "typeString": "contract Ownable" - } - }, - "id": 4, - "nodeType": "InheritanceSpecifier", - "src": "114:7:0" - } - ], - "contractDependencies": [262], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 95, - "linearizedBaseContracts": [95, 262], - "name": "DAORegistry", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 8, - "name": "Propose", - "nodeType": "EventDefinition", - "parameters": { - "id": 7, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6, - "indexed": true, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 8, - "src": "143:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "143:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "142:25:0" - }, - "src": "129:39:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 14, - "name": "Register", - "nodeType": "EventDefinition", - "parameters": { - "id": 13, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10, - "indexed": true, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 14, - "src": "188:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "188:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 12, - "indexed": false, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 14, - "src": "213:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 11, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "213:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "187:39:0" - }, - "src": "173:54:0" - }, - { - "anonymous": false, - "documentation": null, - "id": 18, - "name": "UnRegister", - "nodeType": "EventDefinition", - "parameters": { - "id": 17, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 16, - "indexed": true, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 18, - "src": "249:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 15, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "249:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "248:25:0" - }, - "src": "232:42:0" - }, - { - "constant": false, - "id": 22, - "name": "registry", - "nodeType": "VariableDeclaration", - "scope": 95, - "src": "280:38:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "typeName": { - "id": 21, - "keyType": { - "id": 19, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "288:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "nodeType": "Mapping", - "src": "280:21:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string => bool)" - }, - "valueType": { - "id": 20, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "296:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 31, - "nodeType": "Block", - "src": "360:42:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 28, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 24, - "src": "388:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 27, - "name": "transferOwnership", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "370:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 29, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "370:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 30, - "nodeType": "ExpressionStatement", - "src": "370:25:0" - } - ] - }, - "documentation": null, - "id": 32, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 25, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 24, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 32, - "src": "337:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 23, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "337:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "336:16:0" - }, - "returnParameters": { - "id": 26, - "nodeType": "ParameterList", - "parameters": [], - "src": "360:0:0" - }, - "scope": 95, - "src": "325:77:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 41, - "nodeType": "Block", - "src": "449:38:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 38, - "name": "_avatar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 34, - "src": "472:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 37, - "name": "Propose", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8, - "src": "464:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 39, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "464:16:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 40, - "nodeType": "EmitStatement", - "src": "459:21:0" - } - ] - }, - "documentation": null, - "id": 42, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "propose", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 35, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 34, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 42, - "src": "425:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 33, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "425:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "424:17:0" - }, - "returnParameters": { - "id": 36, - "nodeType": "ParameterList", - "parameters": [], - "src": "449:0:0" - }, - "scope": 95, - "src": "408:79:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 69, - "nodeType": "Block", - "src": "566:113:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 55, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "584:16:0", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 52, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "585:8:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 54, - "indexExpression": { - "argumentTypes": null, - "id": 53, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "594:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "585:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 51, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [280, 281], - "referencedDeclaration": 280, - "src": "576:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 56, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "576:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 57, - "nodeType": "ExpressionStatement", - "src": "576:25:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 58, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "611:8:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 60, - "indexExpression": { - "argumentTypes": null, - "id": 59, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "620:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "611:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 61, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "629:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "611:22:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 63, - "nodeType": "ExpressionStatement", - "src": "611:22:0" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 65, - "name": "_avatar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 44, - "src": "657:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 66, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 46, - "src": "666:5:0", - "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": 64, - "name": "Register", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 14, - "src": "648:8:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,string memory)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "648:24:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 68, - "nodeType": "EmitStatement", - "src": "643:29:0" - } - ] - }, - "documentation": null, - "id": 70, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 49, - "modifierName": { - "argumentTypes": null, - "id": 48, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "556:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "556:9:0" - } - ], - "name": "register", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 47, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 44, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "511:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 43, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 46, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 70, - "src": "528:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 45, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "528:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "510:38:0" - }, - "returnParameters": { - "id": 50, - "nodeType": "ParameterList", - "parameters": [], - "src": "566:0:0" - }, - "scope": 95, - "src": "493:186:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 81, - "nodeType": "Block", - "src": "739:41:0", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 78, - "name": "_avatar", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 72, - "src": "765:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 77, - "name": "UnRegister", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 18, - "src": "754:10:0", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 79, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "754:19:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 80, - "nodeType": "EmitStatement", - "src": "749:24:0" - } - ] - }, - "documentation": null, - "id": 82, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 75, - "modifierName": { - "argumentTypes": null, - "id": 74, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 196, - "src": "729:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "729:9:0" - } - ], - "name": "unRegister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 73, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 72, - "name": "_avatar", - "nodeType": "VariableDeclaration", - "scope": 82, - "src": "705:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 71, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "705:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "704:17:0" - }, - "returnParameters": { - "id": 76, - "nodeType": "ParameterList", - "parameters": [], - "src": "739:0:0" - }, - "scope": 95, - "src": "685:95:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 93, - "nodeType": "Block", - "src": "951:39:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 89, - "name": "registry", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 22, - "src": "968:8:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_string_memory_$_t_bool_$", - "typeString": "mapping(string memory => bool)" - } - }, - "id": 91, - "indexExpression": { - "argumentTypes": null, - "id": 90, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 84, - "src": "977:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "968:15:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 88, - "id": 92, - "nodeType": "Return", - "src": "961:22:0" - } - ] - }, - "documentation": null, - "id": 94, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isRegister", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 85, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 84, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "904:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 83, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "904:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "903:21:0" - }, - "returnParameters": { - "id": 88, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 87, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 94, - "src": "945:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 86, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "945:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "944:6:0" - }, - "scope": 95, - "src": "884:106:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 96, - "src": "90:903:0" - } - ], - "src": "0:994:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.4+commit.9549d8ff.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.2", - "updatedAt": "2019-03-28T13:02:44.899Z", - "devdoc": { - "methods": { - "isOwner()": { - "return": "true if `msg.sender` is the owner of the contract." - }, - "owner()": { "return": "the address of the owner." }, - "renounceOwnership()": { - "details": "Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore." - }, - "transferOwnership(address)": { - "details": "Allows the current owner to transfer control of the contract to a newOwner.", - "params": { "newOwner": "The address to transfer ownership to." } - } - } - }, - "userdoc": { - "methods": { - "renounceOwnership()": { - "notice": "Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner." - } - } - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAOToken.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAOToken.json deleted file mode 100644 index 53e99c55..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAOToken.json +++ /dev/null @@ -1,294 +0,0 @@ -{ - "contractName": "DAOToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "cap", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "burnFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { "internalType": "string", "name": "_name", "type": "string" }, - { "internalType": "string", "name": "_symbol", "type": "string" }, - { "internalType": "uint256", "name": "_cap", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "mint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAOTracker.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAOTracker.json deleted file mode 100644 index d6774572..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DAOTracker.json +++ /dev/null @@ -1,217 +0,0 @@ -{ - "contractName": "DAOTracker", - "abi": [ - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "blacklisted", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_controller", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_reputation", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_daoToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_arcVersion", - "type": "string" - } - ], - "name": "TrackDAO", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_explanationHash", - "type": "string" - } - ], - "name": "BlacklistDAO", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_explanationHash", - "type": "string" - } - ], - "name": "ResetDAO", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "contract ControllerInterface", - "name": "_controller", - "type": "address" - }, - { "internalType": "string", "name": "_arcVersion", "type": "string" } - ], - "name": "track", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "string", - "name": "_explanationHash", - "type": "string" - } - ], - "name": "blacklist", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "string", - "name": "_explanationHash", - "type": "string" - } - ], - "name": "reset", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DaoCreator.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DaoCreator.json deleted file mode 100644 index 25c66a5d..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/DaoCreator.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "contractName": "DaoCreator", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "locks", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract ControllerCreator", - "name": "_controllerCreator", - "type": "address" - }, - { - "internalType": "contract DAOTracker", - "name": "_daoTracker", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "NewOrg", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "InitialSchemesSet", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "address[]", - "name": "_founders", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "_foundersTokenAmount", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "_foundersReputationAmount", - "type": "uint256[]" - } - ], - "name": "addFounders", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "string", "name": "_orgName", "type": "string" }, - { "internalType": "string", "name": "_tokenName", "type": "string" }, - { "internalType": "string", "name": "_tokenSymbol", "type": "string" }, - { - "internalType": "address[]", - "name": "_founders", - "type": "address[]" - }, - { - "internalType": "uint256[]", - "name": "_foundersTokenAmount", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "_foundersReputationAmount", - "type": "uint256[]" - }, - { - "internalType": "contract UController", - "name": "_uController", - "type": "address" - }, - { "internalType": "uint256", "name": "_cap", "type": "uint256" } - ], - "name": "forgeOrg", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "address[]", - "name": "_schemes", - "type": "address[]" - }, - { "internalType": "bytes32[]", "name": "_params", "type": "bytes32[]" }, - { - "internalType": "bytes4[]", - "name": "_permissions", - "type": "bytes4[]" - }, - { "internalType": "string", "name": "_metaData", "type": "string" } - ], - "name": "setSchemes", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Debug.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Debug.json deleted file mode 100644 index 38048908..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Debug.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "contractName": "Debug", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_msg", - "type": "address" - } - ], - "name": "LogAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "int256", - "name": "_msg", - "type": "int256" - } - ], - "name": "LogInt", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "_msg", - "type": "string" - } - ], - "name": "LogString", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_msg", - "type": "uint256" - } - ], - "name": "LogUint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "_msg", - "type": "bytes" - } - ], - "name": "LogBytes", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "_msg", - "type": "bytes32" - } - ], - "name": "LogBytes32", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "_msg", - "type": "bool" - } - ], - "name": "LogBool", - "type": "event" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ECDSA.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ECDSA.json deleted file mode 100644 index ccfe4c44..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ECDSA.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "ECDSA", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20.json deleted file mode 100644 index e1502266..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20.json +++ /dev/null @@ -1,156 +0,0 @@ -{ - "contractName": "ERC20", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20Burnable.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20Burnable.json deleted file mode 100644 index 13a65081..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20Burnable.json +++ /dev/null @@ -1,179 +0,0 @@ -{ - "contractName": "ERC20Burnable", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "burnFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20Mock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20Mock.json deleted file mode 100644 index 7d9baf86..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC20Mock.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "contractName": "ERC20Mock", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "initialAccount", - "type": "address" - }, - { - "internalType": "uint256", - "name": "initialBalance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827.json deleted file mode 100644 index cd7754a2..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827.json +++ /dev/null @@ -1,1179 +0,0 @@ -{ - "contractName": "ERC827", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "approveAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "transferAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "transferFromAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Interface of a ERC827 token, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`. This is zero by default. * This value changes when `approve` or `transferFrom` are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * > Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * Emits an `Approval` event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event.\"}},\"title\":\"ERC827 interface, an extension of IERC20 token standard\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":\"ERC827\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":{\"keccak256\":\"0xec04362262d415f92c1d35e88c3d2baf5a5b0b09c7acc8c166fc4ca2dc26367e\",\"urls\":[\"bzz-raw://d37c465accfa410a48e0d5fb2b8e662dabae92b1b91d2d75c1dea6930496cbc1\",\"dweb:/ipfs/QmeHxdtvAvU27SJ3TpS5RkfdVgxdZmaVGS3AvHFpGu2mgA\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.11;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\n\n/**\n * @title ERC827 interface, an extension of IERC20 token standard\n *\n * @dev Interface of a ERC827 token, following the IERC20 standard with extra\n * methods to transfer value and data and execute calls in transfers and\n * approvals.\n */\ncontract ERC827 is IERC20 {\n\n function approveAndCall(address _spender, uint256 _value, bytes memory _data) public payable returns(bool);\n\n function transferAndCall(address _to, uint256 _value, bytes memory _data) public payable returns(bool);\n\n function transferFromAndCall(address _from, address _to, uint256 _value, bytes memory _data)\n public\n payable\n returns(bool);\n}\n", - "sourcePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol", - "ast": { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol", - "exportedSymbols": { "ERC827": [1334] }, - "id": 1335, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1295, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:8" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 1296, - "nodeType": "ImportDirective", - "scope": 1335, - "sourceUnit": 6568, - "src": "26:63:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1297, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6636, - "src": "353:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$6636", - "typeString": "contract IERC20" - } - }, - "id": 1298, - "nodeType": "InheritanceSpecifier", - "src": "353:6:8" - } - ], - "contractDependencies": [6636], - "contractKind": "contract", - "documentation": "@title ERC827 interface, an extension of IERC20 token standard\n * @dev Interface of a ERC827 token, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals.", - "fullyImplemented": false, - "id": 1334, - "linearizedBaseContracts": [1334, 6636], - "name": "ERC827", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1309, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1300, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "391:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1299, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "391:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1302, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "409:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1301, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "409:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1304, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "425:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1303, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "425:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "390:54:8" - }, - "returnParameters": { - "id": 1308, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1307, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "468:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1306, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "468:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "467:6:8" - }, - "scope": 1334, - "src": "367:107:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 1320, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1311, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "505:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1310, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "505:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1313, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "518:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "518:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1315, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "534:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1314, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "534:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "504:49:8" - }, - "returnParameters": { - "id": 1319, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1318, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "577:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1317, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "577:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "576:6:8" - }, - "scope": 1334, - "src": "480:103:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 1333, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFromAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1322, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "618:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "618:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1324, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "633:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "633:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1326, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "646:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1325, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "646:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1328, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "662:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1327, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "662:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "617:64:8" - }, - "returnParameters": { - "id": 1332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1331, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "717:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1330, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "717:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "716:6:8" - }, - "scope": 1334, - "src": "589:134:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1335, - "src": "334:391:8" - } - ], - "src": "0:726:8" - }, - "legacyAST": { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol", - "exportedSymbols": { "ERC827": [1334] }, - "id": 1335, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1295, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:8" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 1296, - "nodeType": "ImportDirective", - "scope": 1335, - "sourceUnit": 6568, - "src": "26:63:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1297, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6636, - "src": "353:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$6636", - "typeString": "contract IERC20" - } - }, - "id": 1298, - "nodeType": "InheritanceSpecifier", - "src": "353:6:8" - } - ], - "contractDependencies": [6636], - "contractKind": "contract", - "documentation": "@title ERC827 interface, an extension of IERC20 token standard\n * @dev Interface of a ERC827 token, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals.", - "fullyImplemented": false, - "id": 1334, - "linearizedBaseContracts": [1334, 6636], - "name": "ERC827", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 1309, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1305, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1300, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "391:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1299, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "391:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1302, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "409:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1301, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "409:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1304, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "425:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1303, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "425:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "390:54:8" - }, - "returnParameters": { - "id": 1308, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1307, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1309, - "src": "468:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1306, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "468:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "467:6:8" - }, - "scope": 1334, - "src": "367:107:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 1320, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1311, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "505:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1310, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "505:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1313, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "518:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "518:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1315, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "534:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1314, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "534:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "504:49:8" - }, - "returnParameters": { - "id": 1319, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1318, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1320, - "src": "577:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1317, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "577:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "576:6:8" - }, - "scope": 1334, - "src": "480:103:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 1333, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFromAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1322, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "618:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1321, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "618:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1324, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "633:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1323, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "633:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1326, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "646:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1325, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "646:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1328, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "662:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1327, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "662:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "617:64:8" - }, - "returnParameters": { - "id": 1332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1331, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1333, - "src": "717:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1330, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "717:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "716:6:8" - }, - "scope": 1334, - "src": "589:134:8", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1335, - "src": "334:391:8" - } - ], - "src": "0:726:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.14", - "updatedAt": "2019-10-22T12:36:36.338Z", - "devdoc": { - "details": "Interface of a ERC827 token, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals.", - "methods": { - "allowance(address,address)": { - "details": "Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`. This is zero by default. * This value changes when `approve` or `transferFrom` are called." - }, - "approve(address,uint256)": { - "details": "Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * > Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * Emits an `Approval` event." - }, - "balanceOf(address)": { - "details": "Returns the amount of tokens owned by `account`." - }, - "totalSupply()": { - "details": "Returns the amount of tokens in existence." - }, - "transfer(address,uint256)": { - "details": "Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event." - }, - "transferFrom(address,address,uint256)": { - "details": "Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event." - } - }, - "title": "ERC827 interface, an extension of IERC20 token standard" - }, - "userdoc": { "methods": {} } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827Token.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827Token.json deleted file mode 100644 index 6c4e4de9..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827Token.json +++ /dev/null @@ -1,6479 +0,0 @@ -{ - "contractName": "ERC827Token", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "approveAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "transferAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "transferFromAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_addedValue", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "increaseApprovalAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { - "internalType": "uint256", - "name": "_subtractedValue", - "type": "uint256" - }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "decreaseApprovalAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_addedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"increaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_subtractedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"decreaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Implementation the ERC827, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals. Uses OpenZeppelin IERC20.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address that will spend the funds.\",\"_value\":\"The amount of tokens to be spent.\"},\"return\":\"true if the call function was executed successfully\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"decreaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\",\"_subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"increaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_addedValue\":\"The amount of tokens to increase the allowance by.\",\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_to\":\"address The address which you want to transfer to\",\"_value\":\"uint256 the amout of tokens to be transfered\"},\"return\":\"true if the call function was executed successfully\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_from\":\"The address which you want to send tokens from\",\"_to\":\"The address which you want to transfer to\",\"_value\":\"The amout of tokens to be transferred\"},\"return\":\"true if the call function was executed successfully\"}},\"title\":\"ERC827, an extension of IERC20 token standard\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol\":\"ERC827Token\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":{\"keccak256\":\"0xec04362262d415f92c1d35e88c3d2baf5a5b0b09c7acc8c166fc4ca2dc26367e\",\"urls\":[\"bzz-raw://d37c465accfa410a48e0d5fb2b8e662dabae92b1b91d2d75c1dea6930496cbc1\",\"dweb:/ipfs/QmeHxdtvAvU27SJ3TpS5RkfdVgxdZmaVGS3AvHFpGu2mgA\"]},\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol\":{\"keccak256\":\"0xe5688e3caf9ea613ad2d243378ba76a716479c0ee45b1b9c30fa0385e74046f3\",\"urls\":[\"bzz-raw://6394a94cba08292b21435ff3184fcaee681ea86baa6beb62fd3df8b1b6915908\",\"dweb:/ipfs/QmPWjaBQupJX2vZJQtCzKZW4J5FjLMUiiq7EcwtuW8K93c\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}", - "sourceMap": "371:5072:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:5072:9;;;;;;;", - "deployedSourceMap": "371:5072:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2453:145:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:89:21;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3055:252:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:21;;;;;;;;;;;;;;;;;:::i;3702:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3702:203:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:21;;;;;;;;:::i;2050:396:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2050:396:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2050:396:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2050:396:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2050:396:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2050:396:9;;-1:-1:-1;2050:396:9;;-1:-1:-1;;;;;2050:396:9:i;1661:108:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1661:108:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:21;-1:-1:-1;;;;;1661:108:21;;:::i;3941:444:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3941:444:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3941:444:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3941:444:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3941:444:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3941:444:9;;-1:-1:-1;3941:444:9;;-1:-1:-1;;;;;3941:444:9:i;4392:213:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4392:213:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:21;;;;;;;;:::i;1972:153::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:153:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:21;;;;;;;;:::i;2918:426:9:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2918:426:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2918:426:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2918:426:9;;-1:-1:-1;2918:426:9;;-1:-1:-1;;;;;2918:426:9:i;1205:415::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;1205:415:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1205:415:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1205:415:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1205:415:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1205:415:9;;-1:-1:-1;1205:415:9;;-1:-1:-1;;;;;1205:415:9:i;4987:454::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;4987:454:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4987:454:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4987:454:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4987:454:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4987:454:9;;-1:-1:-1;4987:454:9;;-1:-1:-1;;;;;4987:454:9:i;2183:132:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:132:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:21;;;;;;;;;;:::i;2453:145::-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:21;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:21;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:21;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:21;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;2050:396:9:-;2190:4;-1:-1:-1;;;;;2218:20:9;;2233:4;2218:20;;2210:29;;;;;;2250:27;2265:3;2270:6;2250:14;:27::i;:::-;;2343:12;2360:3;-1:-1:-1;;;;;2360:8:9;2375:9;2386:5;2360:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2360:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2342:50:9;;;2410:7;2402:16;;;;;;-1:-1:-1;2435:4:9;;2050:396;-1:-1:-1;;;;2050:396:9:o;1661:108:21:-;-1:-1:-1;;;;;1744:18:21;1718:7;1744:18;;;;;;;;;;;;1661:108::o;3941:444:9:-;4099:4;-1:-1:-1;;;;;4127:25:9;;4147:4;4127:25;;4119:34;;;;;;4164:46;4188:8;4198:11;4164:23;:46::i;4392:213:21:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:21;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2918:426:9:-;3077:4;-1:-1:-1;;;;;3105:20:9;;3120:4;3105:20;;3097:29;;;;;;3137:38;3156:5;3163:3;3168:6;3137:18;:38::i;:::-;;3241:12;3258:3;-1:-1:-1;;;;;3258:8:9;3273:9;3284:5;3258:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3258:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3240:50:9;;;3308:7;3300:16;;;;;;-1:-1:-1;3333:4:9;;2918:426;-1:-1:-1;;;;;2918:426:9:o;1205:415::-;1349:4;-1:-1:-1;;;;;1377:25:9;;1397:4;1377:25;;1369:34;;;;;;1414:31;1428:8;1438:6;1414:13;:31::i;4987:454::-;5150:4;-1:-1:-1;;;;;5178:25:9;;5198:4;5178:25;;5170:34;;;;;;5215:51;5239:8;5249:16;5215:23;:51::i;2183:132:21:-;-1:-1:-1;;;;;2281:18:21;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;7117:329::-;-1:-1:-1;;;;;7209:19:21;;7201:68;;;;-1:-1:-1;;;7201:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:21;;7279:68;;;;-1:-1:-1;;;7279:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:21;;5168:70;;;;-1:-1:-1;;;5168:70:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:21;;5248:71;;;;-1:-1:-1;;;5248:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:21;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:21;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:21;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:19:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:19;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:19:o", - "source": "pragma solidity ^0.5.11;\n\nimport \"./ERC827.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\n\n/**\n * @title ERC827, an extension of IERC20 token standard\n *\n * @dev Implementation the ERC827, following the IERC20 standard with extra\n * methods to transfer value and data and execute calls in transfers and\n * approvals. Uses OpenZeppelin IERC20.\n */\ncontract ERC827Token is ERC20, ERC827 {\n\n /**\n * @dev Addition to IERC20 token methods. It allows to\n * approve the transfer of value and execute a call with the sent data.\n * Beware that changing an allowance with this method brings the risk that\n * someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race condition\n * is to first reduce the spender's allowance to 0 and set the desired value\n * afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address that will spend the funds.\n * @param _value The amount of tokens to be spent.\n * @param _data ABI-encoded contract call to call `_spender` address.\n * @return true if the call function was executed successfully\n */\n function approveAndCall(\n address _spender,\n uint256 _value,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_spender != address(this));\n\n super.approve(_spender, _value);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _spender.call.value(msg.value)(_data);\n require(success);\n\n return true;\n }\n\n /**\n * @dev Addition to IERC20 token methods. Transfer tokens to a specified\n * address and execute a call with the sent data on the same transaction\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amout of tokens to be transfered\n * @param _data ABI-encoded contract call to call `_to` address.\n * @return true if the call function was executed successfully\n */\n function transferAndCall(\n address _to,\n uint256 _value,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_to != address(this));\n\n super.transfer(_to, _value);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _to.call.value(msg.value)(_data);\n require(success);\n return true;\n }\n\n /**\n * @dev Addition to IERC20 token methods. Transfer tokens from one address to\n * another and make a contract call on the same transaction\n * @param _from The address which you want to send tokens from\n * @param _to The address which you want to transfer to\n * @param _value The amout of tokens to be transferred\n * @param _data ABI-encoded contract call to call `_to` address.\n * @return true if the call function was executed successfully\n */\n function transferFromAndCall(\n address _from,\n address _to,\n uint256 _value,\n bytes memory _data\n )\n public payable returns (bool)\n {\n require(_to != address(this));\n\n super.transferFrom(_from, _to, _value);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _to.call.value(msg.value)(_data);\n require(success);\n return true;\n }\n\n /**\n * @dev Addition to IERC20 methods. Increase the amount of tokens that\n * an owner allowed to a spender and execute a call with the sent data.\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 * @param _data ABI-encoded contract call to call `_spender` address.\n */\n function increaseApprovalAndCall(\n address _spender,\n uint256 _addedValue,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_spender != address(this));\n\n super.increaseAllowance(_spender, _addedValue);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _spender.call.value(msg.value)(_data);\n require(success);\n\n return true;\n }\n\n /**\n * @dev Addition to IERC20 methods. Decrease the amount of tokens that\n * an owner allowed to a spender and execute a call with the sent data.\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 * @param _data ABI-encoded contract call to call `_spender` address.\n */\n function decreaseApprovalAndCall(\n address _spender,\n uint256 _subtractedValue,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_spender != address(this));\n\n super.decreaseAllowance(_spender, _subtractedValue);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _spender.call.value(msg.value)(_data);\n require(success);\n\n return true;\n }\n}\n", - "sourcePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol", - "ast": { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol", - "exportedSymbols": { "ERC827Token": [1566] }, - "id": 1567, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1336, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:9" - }, - { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol", - "file": "./ERC827.sol", - "id": 1337, - "nodeType": "ImportDirective", - "scope": 1567, - "sourceUnit": 1335, - "src": "26:22:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 1338, - "nodeType": "ImportDirective", - "scope": 1567, - "sourceUnit": 6568, - "src": "49:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1339, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6567, - "src": "395:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$6567", - "typeString": "contract ERC20" - } - }, - "id": 1340, - "nodeType": "InheritanceSpecifier", - "src": "395:5:9" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1341, - "name": "ERC827", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1334, - "src": "402:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827_$1334", - "typeString": "contract ERC827" - } - }, - "id": 1342, - "nodeType": "InheritanceSpecifier", - "src": "402:6:9" - } - ], - "contractDependencies": [1334, 6567, 6636], - "contractKind": "contract", - "documentation": "@title ERC827, an extension of IERC20 token standard\n * @dev Implementation the ERC827, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals. Uses OpenZeppelin IERC20.", - "fullyImplemented": true, - "id": 1566, - "linearizedBaseContracts": [1566, 1334, 6567, 6636], - "name": "ERC827Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1385, - "nodeType": "Block", - "src": "1359:261:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1354, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "1377:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1356, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "1397:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1389:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1389:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1377:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1353, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "1369:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1369:34:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1360, - "nodeType": "ExpressionStatement", - "src": "1369:34:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1364, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "1428:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1365, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "1438:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1361, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "1414:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 6265, - "src": "1414:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1414:31:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1367, - "nodeType": "ExpressionStatement", - "src": "1414:31:9" - }, - { - "assignments": [1369, null], - "declarations": [ - { - "constant": false, - "id": 1369, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1385, - "src": "1511:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1368, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1511:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1378, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1376, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1348, - "src": "1559:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1373, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "1548:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1548:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1370, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "1528:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1528:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1528:19:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1528:30:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1528:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1510:55:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1380, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1369, - "src": "1583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "1575:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1575:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1382, - "nodeType": "ExpressionStatement", - "src": "1575:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1609:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1352, - "id": 1384, - "nodeType": "Return", - "src": "1602:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 token methods. It allows to\napprove the transfer of value and execute a call with the sent data.\nBeware that changing an allowance with this method brings the risk that\nsomeone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race condition\nis to first reduce the spender's allowance to 0 and set the desired value\nafterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address that will spend the funds.\n@param _value The amount of tokens to be spent.\n@param _data ABI-encoded contract call to call `_spender` address.\n@return true if the call function was executed successfully", - "id": 1386, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1349, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1238:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1238:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1346, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1264:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1345, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1264:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1348, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1288:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1347, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1288:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1228:84:9" - }, - "returnParameters": { - "id": 1352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1351, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1349:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1350, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1349:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1348:6:9" - }, - "scope": 1566, - "src": "1205:415:9", - "stateMutability": "payable", - "superFunction": 1309, - "visibility": "public" - }, - { - "body": { - "id": 1429, - "nodeType": "Block", - "src": "2200:246:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1398, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "2218:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1400, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "2233:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2225:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2225:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2218:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1397, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "2210:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2210:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1404, - "nodeType": "ExpressionStatement", - "src": "2210:29:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1408, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "2265:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1409, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "2270:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1405, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "2250:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 6230, - "src": "2250:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2250:27:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1411, - "nodeType": "ExpressionStatement", - "src": "2250:27:9" - }, - { - "assignments": [1413, null], - "declarations": [ - { - "constant": false, - "id": 1413, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1429, - "src": "2343:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1412, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2343:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1422, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1420, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1392, - "src": "2386:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1417, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "2375:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2375:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "2360:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2360:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2360:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2360:25:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2360:32:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2342:50:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1424, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "2410:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1423, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "2402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2402:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1426, - "nodeType": "ExpressionStatement", - "src": "2402:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1396, - "id": 1428, - "nodeType": "Return", - "src": "2428:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 token methods. Transfer tokens to a specified\naddress and execute a call with the sent data on the same transaction\n@param _to address The address which you want to transfer to\n@param _value uint256 the amout of tokens to be transfered\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully", - "id": 1430, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1388, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2084:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1387, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2084:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1390, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2105:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2105:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1392, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2129:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1391, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2129:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2074:79:9" - }, - "returnParameters": { - "id": 1396, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1395, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2190:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1394, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2190:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2189:6:9" - }, - "scope": 1566, - "src": "2050:396:9", - "stateMutability": "payable", - "superFunction": 1320, - "visibility": "public" - }, - { - "body": { - "id": 1476, - "nodeType": "Block", - "src": "3087:257:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1444, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "3105:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1446, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "3120:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3112:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3105:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1443, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "3097:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3097:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1450, - "nodeType": "ExpressionStatement", - "src": "3097:29:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1454, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "3156:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1455, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "3163:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1456, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "3168:6:9", - "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": 1451, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "3137:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 6300, - "src": "3137:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 1457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3137:38:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1458, - "nodeType": "ExpressionStatement", - "src": "3137:38:9" - }, - { - "assignments": [1460, null], - "declarations": [ - { - "constant": false, - "id": 1460, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1476, - "src": "3241:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1459, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3241:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1469, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1467, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1438, - "src": "3284:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1464, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "3273:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3273:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1461, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "3258:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3258:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3258:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3258:25:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3258:32:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3240:50:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1471, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "3308:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1470, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "3300:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3300:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1473, - "nodeType": "ExpressionStatement", - "src": "3300:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3333:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1442, - "id": 1475, - "nodeType": "Return", - "src": "3326:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 token methods. Transfer tokens from one address to\nanother and make a contract call on the same transaction\n@param _from The address which you want to send tokens from\n@param _to The address which you want to transfer to\n@param _value The amout of tokens to be transferred\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully", - "id": 1477, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFromAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1432, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "2956:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2956:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1434, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "2979:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2979:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1436, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "3000:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3000:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1438, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "3024:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1437, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3024:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2946:102:9" - }, - "returnParameters": { - "id": 1442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1441, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "3077:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1440, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3077:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3076:6:9" - }, - "scope": 1566, - "src": "2918:426:9", - "stateMutability": "payable", - "superFunction": 1333, - "visibility": "public" - }, - { - "body": { - "id": 1520, - "nodeType": "Block", - "src": "4109:276:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1489, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "4127:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1491, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "4147:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4139:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4139:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4127:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1488, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "4119:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4119:34:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "4119:34:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1499, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "4188:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1500, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1481, - "src": "4198:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1496, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "4164:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "increaseAllowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 6327, - "src": "4164:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4164:46:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1502, - "nodeType": "ExpressionStatement", - "src": "4164:46:9" - }, - { - "assignments": [1504, null], - "declarations": [ - { - "constant": false, - "id": 1504, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1520, - "src": "4276:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4276:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1513, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1511, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "4324:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1508, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "4313:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4313:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "4293:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4293:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4293:19:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4293:30:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4293:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4275:55:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1515, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1504, - "src": "4348:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1514, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "4340:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4340:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1517, - "nodeType": "ExpressionStatement", - "src": "4340:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4374:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1487, - "id": 1519, - "nodeType": "Return", - "src": "4367:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 methods. Increase the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.", - "id": 1521, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseApprovalAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1479, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "3983:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1478, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3983:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1481, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "4009:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4009:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1483, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "4038:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1482, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4038:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3973:89:9" - }, - "returnParameters": { - "id": 1487, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1486, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "4099:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1485, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4099:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4098:6:9" - }, - "scope": 1566, - "src": "3941:444:9", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1564, - "nodeType": "Block", - "src": "5160:281:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1533, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "5178:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1535, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "5198:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5190:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5190:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5178:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1532, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "5170:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5170:34:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1539, - "nodeType": "ExpressionStatement", - "src": "5170:34:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1543, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "5239:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1544, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "5249:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1540, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "5215:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decreaseAllowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 6354, - "src": "5215:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5215:51:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1546, - "nodeType": "ExpressionStatement", - "src": "5215:51:9" - }, - { - "assignments": [1548, null], - "declarations": [ - { - "constant": false, - "id": 1548, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1564, - "src": "5332:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1547, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5332:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1557, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1555, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "5380:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1552, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "5369:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5369:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1549, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "5349:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5349:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5349:19:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5349:30:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5349:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5331:55:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1548, - "src": "5404:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1558, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "5396:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5396:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1561, - "nodeType": "ExpressionStatement", - "src": "5396:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5430:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1531, - "id": 1563, - "nodeType": "Return", - "src": "5423:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 methods. Decrease the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.", - "id": 1565, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseApprovalAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5029:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5029:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1525, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5055:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5055:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1527, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5089:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1526, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5089:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5019:94:9" - }, - "returnParameters": { - "id": 1531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1530, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5150:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1529, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5150:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5149:6:9" - }, - "scope": 1566, - "src": "4987:454:9", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1567, - "src": "371:5072:9" - } - ], - "src": "0:5444:9" - }, - "legacyAST": { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol", - "exportedSymbols": { "ERC827Token": [1566] }, - "id": 1567, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1336, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:9" - }, - { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol", - "file": "./ERC827.sol", - "id": 1337, - "nodeType": "ImportDirective", - "scope": 1567, - "sourceUnit": 1335, - "src": "26:22:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "file": "openzeppelin-solidity/contracts/token/ERC20/ERC20.sol", - "id": 1338, - "nodeType": "ImportDirective", - "scope": 1567, - "sourceUnit": 6568, - "src": "49:63:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1339, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6567, - "src": "395:5:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$6567", - "typeString": "contract ERC20" - } - }, - "id": 1340, - "nodeType": "InheritanceSpecifier", - "src": "395:5:9" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 1341, - "name": "ERC827", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1334, - "src": "402:6:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827_$1334", - "typeString": "contract ERC827" - } - }, - "id": 1342, - "nodeType": "InheritanceSpecifier", - "src": "402:6:9" - } - ], - "contractDependencies": [1334, 6567, 6636], - "contractKind": "contract", - "documentation": "@title ERC827, an extension of IERC20 token standard\n * @dev Implementation the ERC827, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals. Uses OpenZeppelin IERC20.", - "fullyImplemented": true, - "id": 1566, - "linearizedBaseContracts": [1566, 1334, 6567, 6636], - "name": "ERC827Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 1385, - "nodeType": "Block", - "src": "1359:261:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1354, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "1377:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1356, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "1397:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1355, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1389:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1389:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "1377:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1353, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "1369:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1369:34:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1360, - "nodeType": "ExpressionStatement", - "src": "1369:34:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1364, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "1428:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1365, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1346, - "src": "1438:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1361, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "1414:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "approve", - "nodeType": "MemberAccess", - "referencedDeclaration": 6265, - "src": "1414:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1366, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1414:31:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1367, - "nodeType": "ExpressionStatement", - "src": "1414:31:9" - }, - { - "assignments": [1369, null], - "declarations": [ - { - "constant": false, - "id": 1369, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1385, - "src": "1511:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1368, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1511:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1378, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1376, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1348, - "src": "1559:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1373, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "1548:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1374, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1548:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1370, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "1528:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1371, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1528:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1528:19:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1375, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1528:30:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1528:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1510:55:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1380, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1369, - "src": "1583:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "1575:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1381, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1575:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1382, - "nodeType": "ExpressionStatement", - "src": "1575:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1383, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1609:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1352, - "id": 1384, - "nodeType": "Return", - "src": "1602:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 token methods. It allows to\napprove the transfer of value and execute a call with the sent data.\nBeware that changing an allowance with this method brings the risk that\nsomeone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race condition\nis to first reduce the spender's allowance to 0 and set the desired value\nafterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address that will spend the funds.\n@param _value The amount of tokens to be spent.\n@param _data ABI-encoded contract call to call `_spender` address.\n@return true if the call function was executed successfully", - "id": 1386, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approveAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1349, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1344, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1238:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1343, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1238:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1346, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1264:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1345, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1264:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1348, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1288:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1347, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1288:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1228:84:9" - }, - "returnParameters": { - "id": 1352, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1351, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1386, - "src": "1349:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1350, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1349:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1348:6:9" - }, - "scope": 1566, - "src": "1205:415:9", - "stateMutability": "payable", - "superFunction": 1309, - "visibility": "public" - }, - { - "body": { - "id": 1429, - "nodeType": "Block", - "src": "2200:246:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1402, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1398, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "2218:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1400, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "2233:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2225:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1401, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2225:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "2218:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1397, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "2210:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1403, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2210:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1404, - "nodeType": "ExpressionStatement", - "src": "2210:29:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1408, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "2265:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1409, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1390, - "src": "2270:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1405, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "2250:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1407, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 6230, - "src": "2250:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2250:27:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1411, - "nodeType": "ExpressionStatement", - "src": "2250:27:9" - }, - { - "assignments": [1413, null], - "declarations": [ - { - "constant": false, - "id": 1413, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1429, - "src": "2343:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1412, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2343:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1422, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1420, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1392, - "src": "2386:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1417, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "2375:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2375:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1388, - "src": "2360:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2360:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2360:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2360:25:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2360:32:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2342:50:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1424, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1413, - "src": "2410:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1423, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "2402:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2402:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1426, - "nodeType": "ExpressionStatement", - "src": "2402:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2435:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1396, - "id": 1428, - "nodeType": "Return", - "src": "2428:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 token methods. Transfer tokens to a specified\naddress and execute a call with the sent data on the same transaction\n@param _to address The address which you want to transfer to\n@param _value uint256 the amout of tokens to be transfered\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully", - "id": 1430, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1388, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2084:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1387, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2084:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1390, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2105:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2105:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1392, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2129:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1391, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2129:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2074:79:9" - }, - "returnParameters": { - "id": 1396, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1395, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1430, - "src": "2190:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1394, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2190:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2189:6:9" - }, - "scope": 1566, - "src": "2050:396:9", - "stateMutability": "payable", - "superFunction": 1320, - "visibility": "public" - }, - { - "body": { - "id": 1476, - "nodeType": "Block", - "src": "3087:257:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1444, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "3105:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1446, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "3120:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3112:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "3105:20:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1443, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "3097:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3097:29:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1450, - "nodeType": "ExpressionStatement", - "src": "3097:29:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1454, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1432, - "src": "3156:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1455, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "3163:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1456, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1436, - "src": "3168:6:9", - "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": 1451, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "3137:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 6300, - "src": "3137:18:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 1457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3137:38:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1458, - "nodeType": "ExpressionStatement", - "src": "3137:38:9" - }, - { - "assignments": [1460, null], - "declarations": [ - { - "constant": false, - "id": 1460, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1476, - "src": "3241:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1459, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3241:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1469, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1467, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1438, - "src": "3284:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1464, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "3273:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3273:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1461, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1434, - "src": "3258:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3258:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3258:14:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3258:25:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1468, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3258:32:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3240:50:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1471, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1460, - "src": "3308:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1470, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "3300:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3300:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1473, - "nodeType": "ExpressionStatement", - "src": "3300:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1474, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3333:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1442, - "id": 1475, - "nodeType": "Return", - "src": "3326:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 token methods. Transfer tokens from one address to\nanother and make a contract call on the same transaction\n@param _from The address which you want to send tokens from\n@param _to The address which you want to transfer to\n@param _value The amout of tokens to be transferred\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully", - "id": 1477, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFromAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1439, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1432, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "2956:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2956:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1434, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "2979:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1433, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2979:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1436, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "3000:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3000:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1438, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "3024:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1437, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3024:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2946:102:9" - }, - "returnParameters": { - "id": 1442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1441, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1477, - "src": "3077:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1440, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3077:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3076:6:9" - }, - "scope": 1566, - "src": "2918:426:9", - "stateMutability": "payable", - "superFunction": 1333, - "visibility": "public" - }, - { - "body": { - "id": 1520, - "nodeType": "Block", - "src": "4109:276:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1489, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "4127:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1491, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "4147:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1490, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4139:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4139:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4127:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1488, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "4119:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4119:34:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1495, - "nodeType": "ExpressionStatement", - "src": "4119:34:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1499, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "4188:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1500, - "name": "_addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1481, - "src": "4198:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1496, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "4164:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "increaseAllowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 6327, - "src": "4164:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4164:46:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1502, - "nodeType": "ExpressionStatement", - "src": "4164:46:9" - }, - { - "assignments": [1504, null], - "declarations": [ - { - "constant": false, - "id": 1504, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1520, - "src": "4276:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1503, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4276:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1513, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1511, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1483, - "src": "4324:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1508, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "4313:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4313:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1505, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1479, - "src": "4293:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1506, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4293:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1507, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4293:19:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4293:30:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1512, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4293:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4275:55:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1515, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1504, - "src": "4348:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1514, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "4340:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4340:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1517, - "nodeType": "ExpressionStatement", - "src": "4340:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4374:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1487, - "id": 1519, - "nodeType": "Return", - "src": "4367:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 methods. Increase the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.", - "id": 1521, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseApprovalAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1484, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1479, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "3983:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1478, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3983:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1481, - "name": "_addedValue", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "4009:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1480, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4009:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1483, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "4038:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1482, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4038:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3973:89:9" - }, - "returnParameters": { - "id": 1487, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1486, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "4099:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1485, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4099:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4098:6:9" - }, - "scope": 1566, - "src": "3941:444:9", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1564, - "nodeType": "Block", - "src": "5160:281:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1533, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "5178:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1535, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6712, - "src": "5198:4:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - ], - "id": 1534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5190:7:9", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5190:13:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5178:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1532, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "5170:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5170:34:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1539, - "nodeType": "ExpressionStatement", - "src": "5170:34:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1543, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "5239:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1544, - "name": "_subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "5249:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1540, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6713, - "src": "5215:5:9", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC827Token_$1566", - "typeString": "contract super ERC827Token" - } - }, - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "decreaseAllowance", - "nodeType": "MemberAccess", - "referencedDeclaration": 6354, - "src": "5215:23:9", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 1545, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5215:51:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 1546, - "nodeType": "ExpressionStatement", - "src": "5215:51:9" - }, - { - "assignments": [1548, null], - "declarations": [ - { - "constant": false, - "id": 1548, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 1564, - "src": "5332:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1547, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5332:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - null - ], - "id": 1557, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1555, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "5380:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1552, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "5369:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5369:9:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1549, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "5349:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "call", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5349:13:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5349:19:9", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$", - "typeString": "function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))" - } - }, - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5349:30:9", - "typeDescriptions": { - "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", - "typeString": "function (bytes memory) payable returns (bool,bytes memory)" - } - }, - "id": 1556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5349:37:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", - "typeString": "tuple(bool,bytes memory)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5331:55:9" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1559, - "name": "success", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1548, - "src": "5404:7:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { "typeIdentifier": "t_bool", "typeString": "bool" } - ], - "id": 1558, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [6673, 6674], - "referencedDeclaration": 6673, - "src": "5396:7:9", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5396:16:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1561, - "nodeType": "ExpressionStatement", - "src": "5396:16:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 1562, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5430:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 1531, - "id": 1563, - "nodeType": "Return", - "src": "5423:11:9" - } - ] - }, - "documentation": "@dev Addition to IERC20 methods. Decrease the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.", - "id": 1565, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseApprovalAndCall", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5029:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5029:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1525, - "name": "_subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5055:24:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1524, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5055:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1527, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5089:18:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1526, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5089:5:9", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5019:94:9" - }, - "returnParameters": { - "id": 1531, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1530, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1565, - "src": "5150:4:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 1529, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5150:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5149:6:9" - }, - "scope": 1566, - "src": "4987:454:9", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1567, - "src": "371:5072:9" - } - ], - "src": "0:5444:9" - }, - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.14", - "updatedAt": "2019-10-22T12:36:36.339Z", - "devdoc": { - "details": "Implementation the ERC827, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals. Uses OpenZeppelin IERC20.", - "methods": { - "allowance(address,address)": { "details": "See `IERC20.allowance`." }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "approveAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", - "params": { - "_data": "ABI-encoded contract call to call `_spender` address.", - "_spender": "The address that will spend the funds.", - "_value": "The amount of tokens to be spent." - }, - "return": "true if the call function was executed successfully" - }, - "balanceOf(address)": { "details": "See `IERC20.balanceOf`." }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "decreaseApprovalAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", - "params": { - "_data": "ABI-encoded contract call to call `_spender` address.", - "_spender": "The address which will spend the funds.", - "_subtractedValue": "The amount of tokens to decrease the allowance by." - } - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "increaseApprovalAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", - "params": { - "_addedValue": "The amount of tokens to increase the allowance by.", - "_data": "ABI-encoded contract call to call `_spender` address.", - "_spender": "The address which will spend the funds." - } - }, - "totalSupply()": { "details": "See `IERC20.totalSupply`." }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction", - "params": { - "_data": "ABI-encoded contract call to call `_to` address.", - "_to": "address The address which you want to transfer to", - "_value": "uint256 the amout of tokens to be transfered" - }, - "return": "true if the call function was executed successfully" - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferFromAndCall(address,address,uint256,bytes)": { - "details": "Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction", - "params": { - "_data": "ABI-encoded contract call to call `_to` address.", - "_from": "The address which you want to send tokens from", - "_to": "The address which you want to transfer to", - "_value": "The amout of tokens to be transferred" - }, - "return": "true if the call function was executed successfully" - } - }, - "title": "ERC827, an extension of IERC20 token standard" - }, - "userdoc": { "methods": {} } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827TokenMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827TokenMock.json deleted file mode 100644 index 194481a0..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ERC827TokenMock.json +++ /dev/null @@ -1,754 +0,0 @@ -{ - "contractName": "ERC827TokenMock", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "value", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "addedValue", "type": "uint256" } - ], - "name": "increaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "transferAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_addedValue", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "increaseApprovalAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { - "internalType": "uint256", - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "transferFromAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "approveAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { - "internalType": "uint256", - "name": "_subtractedValue", - "type": "uint256" - }, - { "internalType": "bytes", "name": "_data", "type": "bytes" } - ], - "name": "decreaseApprovalAndCall", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "initialAccount", - "type": "address" - }, - { - "internalType": "uint256", - "name": "initialBalance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_addedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"increaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_subtractedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"decreaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAccount\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address that will spend the funds.\",\"_value\":\"The amount of tokens to be spent.\"},\"return\":\"true if the call function was executed successfully\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"decreaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\",\"_subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"increaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_addedValue\":\"The amount of tokens to increase the allowance by.\",\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_to\":\"address The address which you want to transfer to\",\"_value\":\"uint256 the amout of tokens to be transfered\"},\"return\":\"true if the call function was executed successfully\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_from\":\"The address which you want to send tokens from\",\"_to\":\"The address which you want to transfer to\",\"_value\":\"The amout of tokens to be transferred\"},\"return\":\"true if the call function was executed successfully\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol\":\"ERC827TokenMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol\":{\"keccak256\":\"0x3eee306d24706cf0d5459bf5fd91d817b7e90e13c1551f30a2c7de11005f93bf\",\"urls\":[\"bzz-raw://ec24445c22c4e6f67a45fe95839e8f25482815c7a5b91a53b56326bb49440914\",\"dweb:/ipfs/QmTMhPFg1sfHUVL1VigZbu2ECL83Af98RxT6mP1NFE35X3\"]},\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":{\"keccak256\":\"0xec04362262d415f92c1d35e88c3d2baf5a5b0b09c7acc8c166fc4ca2dc26367e\",\"urls\":[\"bzz-raw://d37c465accfa410a48e0d5fb2b8e662dabae92b1b91d2d75c1dea6930496cbc1\",\"dweb:/ipfs/QmeHxdtvAvU27SJ3TpS5RkfdVgxdZmaVGS3AvHFpGu2mgA\"]},\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol\":{\"keccak256\":\"0xe5688e3caf9ea613ad2d243378ba76a716479c0ee45b1b9c30fa0385e74046f3\",\"urls\":[\"bzz-raw://6394a94cba08292b21435ff3184fcaee681ea86baa6beb62fd3df8b1b6915908\",\"dweb:/ipfs/QmPWjaBQupJX2vZJQtCzKZW4J5FjLMUiiq7EcwtuW8K93c\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}", - "sourceMap": "102:171:5:-;;;149:121;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:121:5;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;149:121:5;;;;;;;226:37;149:121;;-1:-1:-1;;;;;226:5:5;:37;:::i;:::-;149:121;;102:171;;5771:302:21;-1:-1:-1;;;;;5846:21:21;;5838:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:24;5946:6;5929:12;;:16;;;;;;:24;;;;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:21;;:9;:18;;;;;;;;;;;;:30;;6007:6;;5984:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;5963:18:21;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;834:176:19:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:19:o;102:171:5:-;;;;;;;", - "deployedSourceMap": "102:171:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2453:145:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:89:21;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3055:252:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:21;;;;;;;;;;;;;;;;;:::i;3702:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3702:203:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:21;;;;;;;;:::i;2050:396:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2050:396:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2050:396:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2050:396:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2050:396:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2050:396:9;;-1:-1:-1;2050:396:9;;-1:-1:-1;;;;;2050:396:9:i;1661:108:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1661:108:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:21;-1:-1:-1;;;;;1661:108:21;;:::i;3941:444:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3941:444:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3941:444:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3941:444:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3941:444:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3941:444:9;;-1:-1:-1;3941:444:9;;-1:-1:-1;;;;;3941:444:9:i;4392:213:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4392:213:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:21;;;;;;;;:::i;1972:153::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:153:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:21;;;;;;;;:::i;2918:426:9:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2918:426:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2918:426:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2918:426:9;;-1:-1:-1;2918:426:9;;-1:-1:-1;;;;;2918:426:9:i;1205:415::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;1205:415:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1205:415:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1205:415:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1205:415:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1205:415:9;;-1:-1:-1;1205:415:9;;-1:-1:-1;;;;;1205:415:9:i;4987:454::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;4987:454:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4987:454:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4987:454:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4987:454:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4987:454:9;;-1:-1:-1;4987:454:9;;-1:-1:-1;;;;;4987:454:9:i;2183:132:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:132:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:21;;;;;;;;;;:::i;2453:145::-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:21;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:21;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:21;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:21;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;2050:396:9:-;2190:4;-1:-1:-1;;;;;2218:20:9;;2233:4;2218:20;;2210:29;;;;;;2250:27;2265:3;2270:6;2250:14;:27::i;:::-;;2343:12;2360:3;-1:-1:-1;;;;;2360:8:9;2375:9;2386:5;2360:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2360:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2342:50:9;;;2410:7;2402:16;;;;;;-1:-1:-1;2435:4:9;;2050:396;-1:-1:-1;;;;2050:396:9:o;1661:108:21:-;-1:-1:-1;;;;;1744:18:21;1718:7;1744:18;;;;;;;;;;;;1661:108::o;3941:444:9:-;4099:4;-1:-1:-1;;;;;4127:25:9;;4147:4;4127:25;;4119:34;;;;;;4164:46;4188:8;4198:11;4164:23;:46::i;4392:213:21:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:21;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2918:426:9:-;3077:4;-1:-1:-1;;;;;3105:20:9;;3120:4;3105:20;;3097:29;;;;;;3137:38;3156:5;3163:3;3168:6;3137:18;:38::i;:::-;;3241:12;3258:3;-1:-1:-1;;;;;3258:8:9;3273:9;3284:5;3258:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3258:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3240:50:9;;;3308:7;3300:16;;;;;;-1:-1:-1;3333:4:9;;2918:426;-1:-1:-1;;;;;2918:426:9:o;1205:415::-;1349:4;-1:-1:-1;;;;;1377:25:9;;1397:4;1377:25;;1369:34;;;;;;1414:31;1428:8;1438:6;1414:13;:31::i;4987:454::-;5150:4;-1:-1:-1;;;;;5178:25:9;;5198:4;5178:25;;5170:34;;;;;;5215:51;5239:8;5249:16;5215:23;:51::i;2183:132:21:-;-1:-1:-1;;;;;2281:18:21;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;7117:329::-;-1:-1:-1;;;;;7209:19:21;;7201:68;;;;-1:-1:-1;;;7201:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:21;;7279:68;;;;-1:-1:-1;;;7279:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:21;;5168:70;;;;-1:-1:-1;;;5168:70:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:21;;5248:71;;;;-1:-1:-1;;;5248:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:21;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:21;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:21;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:19:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:19;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:19:o", - "source": "pragma solidity ^0.5.11;\n\nimport \"../token/ERC827/ERC827Token.sol\";// mock class using ERC827 Token\n\n\ncontract ERC827TokenMock is ERC827Token {\n\n constructor(address initialAccount, uint256 initialBalance) public {\n _mint(initialAccount, initialBalance);\n }\n\n}\n", - "sourcePath": "/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol", - "ast": { - "absolutePath": "/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol", - "exportedSymbols": { "ERC827TokenMock": [952] }, - "id": 953, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 935, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:5" - }, - { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol", - "file": "../token/ERC827/ERC827Token.sol", - "id": 936, - "nodeType": "ImportDirective", - "scope": 953, - "sourceUnit": 1567, - "src": "26:41:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 937, - "name": "ERC827Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1566, - "src": "130:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - }, - "id": 938, - "nodeType": "InheritanceSpecifier", - "src": "130:11:5" - } - ], - "contractDependencies": [1334, 1566, 6567, 6636], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 952, - "linearizedBaseContracts": [952, 1566, 1334, 6567, 6636], - "name": "ERC827TokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 950, - "nodeType": "Block", - "src": "216:54:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "initialAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "232:14:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 947, - "name": "initialBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 942, - "src": "248:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 945, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6453, - "src": "226:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "226:37:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 949, - "nodeType": "ExpressionStatement", - "src": "226:37:5" - } - ] - }, - "documentation": null, - "id": 951, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 940, - "name": "initialAccount", - "nodeType": "VariableDeclaration", - "scope": 951, - "src": "161:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 939, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "161:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 942, - "name": "initialBalance", - "nodeType": "VariableDeclaration", - "scope": 951, - "src": "185:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "185:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "160:48:5" - }, - "returnParameters": { - "id": 944, - "nodeType": "ParameterList", - "parameters": [], - "src": "216:0:5" - }, - "scope": 952, - "src": "149:121:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 953, - "src": "102:171:5" - } - ], - "src": "0:274:5" - }, - "legacyAST": { - "absolutePath": "/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol", - "exportedSymbols": { "ERC827TokenMock": [952] }, - "id": 953, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 935, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:5" - }, - { - "absolutePath": "/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol", - "file": "../token/ERC827/ERC827Token.sol", - "id": 936, - "nodeType": "ImportDirective", - "scope": 953, - "sourceUnit": 1567, - "src": "26:41:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 937, - "name": "ERC827Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 1566, - "src": "130:11:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC827Token_$1566", - "typeString": "contract ERC827Token" - } - }, - "id": 938, - "nodeType": "InheritanceSpecifier", - "src": "130:11:5" - } - ], - "contractDependencies": [1334, 1566, 6567, 6636], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 952, - "linearizedBaseContracts": [952, 1566, 1334, 6567, 6636], - "name": "ERC827TokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 950, - "nodeType": "Block", - "src": "216:54:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 946, - "name": "initialAccount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 940, - "src": "232:14:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 947, - "name": "initialBalance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 942, - "src": "248:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 945, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6453, - "src": "226:5:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 948, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "226:37:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 949, - "nodeType": "ExpressionStatement", - "src": "226:37:5" - } - ] - }, - "documentation": null, - "id": 951, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 940, - "name": "initialAccount", - "nodeType": "VariableDeclaration", - "scope": 951, - "src": "161:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 939, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "161:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 942, - "name": "initialBalance", - "nodeType": "VariableDeclaration", - "scope": 951, - "src": "185:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 941, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "185:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "160:48:5" - }, - "returnParameters": { - "id": 944, - "nodeType": "ParameterList", - "parameters": [], - "src": "216:0:5" - }, - "scope": 952, - "src": "149:121:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 953, - "src": "102:171:5" - } - ], - "src": "0:274:5" - }, - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.14", - "updatedAt": "2019-10-22T12:36:36.334Z", - "devdoc": { - "methods": { - "allowance(address,address)": { "details": "See `IERC20.allowance`." }, - "approve(address,uint256)": { - "details": "See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address." - }, - "approveAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729", - "params": { - "_data": "ABI-encoded contract call to call `_spender` address.", - "_spender": "The address that will spend the funds.", - "_value": "The amount of tokens to be spent." - }, - "return": "true if the call function was executed successfully" - }, - "balanceOf(address)": { "details": "See `IERC20.balanceOf`." }, - "decreaseAllowance(address,uint256)": { - "details": "Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`." - }, - "decreaseApprovalAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", - "params": { - "_data": "ABI-encoded contract call to call `_spender` address.", - "_spender": "The address which will spend the funds.", - "_subtractedValue": "The amount of tokens to decrease the allowance by." - } - }, - "increaseAllowance(address,uint256)": { - "details": "Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address." - }, - "increaseApprovalAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol", - "params": { - "_addedValue": "The amount of tokens to increase the allowance by.", - "_data": "ABI-encoded contract call to call `_spender` address.", - "_spender": "The address which will spend the funds." - } - }, - "totalSupply()": { "details": "See `IERC20.totalSupply`." }, - "transfer(address,uint256)": { - "details": "See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`." - }, - "transferAndCall(address,uint256,bytes)": { - "details": "Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction", - "params": { - "_data": "ABI-encoded contract call to call `_to` address.", - "_to": "address The address which you want to transfer to", - "_value": "uint256 the amout of tokens to be transfered" - }, - "return": "true if the call function was executed successfully" - }, - "transferFrom(address,address,uint256)": { - "details": "See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`." - }, - "transferFromAndCall(address,address,uint256,bytes)": { - "details": "Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction", - "params": { - "_data": "ABI-encoded contract call to call `_to` address.", - "_from": "The address which you want to send tokens from", - "_to": "The address which you want to transfer to", - "_value": "The amout of tokens to be transferred" - }, - "return": "true if the call function was executed successfully" - } - } - }, - "userdoc": { "methods": {} } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ExternalLocking4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ExternalLocking4Reputation.json deleted file mode 100644 index bddcb44c..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ExternalLocking4Reputation.json +++ /dev/null @@ -1,365 +0,0 @@ -{ - "contractName": "ExternalLocking4Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingStartTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLocked", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "scores", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "externalLockingContract", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "lockers", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "uint256", "name": "releaseTime", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingEndTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationRewardLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxLockingPeriod", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalScore", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingsCounter", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLockedLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "externalLockers", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "registrar", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getBalanceFuncSignature", - "outputs": [{ "internalType": "string", "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - } - ], - "name": "Register", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Release", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_locker", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_period", - "type": "uint256" - } - ], - "name": "Lock", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputationReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_claimingStartTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_claimingEndTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_redeemEnableTime", - "type": "uint256" - }, - { - "internalType": "address", - "name": "_externalLockingContract", - "type": "address" - }, - { - "internalType": "string", - "name": "_getBalanceFuncSignature", - "type": "string" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "claim", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "register", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ExternalTokenLockerMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ExternalTokenLockerMock.json deleted file mode 100644 index cd4998eb..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ExternalTokenLockerMock.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "contractName": "ExternalTokenLockerMock", - "abi": [ - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "lockedTokenBalances", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "lock", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/FixedReputationAllocation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/FixedReputationAllocation.json deleted file mode 100644 index c1a5ba32..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/FixedReputationAllocation.json +++ /dev/null @@ -1,234 +0,0 @@ -{ - "contractName": "FixedReputationAllocation", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "beneficiaries", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numberOfBeneficiaries", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isEnable", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "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": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "beneficiaryReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - } - ], - "name": "BeneficiaryAddressAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputationReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_redeemEnableTime", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "addBeneficiary", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address[]", - "name": "_beneficiaries", - "type": "address[]" - } - ], - "name": "addBeneficiaries", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "enable", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Forwarder.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Forwarder.json deleted file mode 100644 index e1b41046..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Forwarder.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "contractName": "Forwarder", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "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": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "expirationTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_expirationTime", - "type": "uint256" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "unregisterSelf", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenericScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenericScheme.json deleted file mode 100644 index 3494c104..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenericScheme.json +++ /dev/null @@ -1,353 +0,0 @@ -{ - "contractName": "GenericScheme", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "votingMachine", - "outputs": [ - { - "internalType": "contract IntVoteInterface", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "contractToCall", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "organizationProposals", - "outputs": [ - { "internalType": "bytes", "name": "callData", "type": "bytes" }, - { "internalType": "uint256", "name": "value", "type": "uint256" }, - { "internalType": "bool", "name": "exist", "type": "bool" }, - { "internalType": "bool", "name": "passed", "type": "bool" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "voteParams", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_callData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewCallProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_genericCallReturnValue", - "type": "bytes" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - } - ], - "name": "ProposalExecutedByVotingMachine", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - } - ], - "name": "ProposalDeleted", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_votingMachine", - "type": "address" - }, - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "address", - "name": "_contractToCall", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_decision", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "execute", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes", "name": "_callData", "type": "bytes" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeCall", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocol.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocol.json deleted file mode 100644 index e0200fb1..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocol.json +++ /dev/null @@ -1,993 +0,0 @@ -{ - "contractName": "GenesisProtocol", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "uint256", - "name": "queuedVoteRequiredPercentage", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "queuedVotePeriodLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "boostedVotePeriodLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preBoostedVotePeriodLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thresholdConst", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "limitExponentValue", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "quietEndingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposingRepReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "votersReputationLossRatio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumDaoBounty", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "daoBountyConst", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "activationTime", - "type": "uint256" - }, - { "internalType": "address", "name": "voteOnBehalf", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "uint256[11]", - "name": "_params", - "type": "uint256[11]" - }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NO", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalsCnt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { - "internalType": "bytes32", - "name": "_organizationId", - "type": "bytes32" - } - ], - "name": "threshold", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "DELEGATION_HASH_EIP712", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposals", - "outputs": [ - { - "internalType": "bytes32", - "name": "organizationId", - "type": "bytes32" - }, - { "internalType": "address", "name": "callbacks", "type": "address" }, - { - "internalType": "enum GenesisProtocolLogic.ProposalState", - "name": "state", - "type": "uint8" - }, - { "internalType": "uint256", "name": "winningVote", "type": "uint256" }, - { "internalType": "address", "name": "proposer", "type": "address" }, - { - "internalType": "uint256", - "name": "currentBoostedVotePeriodLimit", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "paramsHash", "type": "bytes32" }, - { - "internalType": "uint256", - "name": "daoBountyRemain", - "type": "uint256" - }, - { "internalType": "uint256", "name": "daoBounty", "type": "uint256" }, - { "internalType": "uint256", "name": "totalStakes", "type": "uint256" }, - { - "internalType": "uint256", - "name": "confidenceThreshold", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "secondsFromTimeOutTillExecuteBoosted", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "daoRedeemItsWinnings", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "calcExecuteCallBounty", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeemDaoBounty", - "outputs": [ - { - "internalType": "uint256", - "name": "redeemedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "potentialAmount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "stakingToken", - "outputs": [ - { "internalType": "contract IERC20", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "shouldBoost", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "address", "name": "_proposer", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256[11]", - "name": "_params", - "type": "uint256[11]" - }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NUM_OF_CHOICES", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "stakesNonce", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "YES", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "organizations", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "averagesDownstakesOfBoosted", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "executeBoosted", - "outputs": [ - { - "internalType": "uint256", - "name": "expirationCallBounty", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { - "internalType": "uint256[3]", - "name": "rewards", - "type": "uint256[3]" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "orgBoostedProposalsCnt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Stake", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemDaoBounty", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum GenesisProtocolLogic.ProposalState", - "name": "_proposalState", - "type": "uint8" - } - ], - "name": "StateChange", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum GenesisProtocolLogic.ExecutionState", - "name": "_executionState", - "type": "uint8" - } - ], - "name": "GPExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "ExpirationCallBounty", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_confidenceThreshold", - "type": "uint256" - } - ], - "name": "ConfidenceLevelChange", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_decision", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_totalReputation", - "type": "uint256" - } - ], - "name": "ExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "VoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - } - ], - "name": "CancelVoting", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "stake", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "uint256", "name": "_nonce", "type": "uint256" }, - { - "internalType": "uint256", - "name": "_signatureType", - "type": "uint256" - }, - { "internalType": "bytes", "name": "_signature", "type": "bytes" } - ], - "name": "stakeWithSignature", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "vote", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "cancelVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "execute", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "getNumberOfChoices", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getProposalTimes", - "outputs": [ - { "internalType": "uint256[3]", "name": "times", "type": "uint256[3]" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "voteInfo", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_choice", "type": "uint256" } - ], - "name": "voteStatus", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "isVotable", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "proposalStatus", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getProposalOrganization", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_staker", "type": "address" } - ], - "name": "getStaker", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" } - ], - "name": "voteStake", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "winningVote", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "state", - "outputs": [ - { - "internalType": "enum GenesisProtocolLogic.ProposalState", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isAbstainAllow", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAllowedRangeOfChoices", - "outputs": [ - { "internalType": "uint256", "name": "min", "type": "uint256" }, - { "internalType": "uint256", "name": "max", "type": "uint256" } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "score", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocolCallbacksMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocolCallbacksMock.json deleted file mode 100644 index 52e5fc01..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocolCallbacksMock.json +++ /dev/null @@ -1,440 +0,0 @@ -{ - "contractName": "GenesisProtocolCallbacksMock", - "abi": [ - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "stakingToken", - "outputs": [ - { "internalType": "contract IERC20", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "genesisProtocol", - "outputs": [ - { - "internalType": "contract GenesisProtocol", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputation", - "outputs": [ - { "internalType": "contract Reputation", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposalsBlockNumbers", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract Reputation", - "name": "_reputation", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "contract GenesisProtocol", - "name": "_genesisProtocol", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "_msg", - "type": "address" - } - ], - "name": "LogAddress", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "int256", - "name": "_msg", - "type": "int256" - } - ], - "name": "LogInt", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "string", - "name": "_msg", - "type": "string" - } - ], - "name": "LogString", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "_msg", - "type": "uint256" - } - ], - "name": "LogUint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes", - "name": "_msg", - "type": "bytes" - } - ], - "name": "LogBytes", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "_msg", - "type": "bytes32" - } - ], - "name": "LogBytes32", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bool", - "name": "_msg", - "type": "bool" - } - ], - "name": "LogBool", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256[11]", - "name": "_params", - "type": "uint256[11]" - }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_decision", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "_proposer", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "burnReputationTest", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "setProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocolLogic.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocolLogic.json deleted file mode 100644 index 6081ba28..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GenesisProtocolLogic.json +++ /dev/null @@ -1,812 +0,0 @@ -{ - "contractName": "GenesisProtocolLogic", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "uint256", - "name": "queuedVoteRequiredPercentage", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "queuedVotePeriodLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "boostedVotePeriodLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "preBoostedVotePeriodLimit", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "thresholdConst", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "limitExponentValue", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "quietEndingPeriod", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "proposingRepReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "votersReputationLossRatio", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "minimumDaoBounty", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "daoBountyConst", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "activationTime", - "type": "uint256" - }, - { "internalType": "address", "name": "voteOnBehalf", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NO", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalsCnt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposals", - "outputs": [ - { - "internalType": "bytes32", - "name": "organizationId", - "type": "bytes32" - }, - { "internalType": "address", "name": "callbacks", "type": "address" }, - { - "internalType": "enum GenesisProtocolLogic.ProposalState", - "name": "state", - "type": "uint8" - }, - { "internalType": "uint256", "name": "winningVote", "type": "uint256" }, - { "internalType": "address", "name": "proposer", "type": "address" }, - { - "internalType": "uint256", - "name": "currentBoostedVotePeriodLimit", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "paramsHash", "type": "bytes32" }, - { - "internalType": "uint256", - "name": "daoBountyRemain", - "type": "uint256" - }, - { "internalType": "uint256", "name": "daoBounty", "type": "uint256" }, - { "internalType": "uint256", "name": "totalStakes", "type": "uint256" }, - { - "internalType": "uint256", - "name": "confidenceThreshold", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "secondsFromTimeOutTillExecuteBoosted", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "daoRedeemItsWinnings", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_rep", "type": "uint256" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "vote", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAllowedRangeOfChoices", - "outputs": [ - { "internalType": "uint256", "name": "min", "type": "uint256" }, - { "internalType": "uint256", "name": "max", "type": "uint256" } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isAbstainAllow", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "stakingToken", - "outputs": [ - { "internalType": "contract IERC20", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "cancelVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NUM_OF_CHOICES", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getNumberOfChoices", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "YES", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_choice", "type": "uint256" } - ], - "name": "voteStatus", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "organizations", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "averagesDownstakesOfBoosted", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "isVotable", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "orgBoostedProposalsCnt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_staker", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Stake", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemDaoBounty", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "RedeemReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum GenesisProtocolLogic.ProposalState", - "name": "_proposalState", - "type": "uint8" - } - ], - "name": "StateChange", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum GenesisProtocolLogic.ExecutionState", - "name": "_executionState", - "type": "uint8" - } - ], - "name": "GPExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "ExpirationCallBounty", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_confidenceThreshold", - "type": "uint256" - } - ], - "name": "ConfidenceLevelChange", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_decision", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_totalReputation", - "type": "uint256" - } - ], - "name": "ExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "VoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - } - ], - "name": "CancelVoting", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "address", "name": "_proposer", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "executeBoosted", - "outputs": [ - { - "internalType": "uint256", - "name": "expirationCallBounty", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256[11]", - "name": "_params", - "type": "uint256[11]" - }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { - "internalType": "uint256[3]", - "name": "rewards", - "type": "uint256[3]" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeemDaoBounty", - "outputs": [ - { - "internalType": "uint256", - "name": "redeemedAmount", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "potentialAmount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "calcExecuteCallBounty", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "shouldBoost", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { - "internalType": "bytes32", - "name": "_organizationId", - "type": "bytes32" - } - ], - "name": "threshold", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "uint256[11]", - "name": "_params", - "type": "uint256[11]" - }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintInterface.json deleted file mode 100644 index 57648f7b..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintInterface.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "contractName": "GlobalConstraintInterface", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { "internalType": "bytes32", "name": "_method", "type": "bytes32" } - ], - "name": "pre", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { "internalType": "bytes32", "name": "_method", "type": "bytes32" } - ], - "name": "post", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "when", - "outputs": [ - { - "internalType": "enum GlobalConstraintInterface.CallPhase", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintMock.json deleted file mode 100644 index fbff12d4..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintMock.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "contractName": "GlobalConstraintMock", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "currentCallPhase", - "outputs": [ - { - "internalType": "enum GlobalConstraintInterface.CallPhase", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "testParams", - "outputs": [ - { "internalType": "bool", "name": "pre", "type": "bool" }, - { "internalType": "bool", "name": "post", "type": "bool" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "method", "type": "bytes32" }, - { "internalType": "bool", "name": "pre", "type": "bool" }, - { "internalType": "bool", "name": "post", "type": "bool" } - ], - "name": "setConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "bytes32", "name": "method", "type": "bytes32" } - ], - "name": "pre", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "bytes32", "name": "method", "type": "bytes32" } - ], - "name": "post", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "when", - "outputs": [ - { - "internalType": "enum GlobalConstraintInterface.CallPhase", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintRegistrar.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintRegistrar.json deleted file mode 100644 index 694d7dfc..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/GlobalConstraintRegistrar.json +++ /dev/null @@ -1,406 +0,0 @@ -{ - "contractName": "GlobalConstraintRegistrar", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "bytes32", - "name": "voteRegisterParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "organizationsProposals", - "outputs": [ - { "internalType": "address", "name": "gc", "type": "address" }, - { "internalType": "bool", "name": "addGC", "type": "bool" }, - { "internalType": "bytes32", "name": "params", "type": "bytes32" }, - { - "internalType": "bytes32", - "name": "voteToRemoveParams", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" } - ], - "name": "voteToRemoveParams", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_gc", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_params", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_voteToRemoveParams", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewGlobalConstraintsProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_gc", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "RemoveGlobalConstraintsProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - } - ], - "name": "ProposalDeleted", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_param", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "_voteRegisterParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_gc", "type": "address" }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { - "internalType": "bytes32", - "name": "_voteToRemoveParams", - "type": "bytes32" - }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeGlobalConstraint", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_gc", "type": "address" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeToRemoveGC", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_voteRegisterParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/IERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/IERC20.json deleted file mode 100644 index 6b3062f8..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/IERC20.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "contractName": "IERC20", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "account", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "owner", "type": "address" }, - { "internalType": "address", "name": "spender", "type": "address" } - ], - "name": "allowance", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "spender", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "approve", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "sender", "type": "address" }, - { "internalType": "address", "name": "recipient", "type": "address" }, - { "internalType": "uint256", "name": "amount", "type": "uint256" } - ], - "name": "transferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/IntVoteInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/IntVoteInterface.json deleted file mode 100644 index 86a1f68a..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/IntVoteInterface.json +++ /dev/null @@ -1,264 +0,0 @@ -{ - "contractName": "IntVoteInterface", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_decision", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_totalReputation", - "type": "uint256" - } - ], - "name": "ExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "VoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - } - ], - "name": "CancelVoting", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_proposalParameters", - "type": "bytes32" - }, - { "internalType": "address", "name": "_proposer", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_rep", "type": "uint256" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "vote", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "cancelVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getNumberOfChoices", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "isVotable", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_choice", "type": "uint256" } - ], - "name": "voteStatus", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isAbstainAllow", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAllowedRangeOfChoices", - "outputs": [ - { "internalType": "uint256", "name": "min", "type": "uint256" }, - { "internalType": "uint256", "name": "max", "type": "uint256" } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Locking4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Locking4Reputation.json deleted file mode 100644 index b3ee20bd..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Locking4Reputation.json +++ /dev/null @@ -1,231 +0,0 @@ -{ - "contractName": "Locking4Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingStartTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLocked", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "scores", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "lockers", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "uint256", "name": "releaseTime", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingEndTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationRewardLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxLockingPeriod", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalScore", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingsCounter", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLockedLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Release", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_locker", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_period", - "type": "uint256" - } - ], - "name": "Lock", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/LockingEth4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/LockingEth4Reputation.json deleted file mode 100644 index 0c843914..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/LockingEth4Reputation.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "contractName": "LockingEth4Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingStartTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLocked", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "scores", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "lockers", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "uint256", "name": "releaseTime", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingEndTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationRewardLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxLockingPeriod", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalScore", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingsCounter", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLockedLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Release", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_locker", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_period", - "type": "uint256" - } - ], - "name": "Lock", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputationReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_lockingStartTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_lockingEndTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_redeemEnableTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxLockingPeriod", - "type": "uint256" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address payable", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_lockingId", "type": "bytes32" } - ], - "name": "release", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_period", "type": "uint256" }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "lock", - "outputs": [ - { "internalType": "bytes32", "name": "lockingId", "type": "bytes32" } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/LockingToken4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/LockingToken4Reputation.json deleted file mode 100644 index af4a899a..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/LockingToken4Reputation.json +++ /dev/null @@ -1,372 +0,0 @@ -{ - "contractName": "LockingToken4Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "redeemEnableTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "priceOracleContract", - "outputs": [ - { - "internalType": "contract PriceOracleInterface", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingStartTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLocked", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "scores", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "lockers", - "outputs": [ - { "internalType": "uint256", "name": "amount", "type": "uint256" }, - { "internalType": "uint256", "name": "releaseTime", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingEndTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationRewardLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "maxLockingPeriod", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalScore", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lockingsCounter", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalLockedLeft", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "lockedTokens", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_token", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numerator", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_denominator", - "type": "uint256" - } - ], - "name": "LockToken", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Release", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_locker", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_lockingId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_period", - "type": "uint256" - } - ], - "name": "Lock", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_reputationReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_lockingStartTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_lockingEndTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_redeemEnableTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_maxLockingPeriod", - "type": "uint256" - }, - { - "internalType": "contract PriceOracleInterface", - "name": "_priceOracleContract", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_lockingId", "type": "bytes32" } - ], - "name": "release", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "uint256", "name": "_period", "type": "uint256" }, - { "internalType": "address", "name": "_token", "type": "address" }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "lock", - "outputs": [ - { "internalType": "bytes32", "name": "lockingId", "type": "bytes32" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Math.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Math.json deleted file mode 100644 index f07da72b..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Math.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "Math", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Migrations.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Migrations.json deleted file mode 100644 index c4e6c06a..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Migrations.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastCompletedMigration", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "completed", "type": "uint256" } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newAddress", "type": "address" } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/MiniMeToken.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/MiniMeToken.json deleted file mode 100644 index 29a380ba..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/MiniMeToken.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "contractName": "MiniMeToken", - "abi": [ - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } - ], - "name": "balanceOfAt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } - ], - "name": "totalSupplyAt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/NectarRepAllocation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/NectarRepAllocation.json deleted file mode 100644 index fe928658..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/NectarRepAllocation.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "contractName": "NectarRepAllocation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "claimingStartTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "blockReference", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalTokenSupplyAt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "claimingEndTime", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "reputationReward", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [ - { - "internalType": "contract MiniMeToken", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_reputationReward", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_claimingStartTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_claimingEndTime", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "_blockReference", - "type": "uint256" - }, - { - "internalType": "contract MiniMeToken", - "name": "_token", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "balanceOf", - "outputs": [ - { "internalType": "uint256", "name": "reputation", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/OrganizationRegister.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/OrganizationRegister.json deleted file mode 100644 index 22e597f7..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/OrganizationRegister.json +++ /dev/null @@ -1,133 +0,0 @@ -{ - "contractName": "OrganizationRegister", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { "internalType": "uint256", "name": "fee", "type": "uint256" }, - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { "internalType": "address", "name": "beneficiary", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "address", "name": "", "type": "address" } - ], - "name": "organizationsRegistry", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_registry", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_org", - "type": "address" - } - ], - "name": "OrgAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_registry", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_org", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Promotion", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { "internalType": "uint256", "name": "_fee", "type": "uint256" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_record", "type": "address" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "addOrPromoteAddress", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { "internalType": "uint256", "name": "_fee", "type": "uint256" }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Ownable.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Ownable.json deleted file mode 100644 index 00cf4440..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Ownable.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "contractName": "Ownable", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PolkaCurve.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PolkaCurve.json deleted file mode 100644 index 2febd6bf..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PolkaCurve.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "contractName": "PolkaCurve", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "SUM_OF_SQRTS", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "TOTAL_REPUTATION", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "calc", - "outputs": [ - { "internalType": "uint256", "name": "sqrt", "type": "uint256" } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PriceOracleInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PriceOracleInterface.json deleted file mode 100644 index ce95c6b5..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PriceOracleInterface.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "contractName": "PriceOracleInterface", - "abi": [ - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" } - ], - "name": "getPrice", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PriceOracleMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PriceOracleMock.json deleted file mode 100644 index d4502345..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/PriceOracleMock.json +++ /dev/null @@ -1,105 +0,0 @@ -{ - "contractName": "PriceOracleMock", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "tokenPrices", - "outputs": [ - { "internalType": "uint256", "name": "numerator", "type": "uint256" }, - { "internalType": "uint256", "name": "denominator", "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": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" }, - { "internalType": "uint256", "name": "numerator", "type": "uint256" }, - { "internalType": "uint256", "name": "denominator", "type": "uint256" } - ], - "name": "setTokenPrice", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "token", "type": "address" } - ], - "name": "getPrice", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ProposalExecuteInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ProposalExecuteInterface.json deleted file mode 100644 index b2058aa5..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ProposalExecuteInterface.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "contractName": "ProposalExecuteInterface", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_decision", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/QuorumVote.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/QuorumVote.json deleted file mode 100644 index e6ecbaa4..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/QuorumVote.json +++ /dev/null @@ -1,400 +0,0 @@ -{ - "contractName": "QuorumVote", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { "internalType": "uint256", "name": "precReq", "type": "uint256" }, - { "internalType": "address", "name": "voteOnBehalf", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "voteInfo", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalsCnt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_precReq", "type": "uint256" }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_precReq", "type": "uint256" }, - { - "internalType": "address", - "name": "_voteOnBehalf", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposals", - "outputs": [ - { - "internalType": "bytes32", - "name": "organizationId", - "type": "bytes32" - }, - { "internalType": "bool", "name": "open", "type": "bool" }, - { "internalType": "address", "name": "callbacks", "type": "address" }, - { - "internalType": "uint256", - "name": "numOfChoices", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "paramsHash", "type": "bytes32" }, - { "internalType": "uint256", "name": "totalVotes", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_voter", "type": "address" } - ], - "name": "vote", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAllowedRangeOfChoices", - "outputs": [ - { "internalType": "uint256", "name": "min", "type": "uint256" }, - { "internalType": "uint256", "name": "max", "type": "uint256" } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isAbstainAllow", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "address", "name": "", "type": "address" }, - { - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "propose", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "MAX_NUM_OF_CHOICES", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "cancelVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getNumberOfChoices", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "uint256", "name": "_choice", "type": "uint256" } - ], - "name": "voteStatus", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "organizations", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "isVotable", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_isProxyVote", - "type": "bool" - } - ], - "name": "AVVoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_numOfChoices", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "_proposer", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_paramsHash", - "type": "bytes32" - } - ], - "name": "NewProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_decision", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_totalReputation", - "type": "uint256" - } - ], - "name": "ExecuteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_reputation", - "type": "uint256" - } - ], - "name": "VoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_organization", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_voter", - "type": "address" - } - ], - "name": "CancelVoting", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "execute", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RealMath.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RealMath.json deleted file mode 100644 index 268e1104..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RealMath.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "RealMath", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RealMathTester.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RealMathTester.json deleted file mode 100644 index b0bf4d22..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RealMathTester.json +++ /dev/null @@ -1,1160 +0,0 @@ -{ - "contractName": "RealMathTester", - "abi": [ - { - "constant": true, - "inputs": [ - { "internalType": "uint216", "name": "num", "type": "uint216" }, - { "internalType": "uint216", "name": "den", "type": "uint216" }, - { "internalType": "uint256", "name": "exp", "type": "uint256" } - ], - "name": "power", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint216", "name": "num", "type": "uint216" }, - { "internalType": "uint216", "name": "den", "type": "uint216" } - ], - "name": "fraction", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint216\",\"name\":\"num\",\"type\":\"uint216\"},{\"internalType\":\"uint216\",\"name\":\"den\",\"type\":\"uint216\"},{\"internalType\":\"uint256\",\"name\":\"exp\",\"type\":\"uint256\"}],\"name\":\"power\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint216\",\"name\":\"num\",\"type\":\"uint216\"},{\"internalType\":\"uint216\",\"name\":\"den\",\"type\":\"uint216\"}],\"name\":\"fraction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol\":\"RealMathTester\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol\":{\"keccak256\":\"0x5d6621bc8bfd477bb0048f0677ff310fcf77a06bf28cdae856623492e88c6f58\",\"urls\":[\"bzz-raw://53ae87e2e49af6d15e3eec1d9c6758091b591a13aab19e8734dd9dd35624a17a\",\"dweb:/ipfs/QmRVyyzQJbBYJytMTndDUuDJP431JcpjMeM1zciSMie8JM\"]}},\"version\":1}", - "sourceMap": "59:352:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:352:7;;;;;;;", - "deployedSourceMap": "59:352:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:352:7;;;;;;;;;;;;;;;;;;;;;;;;154:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;154:135:7;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;295:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;295:114:7;;;;;;;;;;:::i;154:135::-;228:7;254:28;278:3;255:17;-1:-1:-1;;;;;255:12:7;;268:3;255:17;:12;:17;:::i;:::-;254:23;:28;:23;:28;:::i;:::-;247:35;154:135;-1:-1:-1;;;;154:135:7:o;295:114::-;359:7;385:17;-1:-1:-1;;;;;385:12:7;;398:3;385:17;:12;:17;:::i;:::-;378:24;295:114;-1:-1:-1;;;295:114:7:o;1735:181:2:-;1816:7;1842:67;-1:-1:-1;;;;;1846:18:2;;;717:24;1846:29;;;;1877:20;;:31;1842:3;:67::i;821:845::-;893:7;936:8;977;717:24;1071:525;1078:17;;1071:525;;1162:12;1177:3;1162:18;1185:3;1161:27;1157:192;;;1305:29;1309:10;1321:12;1305:3;:29::i;:::-;1292:42;;1157:192;1434:1;1418:17;;;;;1453;;1449:137;;1540:31;1544:12;1558;1540:3;:31::i;:::-;1525:46;;1449:137;1071:525;;;1649:10;821:845;-1:-1:-1;;;;;821:845:2:o;2462:353::-;2545:7;2791:15;717:24;2746:33;;2791:15;2745:62;;;;;;2462:353;-1:-1:-1;;;2462:353:2:o;1996:383::-;2061:7;2261:13;;;2269:5;2261;:13;:5;2292:9;;;;;:18;2284:52;;;;;-1:-1:-1;;;2284:52:2;;;;;;;;;;;;-1:-1:-1;;;2284:52:2;;;;;;;;;;;;;;;613:2;2354:17;;1996:383;-1:-1:-1;;;1996:383:2:o", - "source": "pragma solidity ^0.5.11;\n\nimport \"../libs/RealMath.sol\";\n\n\ncontract RealMathTester {\n using RealMath for uint216;\n using RealMath for uint256;\n\n function power(uint216 num, uint216 den, uint256 exp) public pure returns(uint256) {\n return (num.fraction(den)).pow(exp);\n }\n\n function fraction(uint216 num, uint216 den) public pure returns(uint256) {\n return num.fraction(den);\n }\n}\n", - "sourcePath": "/Users/oren/daostack/infra/contracts/test/RealMathTester.sol", - "ast": { - "absolutePath": "/Users/oren/daostack/infra/contracts/test/RealMathTester.sol", - "exportedSymbols": { "RealMathTester": [1293] }, - "id": 1294, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1249, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:7" - }, - { - "absolutePath": "/Users/oren/daostack/infra/contracts/libs/RealMath.sol", - "file": "../libs/RealMath.sol", - "id": 1250, - "nodeType": "ImportDirective", - "scope": 1294, - "sourceUnit": 644, - "src": "26:30:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1293, - "linearizedBaseContracts": [1293], - "name": "RealMathTester", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1253, - "libraryName": { - "contractScope": null, - "id": 1251, - "name": "RealMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 643, - "src": "95:8:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RealMath_$643", - "typeString": "library RealMath" - } - }, - "nodeType": "UsingForDirective", - "src": "89:27:7", - "typeName": { - "id": 1252, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "108:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - } - }, - { - "id": 1256, - "libraryName": { - "contractScope": null, - "id": 1254, - "name": "RealMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 643, - "src": "127:8:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RealMath_$643", - "typeString": "library RealMath" - } - }, - "nodeType": "UsingForDirective", - "src": "121:27:7", - "typeName": { - "id": 1255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "140:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 1276, - "nodeType": "Block", - "src": "237:52:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1273, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "278:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1269, - "name": "den", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "268:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - ], - "expression": { - "argumentTypes": null, - "id": 1267, - "name": "num", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "255:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "id": 1268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 589, - "src": "255:12:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$", - "typeString": "function (uint216,uint216) pure returns (uint256)" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "255:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1271, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "254:19:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pow", - "nodeType": "MemberAccess", - "referencedDeclaration": 566, - "src": "254:23:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "254:28:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1266, - "id": 1275, - "nodeType": "Return", - "src": "247:35:7" - } - ] - }, - "documentation": null, - "id": 1277, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "power", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1258, - "name": "num", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "169:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1257, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "169:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1260, - "name": "den", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "182:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1259, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "182:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1262, - "name": "exp", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "195:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1261, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "195:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "168:39:7" - }, - "returnParameters": { - "id": 1266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "228:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1264, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "228:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "227:9:7" - }, - "scope": 1293, - "src": "154:135:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1291, - "nodeType": "Block", - "src": "368:41:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1288, - "name": "den", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1281, - "src": "398:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - ], - "expression": { - "argumentTypes": null, - "id": 1286, - "name": "num", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "385:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 589, - "src": "385:12:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$", - "typeString": "function (uint216,uint216) pure returns (uint256)" - } - }, - "id": 1289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "385:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1285, - "id": 1290, - "nodeType": "Return", - "src": "378:24:7" - } - ] - }, - "documentation": null, - "id": 1292, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fraction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1279, - "name": "num", - "nodeType": "VariableDeclaration", - "scope": 1292, - "src": "313:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1278, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "313:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1281, - "name": "den", - "nodeType": "VariableDeclaration", - "scope": 1292, - "src": "326:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1280, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "326:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "312:26:7" - }, - "returnParameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1284, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1292, - "src": "359:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "359:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "358:9:7" - }, - "scope": 1293, - "src": "295:114:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1294, - "src": "59:352:7" - } - ], - "src": "0:412:7" - }, - "legacyAST": { - "absolutePath": "/Users/oren/daostack/infra/contracts/test/RealMathTester.sol", - "exportedSymbols": { "RealMathTester": [1293] }, - "id": 1294, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1249, - "literals": ["solidity", "^", "0.5", ".11"], - "nodeType": "PragmaDirective", - "src": "0:24:7" - }, - { - "absolutePath": "/Users/oren/daostack/infra/contracts/libs/RealMath.sol", - "file": "../libs/RealMath.sol", - "id": 1250, - "nodeType": "ImportDirective", - "scope": 1294, - "sourceUnit": 644, - "src": "26:30:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 1293, - "linearizedBaseContracts": [1293], - "name": "RealMathTester", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 1253, - "libraryName": { - "contractScope": null, - "id": 1251, - "name": "RealMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 643, - "src": "95:8:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RealMath_$643", - "typeString": "library RealMath" - } - }, - "nodeType": "UsingForDirective", - "src": "89:27:7", - "typeName": { - "id": 1252, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "108:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - } - }, - { - "id": 1256, - "libraryName": { - "contractScope": null, - "id": 1254, - "name": "RealMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 643, - "src": "127:8:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_RealMath_$643", - "typeString": "library RealMath" - } - }, - "nodeType": "UsingForDirective", - "src": "121:27:7", - "typeName": { - "id": 1255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "140:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "body": { - "id": 1276, - "nodeType": "Block", - "src": "237:52:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1273, - "name": "exp", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "278:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1269, - "name": "den", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1260, - "src": "268:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - ], - "expression": { - "argumentTypes": null, - "id": 1267, - "name": "num", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1258, - "src": "255:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "id": 1268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 589, - "src": "255:12:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$", - "typeString": "function (uint216,uint216) pure returns (uint256)" - } - }, - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "255:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 1271, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "254:19:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "pow", - "nodeType": "MemberAccess", - "referencedDeclaration": 566, - "src": "254:23:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "254:28:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1266, - "id": 1275, - "nodeType": "Return", - "src": "247:35:7" - } - ] - }, - "documentation": null, - "id": 1277, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "power", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1263, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1258, - "name": "num", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "169:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1257, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "169:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1260, - "name": "den", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "182:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1259, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "182:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1262, - "name": "exp", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "195:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1261, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "195:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "168:39:7" - }, - "returnParameters": { - "id": 1266, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1265, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1277, - "src": "228:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1264, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "228:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "227:9:7" - }, - "scope": 1293, - "src": "154:135:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1291, - "nodeType": "Block", - "src": "368:41:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1288, - "name": "den", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1281, - "src": "398:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - ], - "expression": { - "argumentTypes": null, - "id": 1286, - "name": "num", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1279, - "src": "385:3:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fraction", - "nodeType": "MemberAccess", - "referencedDeclaration": 589, - "src": "385:12:7", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$", - "typeString": "function (uint216,uint216) pure returns (uint256)" - } - }, - "id": 1289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "385:17:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1285, - "id": 1290, - "nodeType": "Return", - "src": "378:24:7" - } - ] - }, - "documentation": null, - "id": 1292, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fraction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1282, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1279, - "name": "num", - "nodeType": "VariableDeclaration", - "scope": 1292, - "src": "313:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1278, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "313:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1281, - "name": "den", - "nodeType": "VariableDeclaration", - "scope": 1292, - "src": "326:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - }, - "typeName": { - "id": 1280, - "name": "uint216", - "nodeType": "ElementaryTypeName", - "src": "326:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint216", - "typeString": "uint216" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "312:26:7" - }, - "returnParameters": { - "id": 1285, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1284, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1292, - "src": "359:7:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "359:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "358:9:7" - }, - "scope": 1293, - "src": "295:114:7", - "stateMutability": "pure", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 1294, - "src": "59:352:7" - } - ], - "src": "0:412:7" - }, - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.14", - "updatedAt": "2019-10-22T12:36:36.338Z", - "devdoc": { "methods": {} }, - "userdoc": { "methods": {} } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Redeemer.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Redeemer.json deleted file mode 100644 index 4f111688..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Redeemer.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "contractName": "Redeemer", - "abi": [ - { - "constant": false, - "inputs": [ - { - "internalType": "contract ContributionReward", - "name": "_contributionReward", - "type": "address" - }, - { - "internalType": "contract GenesisProtocol", - "name": "_genesisProtocol", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "redeem", - "outputs": [ - { - "internalType": "uint256[3]", - "name": "gpRewards", - "type": "uint256[3]" - }, - { - "internalType": "uint256[2]", - "name": "gpDaoBountyReward", - "type": "uint256[2]" - }, - { "internalType": "bool", "name": "executed", "type": "bool" }, - { "internalType": "uint256", "name": "winningVote", "type": "uint256" }, - { - "internalType": "int256", - "name": "crReputationReward", - "type": "int256" - }, - { - "internalType": "uint256", - "name": "crNativeTokenReward", - "type": "uint256" - }, - { "internalType": "uint256", "name": "crEthReward", "type": "uint256" }, - { - "internalType": "uint256", - "name": "crExternalTokenReward", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RepAllocation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RepAllocation.json deleted file mode 100644 index 6718f248..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/RepAllocation.json +++ /dev/null @@ -1,155 +0,0 @@ -{ - "contractName": "RepAllocation", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "reputationAllocations", - "outputs": [{ "internalType": "uint256", "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": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isFreeze", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "BeneficiaryAddressAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "addBeneficiary", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address[]", - "name": "_beneficiaries", - "type": "address[]" - }, - { "internalType": "uint256[]", "name": "_amounts", "type": "uint256[]" } - ], - "name": "addBeneficiaries", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "freeze", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_beneficiary", "type": "address" } - ], - "name": "balanceOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Reputation.json deleted file mode 100644 index 79d02242..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Reputation.json +++ /dev/null @@ -1,188 +0,0 @@ -{ - "contractName": "Reputation", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [{ "internalType": "uint8", "name": "", "type": "uint8" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "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, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Mint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Burn", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" } - ], - "name": "balanceOf", - "outputs": [ - { "internalType": "uint256", "name": "balance", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } - ], - "name": "balanceOfAt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "uint256", "name": "_blockNumber", "type": "uint256" } - ], - "name": "totalSupplyAt", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_user", "type": "address" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "mint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_user", "type": "address" }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" } - ], - "name": "burn", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ReputationFromToken.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ReputationFromToken.json deleted file mode 100644 index 2f2f96b4..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/ReputationFromToken.json +++ /dev/null @@ -1,174 +0,0 @@ -{ - "contractName": "ReputationFromToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "DELEGATION_HASH_EIP712", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "redeems", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "tokenContract", - "outputs": [ - { "internalType": "contract IERC20", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "avatar", - "outputs": [ - { "internalType": "contract Avatar", "name": "", "type": "address" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getAgreementHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "curve", - "outputs": [ - { - "internalType": "contract CurveInterface", - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - } - ], - "name": "Redeem", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "contract IERC20", - "name": "_tokenContract", - "type": "address" - }, - { - "internalType": "contract CurveInterface", - "name": "_curve", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - } - ], - "name": "redeem", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_agreementHash", - "type": "bytes32" - }, - { - "internalType": "uint256", - "name": "_signatureType", - "type": "uint256" - }, - { "internalType": "bytes", "name": "_signature", "type": "bytes" } - ], - "name": "redeemWithSignature", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeERC20.json deleted file mode 100644 index bdaf7e10..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeERC20.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "SafeERC20", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeERC20Mock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeERC20Mock.json deleted file mode 100644 index 625d8ff3..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeERC20Mock.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "contractName": "SafeERC20Mock", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "token", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "transfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "transferWithFix", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "transferFromWithFix", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "approveWithFix", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeMath.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeMath.json deleted file mode 100644 index 9c8eee97..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SafeMath.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SchemeRegistrar.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SchemeRegistrar.json deleted file mode 100644 index 30edc813..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SchemeRegistrar.json +++ /dev/null @@ -1,409 +0,0 @@ -{ - "contractName": "SchemeRegistrar", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "bytes32", - "name": "voteRegisterParams", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "voteRemoveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "organizationsProposals", - "outputs": [ - { "internalType": "address", "name": "scheme", "type": "address" }, - { "internalType": "bool", "name": "addScheme", "type": "bool" }, - { - "internalType": "bytes32", - "name": "parametersHash", - "type": "bytes32" - }, - { "internalType": "bytes4", "name": "permissions", "type": "bytes4" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_scheme", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_parametersHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes4", - "name": "_permissions", - "type": "bytes4" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewSchemeProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_scheme", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "RemoveSchemeProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - } - ], - "name": "ProposalDeleted", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_param", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "_voteRegisterParams", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_voteRemoveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_scheme", "type": "address" }, - { - "internalType": "bytes32", - "name": "_parametersHash", - "type": "bytes32" - }, - { "internalType": "bytes4", "name": "_permissions", "type": "bytes4" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeScheme", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_scheme", "type": "address" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeToRemoveScheme", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "_voteRegisterParams", - "type": "bytes32" - }, - { - "internalType": "bytes32", - "name": "_voteRemoveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SignalScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SignalScheme.json deleted file mode 100644 index ecb069d9..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/SignalScheme.json +++ /dev/null @@ -1,280 +0,0 @@ -{ - "contractName": "SignalScheme", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "proposals", - "outputs": [ - { - "internalType": "string", - "name": "descriptionHash", - "type": "string" - }, - { "internalType": "bool", "name": "executed", "type": "bool" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "params", - "outputs": [ - { - "internalType": "bytes32", - "name": "voteApproveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - }, - { "internalType": "uint256", "name": "signalType", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_signalType", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewSignalProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "uint256", - "name": "_signalType", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "Signal", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "uint256", "name": "_signalType", "type": "uint256" }, - { - "internalType": "bytes32", - "name": "_voteApproveParams", - "type": "bytes32" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeSignal", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_param", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/TokenCapGC.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/TokenCapGC.json deleted file mode 100644 index 22585b96..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/TokenCapGC.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "contractName": "TokenCapGC", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "contract IERC20", - "name": "token", - "type": "address" - }, - { "internalType": "uint256", "name": "cap", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { "internalType": "uint256", "name": "_cap", "type": "uint256" } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_token", - "type": "address" - }, - { "internalType": "uint256", "name": "_cap", "type": "uint256" } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "pre", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "post", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "when", - "outputs": [ - { - "internalType": "enum GlobalConstraintInterface.CallPhase", - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UController.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UController.json deleted file mode 100644 index a77bf9ae..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UController.json +++ /dev/null @@ -1,643 +0,0 @@ -{ - "contractName": "UController", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "newControllers", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "organizations", - "outputs": [ - { - "internalType": "contract DAOToken", - "name": "nativeToken", - "type": "address" - }, - { - "internalType": "contract Reputation", - "name": "nativeReputation", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "internalType": "address", "name": "", "type": "address" }], - "name": "actors", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "MintReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "BurnReputation", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_amount", - "type": "uint256" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "MintTokens", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_scheme", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "RegisterScheme", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_scheme", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "UnregisterScheme", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_oldController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_newController", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "UpgradeController", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_params", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "enum GlobalConstraintInterface.CallPhase", - "name": "_when", - "type": "uint8" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "AddGlobalConstraint", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_index", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bool", - "name": "_isPre", - "type": "bool" - }, - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - } - ], - "name": "RemoveGlobalConstraint", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "newOrganization", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "mintTokens", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "bytes32", "name": "_paramsHash", "type": "bytes32" }, - { "internalType": "bytes4", "name": "_permissions", "type": "bytes4" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "registerScheme", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "unregisterScheme", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "unregisterSelf", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "addGlobalConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "removeGlobalConstraint", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_newController", - "type": "address" - }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "upgradeController", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "_contract", "type": "address" }, - { "internalType": "bytes", "name": "_data", "type": "bytes" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "genericCall", - "outputs": [ - { "internalType": "bool", "name": "", "type": "bool" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_amountInWei", - "type": "uint256" - }, - { "internalType": "address payable", "name": "_to", "type": "address" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "sendEther", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_from", "type": "address" }, - { "internalType": "address", "name": "_to", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenTransferFrom", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_externalToken", - "type": "address" - }, - { "internalType": "address", "name": "_spender", "type": "address" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "externalTokenApproval", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "string", "name": "_metaData", "type": "string" }, - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "metaData", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "isSchemeRegistered", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getSchemeParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getSchemePermissions", - "outputs": [{ "internalType": "bytes4", "name": "", "type": "bytes4" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getGlobalConstraintParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "globalConstraintsCount", - "outputs": [ - { "internalType": "uint256", "name": "", "type": "uint256" }, - { "internalType": "uint256", "name": "", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "_globalConstraint", - "type": "address" - }, - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "isGlobalConstraintRegistered", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_avatar", "type": "address" } - ], - "name": "getNativeReputation", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UGenericScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UGenericScheme.json deleted file mode 100644 index 0b37ee34..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UGenericScheme.json +++ /dev/null @@ -1,374 +0,0 @@ -{ - "contractName": "UGenericScheme", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - }, - { "internalType": "bytes32", "name": "voteParams", "type": "bytes32" }, - { - "internalType": "address", - "name": "contractToCall", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "organizationsProposals", - "outputs": [ - { "internalType": "bytes", "name": "callData", "type": "bytes" }, - { "internalType": "uint256", "name": "value", "type": "uint256" }, - { "internalType": "bool", "name": "exist", "type": "bool" }, - { "internalType": "bool", "name": "passed", "type": "bool" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_callData", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewCallProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_genericCallReturnValue", - "type": "bytes" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - } - ], - "name": "ProposalExecutedByVotingMachine", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - } - ], - "name": "ProposalDeleted", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_decision", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "execute", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - }, - { - "internalType": "address", - "name": "_contractToCall", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "bytes", "name": "_callData", "type": "bytes" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeCall", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - } - ], - "name": "getContractToCall", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - }, - { - "internalType": "address", - "name": "_contractToCall", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalScheme.json deleted file mode 100644 index 3803cc55..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalScheme.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "UniversalScheme", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalSchemeInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalSchemeInterface.json deleted file mode 100644 index 6c3eee57..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalSchemeInterface.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "contractName": "UniversalSchemeInterface", - "abi": [], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalSchemeMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalSchemeMock.json deleted file mode 100644 index 9f936a9f..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UniversalSchemeMock.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "contractName": "UniversalSchemeMock", - "abi": [ - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_contract", "type": "address" }, - { "internalType": "uint256", "name": "_a", "type": "uint256" }, - { "internalType": "address", "name": "_b", "type": "address" }, - { "internalType": "bytes32", "name": "_c", "type": "bytes32" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "genericCall", - "outputs": [ - { "internalType": "bool", "name": "", "type": "bool" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_contract", "type": "address" }, - { "internalType": "uint256", "name": "_a", "type": "uint256" }, - { "internalType": "address", "name": "_b", "type": "address" }, - { "internalType": "bytes32", "name": "_c", "type": "bytes32" }, - { "internalType": "uint256", "name": "_value", "type": "uint256" } - ], - "name": "genericCallDirect", - "outputs": [ - { "internalType": "bool", "name": "", "type": "bool" }, - { "internalType": "bytes", "name": "", "type": "bytes" } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UpgradeScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UpgradeScheme.json deleted file mode 100644 index 05481df9..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/UpgradeScheme.json +++ /dev/null @@ -1,374 +0,0 @@ -{ - "contractName": "UpgradeScheme", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { "internalType": "bytes32", "name": "voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "organizationsProposals", - "outputs": [ - { - "internalType": "address", - "name": "upgradeContract", - "type": "address" - }, - { "internalType": "bytes32", "name": "params", "type": "bytes32" }, - { "internalType": "uint256", "name": "proposalType", "type": "uint256" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_newController", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewUpgradeProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "_newUpgradeScheme", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_params", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "ChangeUpgradeSchemeProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - } - ], - "name": "ProposalDeleted", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_param", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "address", - "name": "_newController", - "type": "address" - }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeUpgrade", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { "internalType": "address", "name": "_scheme", "type": "address" }, - { "internalType": "bytes32", "name": "_params", "type": "bytes32" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeChangeUpgradingScheme", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VoteInOrganizationScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VoteInOrganizationScheme.json deleted file mode 100644 index 5cf97899..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VoteInOrganizationScheme.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "contractName": "VoteInOrganizationScheme", - "abi": [ - { - "constant": true, - "inputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "name": "parameters", - "outputs": [ - { - "internalType": "contract IntVoteInterface", - "name": "intVote", - "type": "address" - }, - { "internalType": "bytes32", "name": "voteParams", "type": "bytes32" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "organizationsProposals", - "outputs": [ - { - "internalType": "contract IntVoteInterface", - "name": "originalIntVote", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "originalProposalId", - "type": "bytes32" - }, - { "internalType": "uint256", "name": "vote", "type": "uint256" }, - { "internalType": "bool", "name": "exist", "type": "bool" } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "_intVoteInterface", - "type": "address" - }, - { - "indexed": false, - "internalType": "contract IntVoteInterface", - "name": "_originalIntVote", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes32", - "name": "_originalProposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_vote", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "NewVoteProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "int256", - "name": "_param", - "type": "int256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "_callReturnValue", - "type": "bytes" - } - ], - "name": "ProposalExecuted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_avatar", - "type": "address" - }, - { - "indexed": true, - "internalType": "bytes32", - "name": "_proposalId", - "type": "bytes32" - } - ], - "name": "ProposalDeleted", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" }, - { "internalType": "int256", "name": "_param", "type": "int256" } - ], - "name": "executeProposal", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "setParameters", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Avatar", - "name": "_avatar", - "type": "address" - }, - { - "internalType": "contract IntVoteInterface", - "name": "_originalIntVote", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "_originalProposalId", - "type": "bytes32" - }, - { "internalType": "uint256", "name": "_vote", "type": "uint256" }, - { - "internalType": "string", - "name": "_descriptionHash", - "type": "string" - } - ], - "name": "proposeVote", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_voteParams", "type": "bytes32" }, - { - "internalType": "contract IntVoteInterface", - "name": "_intVote", - "type": "address" - } - ], - "name": "getParametersHash", - "outputs": [{ "internalType": "bytes32", "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "pure", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VotingMachineCallbacks.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VotingMachineCallbacks.json deleted file mode 100644 index 9dede280..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VotingMachineCallbacks.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "contractName": "VotingMachineCallbacks", - "abi": [ - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "", "type": "address" }, - { "internalType": "bytes32", "name": "", "type": "bytes32" } - ], - "name": "proposalsInfo", - "outputs": [ - { "internalType": "uint256", "name": "blockNumber", "type": "uint256" }, - { - "internalType": "contract Avatar", - "name": "avatar", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VotingMachineCallbacksInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VotingMachineCallbacksInterface.json deleted file mode 100644 index fd1a0165..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/VotingMachineCallbacksInterface.json +++ /dev/null @@ -1,100 +0,0 @@ -{ - "contractName": "VotingMachineCallbacksInterface", - "abi": [ - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "mintReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "burnReputation", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { - "internalType": "address", - "name": "_beneficiary", - "type": "address" - }, - { "internalType": "uint256", "name": "_amount", "type": "uint256" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "stakingTokenTransfer", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "getTotalReputationSupply", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "internalType": "address", "name": "_owner", "type": "address" }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "reputationOf", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract IERC20", - "name": "_stakingToken", - "type": "address" - }, - { "internalType": "bytes32", "name": "_proposalId", "type": "bytes32" } - ], - "name": "balanceOfStakingToken", - "outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Wallet.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Wallet.json deleted file mode 100644 index 88df5cdb..00000000 --- a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.33/Wallet.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "contractName": "Wallet", - "abi": [ - { - "constant": false, - "inputs": [], - "name": "renounceOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [{ "internalType": "address", "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "isOwner", - "outputs": [{ "internalType": "bool", "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "internalType": "address", "name": "newOwner", "type": "address" } - ], - "name": "transferOwnership", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { "payable": true, "stateMutability": "payable", "type": "fallback" }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "ReceiveEther", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "_sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "_value", - "type": "uint256" - } - ], - "name": "Pay", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "previousOwner", - "type": "address" - }, - { - "indexed": true, - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "OwnershipTransferred", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address payable", - "name": "_beneficiary", - "type": "address" - } - ], - "name": "pay", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "compiler": { - "name": "solc", - "version": "0.5.11+commit.c082d0b4.Emscripten.clang" - } -} diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ARCDebug.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ARCDebug.json new file mode 100644 index 00000000..cb023516 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ARCDebug.json @@ -0,0 +1 @@ +{"contractName":"ARCDebug","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_msg","type":"address"}],"name":"LogAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_msg","type":"bool"}],"name":"LogBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"_msg","type":"bytes"}],"name":"LogBytes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_msg","type":"bytes32"}],"name":"LogBytes32","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"_msg","type":"int256"}],"name":"LogInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_msg","type":"string"}],"name":"LogString","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_msg","type":"uint256"}],"name":"LogUint","type":"event"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_msg\",\"type\":\"address\"}],\"name\":\"LogAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_msg\",\"type\":\"bool\"}],\"name\":\"LogBool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"LogBytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_msg\",\"type\":\"bytes32\"}],\"name\":\"LogBytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_msg\",\"type\":\"int256\"}],\"name\":\"LogInt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_msg\",\"type\":\"string\"}],\"name\":\"LogString\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_msg\",\"type\":\"uint256\"}],\"name\":\"LogUint\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/ARCDebug.sol\":\"ARCDebug\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/ARCDebug.sol\":{\"keccak256\":\"0xaf17c7272b1542e94b629c833a1f1d423174cee4ff3dce6c4f5f8116f1a616bf\",\"urls\":[\"bzz-raw://0565495e26dc07284a845ce08571ee3d97b86aef3b9c7d43ab4b13a85977aba8\",\"dweb:/ipfs/QmcBEkt7dT9DspqreYAg9KnH2rHEEUkshcKyzzJFJYoUB1\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol\":{\"keccak256\":\"0xad5c54c20f364aa436ec200d661216fb56794ce07e49be4428cfaeb1fb5e54c1\",\"urls\":[\"bzz-raw://a1850177fb74df2aff42f6fe9edee4c0576d8241c33b62851a70a787cb742433\",\"dweb:/ipfs/QmPrPzJBDTQXpK4nHEtpZkmfMzqr5GG425xwQQbcSaY4qi\"]},\"@daostack/infra/contracts/test/Debug.sol\":{\"keccak256\":\"0xb3562df919e581e90561050c58ac28579762878b5eccdf42ff62ecc293a7504b\",\"urls\":[\"bzz-raw://f0c96a48d8ec70ec0d7ee1acf3f1bcbeaa46e9669672217a6d878d64c7855eeb\",\"dweb:/ipfs/QmTPQqs7kLydbSaXFkdAKzC5h9MBofindPewSgjTpLLT25\"]},\"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol\":{\"keccak256\":\"0xcaccc2b035a7407b540c8f57ba02d2e567149740a40656316b687325ce7aa0d2\",\"urls\":[\"bzz-raw://a7717de0efdd6b6495256cb9bc0592621ffb02e97433f5953a9f1607c12a4e27\",\"dweb:/ipfs/QmYFP44fPtMF37BEjBZDWbQT76UAnXFvgqLSxDGCqtrxhP\"]},\"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol\":{\"keccak256\":\"0x78348cbb6bfe4b1a17ee416413090138e948d931edfaeb073ce9167d9548ddf8\",\"urls\":[\"bzz-raw://6d6b24445c0a9d749b27fd2828752b0c4df9ea0df4d22377f8e06d3a53022de5\",\"dweb:/ipfs/QmcKmuEG6wKpcMfVigDNeqANfbu7y8EgFT6QqSVpQA4Sqi\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/QuorumVote.sol\":{\"keccak256\":\"0x6c7ec7bf2c99874878936992d4900995a5e5bd204b6a03e9cb0575c67e01da23\",\"urls\":[\"bzz-raw://d99ff48496881091eee24151303cad55cafab3c1473f12f5dc829cf1670f7b5b\",\"dweb:/ipfs/QmVruSD7GGpS5nHb83bSgv8xRbUL169g4dmAmESZqqnVsh\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"467:253:24:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;467:253:24;;;;;;;","deployedSourceMap":"467:253:24:-;;;;;","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\";\nimport \"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol\";\nimport \"@daostack/infra/contracts/votingMachines/QuorumVote.sol\";\nimport \"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol\";\nimport \"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol\";\n\n/*\n A contract you can inherit from that has some useful Events to print statements.\n*/\n\n\ncontract ARCDebug {\n event LogAddress(address _msg);\n event LogInt(int256 _msg);\n event LogString(string _msg);\n event LogUint(uint256 _msg);\n event LogBytes(bytes _msg);\n event LogBytes32(bytes32 _msg);\n event LogBool(bool _msg);\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/ARCDebug.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ARCDebug.sol","exportedSymbols":{"ARCDebug":[8675]},"id":8676,"nodeType":"SourceUnit","nodes":[{"id":8641,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:24"},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","id":8642,"nodeType":"ImportDirective","scope":8676,"sourceUnit":17112,"src":"25:70:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","file":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","id":8643,"nodeType":"ImportDirective","scope":8676,"sourceUnit":16619,"src":"96:67:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","file":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","id":8644,"nodeType":"ImportDirective","scope":8676,"sourceUnit":19968,"src":"164:65:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","file":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","id":8645,"nodeType":"ImportDirective","scope":8676,"sourceUnit":15496,"src":"230:68:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","file":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","id":8646,"nodeType":"ImportDirective","scope":8676,"sourceUnit":15822,"src":"299:73:24","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8675,"linearizedBaseContracts":[8675],"name":"ARCDebug","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8650,"name":"LogAddress","nodeType":"EventDefinition","parameters":{"id":8649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8648,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8650,"src":"508:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8647,"name":"address","nodeType":"ElementaryTypeName","src":"508:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"507:14:24"},"src":"491:31:24"},{"anonymous":false,"documentation":null,"id":8654,"name":"LogInt","nodeType":"EventDefinition","parameters":{"id":8653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8652,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8654,"src":"540:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8651,"name":"int256","nodeType":"ElementaryTypeName","src":"540:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"539:13:24"},"src":"527:26:24"},{"anonymous":false,"documentation":null,"id":8658,"name":"LogString","nodeType":"EventDefinition","parameters":{"id":8657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8656,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8658,"src":"574:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8655,"name":"string","nodeType":"ElementaryTypeName","src":"574:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"573:13:24"},"src":"558:29:24"},{"anonymous":false,"documentation":null,"id":8662,"name":"LogUint","nodeType":"EventDefinition","parameters":{"id":8661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8660,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8662,"src":"606:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8659,"name":"uint256","nodeType":"ElementaryTypeName","src":"606:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"605:14:24"},"src":"592:28:24"},{"anonymous":false,"documentation":null,"id":8666,"name":"LogBytes","nodeType":"EventDefinition","parameters":{"id":8665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8664,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8666,"src":"640:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8663,"name":"bytes","nodeType":"ElementaryTypeName","src":"640:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"639:12:24"},"src":"625:27:24"},{"anonymous":false,"documentation":null,"id":8670,"name":"LogBytes32","nodeType":"EventDefinition","parameters":{"id":8669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8670,"src":"674:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"674:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"673:14:24"},"src":"657:31:24"},{"anonymous":false,"documentation":null,"id":8674,"name":"LogBool","nodeType":"EventDefinition","parameters":{"id":8673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8672,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8674,"src":"707:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8671,"name":"bool","nodeType":"ElementaryTypeName","src":"707:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"706:11:24"},"src":"693:25:24"}],"scope":8676,"src":"467:253:24"}],"src":"0:721:24"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ARCDebug.sol","exportedSymbols":{"ARCDebug":[8675]},"id":8676,"nodeType":"SourceUnit","nodes":[{"id":8641,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:24"},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","id":8642,"nodeType":"ImportDirective","scope":8676,"sourceUnit":17112,"src":"25:70:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","file":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","id":8643,"nodeType":"ImportDirective","scope":8676,"sourceUnit":16619,"src":"96:67:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","file":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","id":8644,"nodeType":"ImportDirective","scope":8676,"sourceUnit":19968,"src":"164:65:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","file":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","id":8645,"nodeType":"ImportDirective","scope":8676,"sourceUnit":15496,"src":"230:68:24","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","file":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","id":8646,"nodeType":"ImportDirective","scope":8676,"sourceUnit":15822,"src":"299:73:24","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8675,"linearizedBaseContracts":[8675],"name":"ARCDebug","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8650,"name":"LogAddress","nodeType":"EventDefinition","parameters":{"id":8649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8648,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8650,"src":"508:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8647,"name":"address","nodeType":"ElementaryTypeName","src":"508:7:24","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"507:14:24"},"src":"491:31:24"},{"anonymous":false,"documentation":null,"id":8654,"name":"LogInt","nodeType":"EventDefinition","parameters":{"id":8653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8652,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8654,"src":"540:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8651,"name":"int256","nodeType":"ElementaryTypeName","src":"540:6:24","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"539:13:24"},"src":"527:26:24"},{"anonymous":false,"documentation":null,"id":8658,"name":"LogString","nodeType":"EventDefinition","parameters":{"id":8657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8656,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8658,"src":"574:11:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8655,"name":"string","nodeType":"ElementaryTypeName","src":"574:6:24","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"573:13:24"},"src":"558:29:24"},{"anonymous":false,"documentation":null,"id":8662,"name":"LogUint","nodeType":"EventDefinition","parameters":{"id":8661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8660,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8662,"src":"606:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8659,"name":"uint256","nodeType":"ElementaryTypeName","src":"606:7:24","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"605:14:24"},"src":"592:28:24"},{"anonymous":false,"documentation":null,"id":8666,"name":"LogBytes","nodeType":"EventDefinition","parameters":{"id":8665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8664,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8666,"src":"640:10:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":8663,"name":"bytes","nodeType":"ElementaryTypeName","src":"640:5:24","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"639:12:24"},"src":"625:27:24"},{"anonymous":false,"documentation":null,"id":8670,"name":"LogBytes32","nodeType":"EventDefinition","parameters":{"id":8669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8668,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8670,"src":"674:12:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"674:7:24","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"673:14:24"},"src":"657:31:24"},{"anonymous":false,"documentation":null,"id":8674,"name":"LogBool","nodeType":"EventDefinition","parameters":{"id":8673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8672,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":8674,"src":"707:9:24","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8671,"name":"bool","nodeType":"ElementaryTypeName","src":"707:4:24","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"706:11:24"},"src":"693:25:24"}],"scope":8676,"src":"467:253:24"}],"src":"0:721:24"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.141Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ARCVotingMachineCallbacksMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ARCVotingMachineCallbacksMock.json new file mode 100644 index 00000000..95cf40fa --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ARCVotingMachineCallbacksMock.json @@ -0,0 +1 @@ +{"contractName":"ARCVotingMachineCallbacksMock","abi":[{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_votingMachine","type":"address"}],"name":"propose","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_votingMachine\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/ARCGenesisProtocolCallbacksMock.sol\":\"ARCVotingMachineCallbacksMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/test/ARCGenesisProtocolCallbacksMock.sol\":{\"keccak256\":\"0x5e6f1e91ca63400e69af915e271f1db62afa3bcd4a082b16575d51555f611246\",\"urls\":[\"bzz-raw://bcb607af0058cff12e34ff93c4c8b310eca0ac18dd901f39b8fedda9dc2d5a7a\",\"dweb:/ipfs/QmZnDe4e5henmCRBQn9zt9Ee5saVNkAdRTQymBFRD5851Z\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"82:311:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;82:311:25;;;;;;;","deployedSourceMap":"82:311:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;82:311:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;598:73:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;1973:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2666:345;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2325:335::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;154:237:25:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;154:237:25;;;-1:-1:-1;;;;;154:237:25;;;;;;;;;;;;:::i;:::-;;1492:475:50;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;678:401;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;1085:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;598:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;1973:346::-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;-1:-1:-1;;1973:346:50;;;;;:::o;2666:345::-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2325:335:50;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;154:237:25:-;294:90;;;;;;;;333:12;294:90;;-1:-1:-1;;;;;294:90:25;;;;;;;;;;249:29;;;-1:-1:-1;249:29:25;;;;;;;;;:42;;;;;;;;;:135;;;;;;;;;;;-1:-1:-1;;;;;;249:135:25;;;;;;;;;;;154:237::o;1492:475:50:-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;678:401::-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;1085:::-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;82:311:25;;;;;;;;;;-1:-1:-1;82:311:25;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\ncontract ARCVotingMachineCallbacksMock is VotingMachineCallbacks {\n\n function propose(bytes32 _proposalId, Avatar _avatar, address _votingMachine) public {\n proposalsInfo[_votingMachine][_proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/ARCGenesisProtocolCallbacksMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ARCGenesisProtocolCallbacksMock.sol","exportedSymbols":{"ARCVotingMachineCallbacksMock":[8703]},"id":8704,"nodeType":"SourceUnit","nodes":[{"id":8677,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:25"},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":8678,"nodeType":"ImportDirective","scope":8704,"sourceUnit":14651,"src":"25:54:25","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8679,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"124:22:25","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":8680,"nodeType":"InheritanceSpecifier","src":"124:22:25"}],"contractDependencies":[14650,20031],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8703,"linearizedBaseContracts":[8703,14650,20031],"name":"ARCVotingMachineCallbacksMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":8701,"nodeType":"Block","src":"239:152:25","statements":[{"expression":{"argumentTypes":null,"id":8699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8689,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"249:13:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":8692,"indexExpression":{"argumentTypes":null,"id":8690,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8686,"src":"263:14:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"249:29:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":8693,"indexExpression":{"argumentTypes":null,"id":8691,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"279:11:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"249:42:25","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8695,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"333:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"333:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8697,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8684,"src":"366:7:25","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8694,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"294:12:25","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":8698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"294:90:25","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"249:135:25","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":8700,"nodeType":"ExpressionStatement","src":"249:135:25"}]},"documentation":null,"id":8702,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":8687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8682,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8702,"src":"171:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8684,"name":"_avatar","nodeType":"VariableDeclaration","scope":8702,"src":"192:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8683,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"192:6:25","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":8686,"name":"_votingMachine","nodeType":"VariableDeclaration","scope":8702,"src":"208:22:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8685,"name":"address","nodeType":"ElementaryTypeName","src":"208:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"170:61:25"},"returnParameters":{"id":8688,"nodeType":"ParameterList","parameters":[],"src":"239:0:25"},"scope":8703,"src":"154:237:25","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":8704,"src":"82:311:25"}],"src":"0:394:25"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ARCGenesisProtocolCallbacksMock.sol","exportedSymbols":{"ARCVotingMachineCallbacksMock":[8703]},"id":8704,"nodeType":"SourceUnit","nodes":[{"id":8677,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:25"},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":8678,"nodeType":"ImportDirective","scope":8704,"sourceUnit":14651,"src":"25:54:25","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8679,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"124:22:25","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":8680,"nodeType":"InheritanceSpecifier","src":"124:22:25"}],"contractDependencies":[14650,20031],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8703,"linearizedBaseContracts":[8703,14650,20031],"name":"ARCVotingMachineCallbacksMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":8701,"nodeType":"Block","src":"239:152:25","statements":[{"expression":{"argumentTypes":null,"id":8699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8689,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"249:13:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":8692,"indexExpression":{"argumentTypes":null,"id":8690,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8686,"src":"263:14:25","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"249:29:25","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":8693,"indexExpression":{"argumentTypes":null,"id":8691,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8682,"src":"279:11:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"249:42:25","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8695,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"333:5:25","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"333:12:25","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8697,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8684,"src":"366:7:25","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8694,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"294:12:25","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":8698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"294:90:25","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"249:135:25","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":8700,"nodeType":"ExpressionStatement","src":"249:135:25"}]},"documentation":null,"id":8702,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":8687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8682,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8702,"src":"171:19:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8681,"name":"bytes32","nodeType":"ElementaryTypeName","src":"171:7:25","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8684,"name":"_avatar","nodeType":"VariableDeclaration","scope":8702,"src":"192:14:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8683,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"192:6:25","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":8686,"name":"_votingMachine","nodeType":"VariableDeclaration","scope":8702,"src":"208:22:25","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8685,"name":"address","nodeType":"ElementaryTypeName","src":"208:7:25","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"170:61:25"},"returnParameters":{"id":8688,"nodeType":"ParameterList","parameters":[],"src":"239:0:25"},"scope":8703,"src":"154:237:25","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":8704,"src":"82:311:25"}],"src":"0:394:25"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.141Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AbsoluteVote.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AbsoluteVote.json new file mode 100644 index 00000000..805b94d5 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AbsoluteVote.json @@ -0,0 +1 @@ +{"contractName":"AbsoluteVote","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"_isProxyVote","type":"bool"}],"name":"AVVoteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"}],"name":"CancelProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"}],"name":"CancelVoting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_decision","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalReputation","type":"uint256"}],"name":"ExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"VoteProposal","type":"event"},{"constant":true,"inputs":[],"name":"MAX_NUM_OF_CHOICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizations","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"uint256","name":"precReq","type":"uint256"},{"internalType":"address","name":"voteOnBehalf","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"bytes32","name":"organizationId","type":"bytes32"},{"internalType":"bool","name":"open","type":"bool"},{"internalType":"address","name":"callbacks","type":"address"},{"internalType":"uint256","name":"numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"paramsHash","type":"bytes32"},{"internalType":"uint256","name":"totalVotes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalsCnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"cancelVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getNumberOfChoices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_voter","type":"address"}],"name":"voteInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_choice","type":"uint256"}],"name":"voteStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"isVotable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isAbstainAllow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getAllowedRangeOfChoices","outputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_precReq","type":"uint256"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_precReq","type":"uint256"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isProxyVote\",\"type\":\"bool\"}],\"name\":\"AVVoteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"CancelVoting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_decision\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_totalReputation\",\"type\":\"uint256\"}],\"name\":\"ExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"VoteProposal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_NUM_OF_CHOICES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"cancelVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllowedRangeOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_precReq\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAbstainAllow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"isVotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"precReq\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voteOnBehalf\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"organizationId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"open\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"callbacks\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalsCnt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_precReq\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"voteInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_choice\",\"type\":\"uint256\"}],\"name\":\"voteStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"cancelVote(bytes32)\":{\"details\":\"Cancel the vote of the msg.sender: subtract the reputation amount from the votes and delete the voter from the proposal struct\",\"params\":{\"_proposalId\":\"id of the proposal\"}},\"execute(bytes32)\":{\"details\":\"execute check if the proposal has been decided, and if so, execute the proposal\",\"params\":{\"_proposalId\":\"the id of the proposal\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"getAllowedRangeOfChoices()\":{\"details\":\"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\",\"return\":\"min - minimum number of choices max - maximum number of choices\"},\"getNumberOfChoices(bytes32)\":{\"details\":\"getNumberOfChoices returns the number of choices possible in this proposal excluding the abstain vote (0)\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 that contains number of choices\"},\"getParametersHash(uint256,address)\":{\"details\":\"hashParameters returns a hash of the given parameters\"},\"isAbstainAllow()\":{\"details\":\"isAbstainAllow returns if the voting machine allow abstain (0)\",\"return\":\"bool true or false\"},\"isVotable(bytes32)\":{\"details\":\"isVotable check if the proposal is votable\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"bool true or false\"},\"propose(uint256,bytes32,address,address)\":{\"details\":\"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.\",\"params\":{\"_numOfChoices\":\"number of voting choices\",\"_organization\":\"address\",\"_paramsHash\":\"defined the parameters of the voting machine used for this proposal\"},\"return\":\"proposal's id.\"},\"setParameters(uint256,address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\"},\"vote(bytes32,uint256,uint256,address)\":{\"details\":\"voting function\",\"params\":{\"_amount\":\"the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\",\"_proposalId\":\"id of the proposal\",\"_vote\":\"a value between 0 to and the proposal number of choices.\",\"_voter\":\"voter address\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"voteInfo(bytes32,address)\":{\"details\":\"voteInfo returns the vote and the amount of reputation of the user committed to this proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\",\"_voter\":\"the address of the voter\"},\"return\":\"uint256 vote - the voters vote uint256 reputation - amount of reputation committed by _voter to _proposalId\"},\"voteStatus(bytes32,uint256)\":{\"details\":\"voteStatus returns the reputation voted for a proposal for a specific voting choice.\",\"params\":{\"_choice\":\"the index in the\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"voted reputation for the given choice\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol\":\"AbsoluteVote\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol\":{\"keccak256\":\"0x78348cbb6bfe4b1a17ee416413090138e948d931edfaeb073ce9167d9548ddf8\",\"urls\":[\"bzz-raw://6d6b24445c0a9d749b27fd2828752b0c4df9ea0df4d22377f8e06d3a53022de5\",\"dweb:/ipfs/QmcKmuEG6wKpcMfVigDNeqANfbu7y8EgFT6QqSVpQA4Sqi\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"238:11657:56:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:11657:56;;;;;;;","deployedSourceMap":"238:11657:56:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:11657:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1147:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1147:46:56;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1147:46:56;;;;;;;;;;;;;;;;5871:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5871:211:56;;;;;;-1:-1:-1;;;;;5871:211:56;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1457:27;;;:::i;:::-;;;;;;;;;;;;;;;;7434:392;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7434:392:56;;;;;;-1:-1:-1;;;;;7434:392:56;;:::i;7914:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7914:173:56;;;;;;-1:-1:-1;;;;;7914:173:56;;:::i;1239:43::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1239:43:56;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1239:43:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3814:608;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;3814:608:56;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3814:608:56;;:::i;:::-;;;;;;;;;;;;;;;;;;7199:131;;;:::i;6905:82::-;;;:::i;2119:1282::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2119:1282:56;;;;;;;;-1:-1:-1;;;;;2119:1282:56;;;;;;;;;;;;:::i;1404:47::-;;;:::i;4625:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4625:131:56;;:::i;:::-;;5386:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5386:139:56;;:::i;6342:150::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6342:150:56;;;;;;;:::i;1351:46::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1351:46:56;;:::i;:::-;;;;-1:-1:-1;;;;;1351:46:56;;;;;;;;;;;;;;6654:120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6654:120:56;;:::i;5020:127::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5020:127:56;;:::i;1147:46::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1147:46:56;;:::o;5871:211::-;5948:4;5954;5970:18;;:::i;:::-;-1:-1:-1;;;5991:22:56;;;;:9;:22;;;;;;;;-1:-1:-1;;;;;5991:37:56;;;;:29;;:37;;;;;;5970:58;;;;;;;;;;;;;;;;;;;;;;5871:211;;;;;:::o;1457:27::-;;;;:::o;7434:392::-;7513:7;7552:3;7540:8;:15;;:31;;;;;7570:1;7559:8;:12;7540:31;7532:40;;;;;;7582:24;7609:42;7627:8;7637:13;7609:17;:42::i;:::-;7692:94;;;;;;;;;;;-1:-1:-1;;;;;7692:94:56;;;;;;;;;;-1:-1:-1;7661:28:56;;;;;;;;;;;:125;;;;;;;;;;;-1:-1:-1;;;;;;7661:125:56;;;;;;;;;;;;-1:-1:-1;7661:28:56;;7434:392;-1:-1:-1;7434:392:56:o;7914:173::-;8038:41;;;;;;;;;;;;;;;;-1:-1:-1;;8038:41:56;;;;;;;26:21:-1;;;22:32;;6:49;;8038:41:56;;;;;;8028:52;;;;;;7914:173::o;1239:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1239:43:56;;;;:::o;3814:608::-;3992:4;1661:22;;;:9;:22;;;;;;;:27;;3963:11;;1661:27;;1653:36;;;;;;4017:25;4045:22;;;:9;:22;;;;;4077:24;;:::i;:::-;-1:-1:-1;4115:19:56;;;;4104:10;:31;;;;;;;;;;;4077:58;;;;;;;;;;;;;;;-1:-1:-1;;;;;4077:58:56;;;;;;;;4104:10;4172:33;4168:183;;4243:6;:19;;;-1:-1:-1;;;;;4229:33:56;:10;-1:-1:-1;;;;;4229:33:56;;4221:42;;;;;;-1:-1:-1;4285:6:56;4168:183;;;-1:-1:-1;4330:10:56;4168:183;4367:48;4380:11;4393:5;4400;4407:7;4367:12;:48::i;:::-;4360:55;3814:608;-1:-1:-1;;;;;;;;;3814:608:56:o;7199:131::-;7257:11;1449:2;7199:131;;:::o;6905:82::-;6976:4;6905:82;:::o;2119:1282::-;2245:7;2329:23;;;;;;;;;;:31;2321:44;;;;;;2399:1;2383:13;:17;:56;;;;;1449:2;2404:13;:35;;2383:56;2375:65;;;;;;2537:12;;2514:36;;;2531:4;2514:36;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2514:36:56;;;;;;;2504:47;;;;;;2576:19;;2593:1;2576:19;:16;:19;:::i;:::-;2561:12;:34;2631:24;;:::i;:::-;2665:21;;;;:37;;;2712:19;;;:33;;;2776:10;2755:18;;;;:31;;;2832:43;;;;;-1:-1:-1;2832:43:56;;;;;;;;;;;-1:-1:-1;;2832:43:56;;;;;;;26:21:-1;;;22:32;;6:49;;2832:43:56;;;;;;2822:54;;;;;;;;;2796:80;;2902:4;2886:13;;;:20;;;-1:-1:-1;2916:21:56;;;;;;;;;:32;;;;;;;;;;;;;;-1:-1:-1;;2916:32:56;;;;;;;;;;-1:-1:-1;;;;;;2916:32:56;;-1:-1:-1;;;;;2916:32:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2962:38;;;;;;;;;;2958:292;;-1:-1:-1;;;;;3034:27:56;;3030:210;;3095:23;;3081:38;;;;:13;:38;;;;;:51;;-1:-1:-1;;;;;;3081:51:56;3122:10;3081:51;;;3030:210;;;3185:23;;3171:38;;;;:13;:38;;;;;:54;;-1:-1:-1;;;;;;3171:54:56;-1:-1:-1;;;;;3171:54:56;;;;;3030:210;3302:23;;3288:38;;;;:13;:38;;;;;;;;;;3264:103;;;;;3343:10;3264:103;;;;;;;;;;;;;;;-1:-1:-1;;;;;3288:38:56;;;;3276:10;;3264:103;;;;;;;;;;-1:-1:-1;3384:10:56;2119:1282;-1:-1:-1;;;;;2119:1282:56:o;1404:47::-;1449:2;1404:47;:::o;4625:131::-;1661:22;;;;:9;:22;;;;;;;;:27;;4683:11;;1661:27;;1653:36;;;;;;4706:43;4725:11;4738:10;4706:18;:43::i;:::-;4625:131;;:::o;5386:139::-;5457:7;5483:22;;;:9;:22;;;;;:35;;;;5386:139::o;6342:150::-;6422:7;6448:22;;;:9;:22;;;;;;;;:37;;;:28;;;;:37;;;;;;6342:150::o;1351:46::-;;;;;;;;;;;;-1:-1:-1;;;;;1351:46:56;;:::o;6654:120::-;6716:4;6740:22;;;:9;:22;;;;;;;;:27;;;;;6654:120::o;5020:127::-;5096:4;1661:22;;;:9;:22;;;;;;;:27;;5075:11;;1661:27;;1653:36;;;;;;5119:21;5128:11;5119:8;:21::i;:::-;5112:28;;1699:1;5020:127;;;;:::o;10555:1338::-;10660:4;10704:22;;;:9;:22;;;;;10782:21;;;;10773:30;;;10765:39;;;;;;10913:18;;;;10881:85;;;-1:-1:-1;;;10881:85:56;;-1:-1:-1;;;;;10881:85:56;;;;;;;;;;;;;;;-1:-1:-1;;10913:18:56;;;;;;;10881:64;;:85;;;;;;;;;;;;;;;10913:18;10881:85;;;5:2:-1;;;;30:1;27;20:12;5:2;10881:85:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10881:85:56;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10881:85:56;;-1:-1:-1;10984:14:56;10976:54;;;;;-1:-1:-1;;;10976:54:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;11062:4;11048:10;:18;;11040:27;;;;;;11091:4;11109:8;11105:55;;-1:-1:-1;11139:10:56;11105:55;-1:-1:-1;;;;;11240:23:56;;;;;;:15;;;:23;;;;;:34;;;:39;11236:109;;11295:39;11314:11;11327:6;11295:18;:39::i;:::-;11416:21;;;;:14;;;:21;;;;;;11408:30;;:3;;:30;:7;:30;:::i;:::-;11384:21;;;;:14;;;:21;;;;;:54;11478:19;;;;11470:28;;:3;;:28;:7;:28;:::i;:::-;11448:19;;;:50;11534:71;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11508:23:56;;;-1:-1:-1;11508:23:56;;;:15;;;:23;;;;;:97;;;;;;;;;;;;;;11678:23;;11664:38;;:13;:38;;;;;;;11638:85;;;;;;;;;;;;;11508:23;;11664:38;;;11651:11;;11638:85;;;;;;;;;11738:51;;;-1:-1:-1;;;;;11767:20:56;;11777:10;11767:20;;11738:51;;;;11753:11;;11738:51;;;;;;;;;;11865:21;11874:11;11865:8;:21::i;:::-;11858:28;10555:1338;-1:-1:-1;;;;;;;;10555:1338:56:o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;8093:487:56:-;8177:25;8205:22;;;:9;:22;;;;;8237:18;;:::i;:::-;-1:-1:-1;;;;;;8258:23:56;;;;;;:15;;;:23;;;;;;;;8237:44;;;;;;;;;;;;;;;;;;;;;;;8321:26;;;:14;;;:26;;;;;;8237:44;;8320:50;;8321:26;8320:50;:32;:50;:::i;:::-;8306:10;;8291:26;;;;:14;;;:26;;;;;;;;:79;;;;8428:16;;;8403:19;;;;8402:43;;;:25;:43;:::i;:::-;8380:19;;;:65;-1:-1:-1;;;;;8462:23:56;;;;;;;:15;;;:23;;;;;;;;8455:30;;;;;;;;8540:23;;8526:38;;:13;:38;;;;;;;8500:73;;8462:23;;8526:38;;8513:11;;8500:73;;;8093:487;;;;:::o;9129:909::-;9206:4;1661:22;;;:9;:22;;;;;;;:27;;9185:11;;1661:27;;1653:36;;;;;;9222:25;9250:22;;;:9;:22;;;;;;;;9348:18;;;;9316:89;;-1:-1:-1;;;9316:89:56;;;;;;;;;;9250:22;;9222:25;9348:18;;;;-1:-1:-1;;;;;9348:18:56;;9316:76;;:89;;;;;;;;;;;9348:18;9316:89;;;5:2:-1;;;;30:1;27;20:12;5:2;9316:89:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9316:89:56;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9316:89:56;9444:19;;;;9415:15;9433:31;;;9316:89;9433:31;;;;;;:39;9316:89;;-1:-1:-1;9527:483:56;9556:8;:21;;;9549:3;:28;9527:483;;9604:19;;;;:14;;;:19;;;;;;9643:3;9627:19;;9626:29;;-1:-1:-1;9600:400:56;;;9675:27;;:::i;:::-;-1:-1:-1;9675:38:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9675:38:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9731:27;9746:11;9731:14;:27::i;:::-;9824:26;;9810:41;;;;:13;:41;;;;;;;;;;9781:93;;;;;;;;;;;;;-1:-1:-1;;;;;9810:41:56;;;;9797:11;;9781:93;;;;;;;;;;;9924:11;:21;;;-1:-1:-1;;;;;9899:63:56;;9963:11;9980:3;9899:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9899:86:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9899:86:56;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9899:86:56;;-1:-1:-1;9892:93:56;;-1:-1:-1;;;;;9892:93:56;9600:400;9579:5;;9527:483;;;-1:-1:-1;10026:5:56;;9129:909;-1:-1:-1;;;;;;9129:909:56:o;1274:134:66:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;8586:279:56:-;8650:25;8678:22;;;:9;:22;;;;;;8710:110;8739:8;:21;;;8732:3;:28;8710:110;;8790:19;;;;:14;;;:19;;;;;8783:26;8762:5;;8710:110;;;-1:-1:-1;;8836:22:56;;;;:9;:22;;;;;;;8829:29;;;;;;;;-1:-1:-1;;;;;;8829:29:56;;;;;;;;;;;;;;;;;;8586:279::o;1732:187:66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;238:11657:56:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;238:11657:56;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;238:11657:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity ^0.5.11;\n\nimport \"../Reputation.sol\";\nimport \"./IntVoteInterface.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./VotingMachineCallbacksInterface.sol\";\nimport \"./ProposalExecuteInterface.sol\";\n\n\ncontract AbsoluteVote is IntVoteInterface {\n using SafeMath for uint;\n\n struct Parameters {\n uint256 precReq; // how many percentages required for the proposal to be passed\n address voteOnBehalf; //if this address is set so only this address is allowed\n // to vote of behalf of someone else.\n }\n\n struct Voter {\n uint256 vote; // 0 - 'abstain'\n uint256 reputation; // amount of voter's reputation\n }\n\n struct Proposal {\n bytes32 organizationId; // the organization Id\n bool open; // voting open flag\n address callbacks;\n uint256 numOfChoices;\n bytes32 paramsHash; // the hash of the parameters of the proposal\n uint256 totalVotes;\n mapping(uint=>uint) votes;\n mapping(address=>Voter) voters;\n }\n\n event AVVoteProposal(bytes32 indexed _proposalId, bool _isProxyVote);\n\n mapping(bytes32=>Parameters) public parameters; // A mapping from hashes to parameters\n mapping(bytes32=>Proposal) public proposals; // Mapping from the ID of the proposal to the proposal itself.\n mapping(bytes32=>address) public organizations;\n\n uint256 public constant MAX_NUM_OF_CHOICES = 10;\n uint256 public proposalsCnt; // Total amount of proposals\n\n /**\n * @dev Check that the proposal is votable (open and not executed yet)\n */\n modifier votable(bytes32 _proposalId) {\n require(proposals[_proposalId].open);\n _;\n }\n\n /**\n * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\n * generated by calculating keccak256 of a incremented counter.\n * @param _numOfChoices number of voting choices\n * @param _paramsHash defined the parameters of the voting machine used for this proposal\n * @param _organization address\n * @return proposal's id.\n */\n function propose(uint256 _numOfChoices, bytes32 _paramsHash, address, address _organization)\n external\n returns(bytes32)\n {\n // Check valid params and number of choices:\n require(parameters[_paramsHash].precReq > 0);\n require(_numOfChoices > 0 && _numOfChoices <= MAX_NUM_OF_CHOICES);\n // Generate a unique ID:\n bytes32 proposalId = keccak256(abi.encodePacked(this, proposalsCnt));\n proposalsCnt = proposalsCnt.add(1);\n // Open proposal:\n Proposal memory proposal;\n proposal.numOfChoices = _numOfChoices;\n proposal.paramsHash = _paramsHash;\n proposal.callbacks = msg.sender;\n proposal.organizationId = keccak256(abi.encodePacked(msg.sender, _organization));\n proposal.open = true;\n proposals[proposalId] = proposal;\n if (organizations[proposal.organizationId] == address(0)) {\n if (_organization == address(0)) {\n organizations[proposal.organizationId] = msg.sender;\n } else {\n organizations[proposal.organizationId] = _organization;\n }\n }\n emit NewProposal(proposalId, organizations[proposal.organizationId], _numOfChoices, msg.sender, _paramsHash);\n return proposalId;\n }\n\n /**\n * @dev voting function\n * @param _proposalId id of the proposal\n * @param _vote a value between 0 to and the proposal number of choices.\n * @param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\n * @param _voter voter address\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function vote(\n bytes32 _proposalId,\n uint256 _vote,\n uint256 _amount,\n address _voter)\n external\n votable(_proposalId)\n returns(bool)\n {\n\n Proposal storage proposal = proposals[_proposalId];\n Parameters memory params = parameters[proposal.paramsHash];\n address voter;\n if (params.voteOnBehalf != address(0)) {\n require(msg.sender == params.voteOnBehalf);\n voter = _voter;\n } else {\n voter = msg.sender;\n }\n return internalVote(_proposalId, voter, _vote, _amount);\n }\n\n /**\n * @dev Cancel the vote of the msg.sender: subtract the reputation amount from the votes\n * and delete the voter from the proposal struct\n * @param _proposalId id of the proposal\n */\n function cancelVote(bytes32 _proposalId) external votable(_proposalId) {\n cancelVoteInternal(_proposalId, msg.sender);\n }\n\n /**\n * @dev execute check if the proposal has been decided, and if so, execute the proposal\n * @param _proposalId the id of the proposal\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function execute(bytes32 _proposalId) external votable(_proposalId) returns(bool) {\n return _execute(_proposalId);\n }\n\n /**\n * @dev getNumberOfChoices returns the number of choices possible in this proposal\n * excluding the abstain vote (0)\n * @param _proposalId the ID of the proposal\n * @return uint256 that contains number of choices\n */\n function getNumberOfChoices(bytes32 _proposalId) external view returns(uint256) {\n return proposals[_proposalId].numOfChoices;\n }\n\n /**\n * @dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal\n * @param _proposalId the ID of the proposal\n * @param _voter the address of the voter\n * @return uint256 vote - the voters vote\n * uint256 reputation - amount of reputation committed by _voter to _proposalId\n */\n function voteInfo(bytes32 _proposalId, address _voter) external view returns(uint, uint) {\n Voter memory voter = proposals[_proposalId].voters[_voter];\n return (voter.vote, voter.reputation);\n }\n\n /**\n * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n * @param _proposalId the ID of the proposal\n * @param _choice the index in the\n * @return voted reputation for the given choice\n */\n function voteStatus(bytes32 _proposalId, uint256 _choice) external view returns(uint256) {\n return proposals[_proposalId].votes[_choice];\n }\n\n /**\n * @dev isVotable check if the proposal is votable\n * @param _proposalId the ID of the proposal\n * @return bool true or false\n */\n function isVotable(bytes32 _proposalId) external view returns(bool) {\n return proposals[_proposalId].open;\n }\n\n /**\n * @dev isAbstainAllow returns if the voting machine allow abstain (0)\n * @return bool true or false\n */\n function isAbstainAllow() external pure returns(bool) {\n return true;\n }\n\n /**\n * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n * @return min - minimum number of choices\n max - maximum number of choices\n */\n function getAllowedRangeOfChoices() external pure returns(uint256 min, uint256 max) {\n return (0, MAX_NUM_OF_CHOICES);\n }\n\n /**\n * @dev hash the parameters, save them if necessary, and return the hash value\n */\n function setParameters(uint256 _precReq, address _voteOnBehalf) public returns(bytes32) {\n require(_precReq <= 100 && _precReq > 0);\n bytes32 hashedParameters = getParametersHash(_precReq, _voteOnBehalf);\n parameters[hashedParameters] = Parameters({\n precReq: _precReq,\n voteOnBehalf: _voteOnBehalf\n });\n return hashedParameters;\n }\n\n /**\n * @dev hashParameters returns a hash of the given parameters\n */\n function getParametersHash(uint256 _precReq, address _voteOnBehalf) public pure returns(bytes32) {\n return keccak256(abi.encodePacked(_precReq, _voteOnBehalf));\n }\n\n function cancelVoteInternal(bytes32 _proposalId, address _voter) internal {\n Proposal storage proposal = proposals[_proposalId];\n Voter memory voter = proposal.voters[_voter];\n proposal.votes[voter.vote] = (proposal.votes[voter.vote]).sub(voter.reputation);\n proposal.totalVotes = (proposal.totalVotes).sub(voter.reputation);\n delete proposal.voters[_voter];\n emit CancelVoting(_proposalId, organizations[proposal.organizationId], _voter);\n }\n\n function deleteProposal(bytes32 _proposalId) internal {\n Proposal storage proposal = proposals[_proposalId];\n for (uint256 cnt = 0; cnt <= proposal.numOfChoices; cnt++) {\n delete proposal.votes[cnt];\n }\n delete proposals[_proposalId];\n }\n\n /**\n * @dev execute check if the proposal has been decided, and if so, execute the proposal\n * @param _proposalId the id of the proposal\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function _execute(bytes32 _proposalId) internal votable(_proposalId) returns(bool) {\n Proposal storage proposal = proposals[_proposalId];\n uint256 totalReputation =\n VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply(_proposalId);\n uint256 precReq = parameters[proposal.paramsHash].precReq;\n // Check if someone crossed the bar:\n for (uint256 cnt = 0; cnt <= proposal.numOfChoices; cnt++) {\n if (proposal.votes[cnt] > (totalReputation/100)*precReq) {\n Proposal memory tmpProposal = proposal;\n deleteProposal(_proposalId);\n emit ExecuteProposal(_proposalId, organizations[tmpProposal.organizationId], cnt, totalReputation);\n return ProposalExecuteInterface(tmpProposal.callbacks).executeProposal(_proposalId, int(cnt));\n }\n }\n return false;\n }\n\n /**\n * @dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead\n * @param _proposalId id of the proposal\n * @param _voter used in case the vote is cast for someone else\n * @param _vote a value between 0 to and the proposal's number of choices.\n * @return true in case of proposal execution otherwise false\n * throws if proposal is not open or if it has been executed\n * NB: executes the proposal if a decision has been reached\n */\n function internalVote(bytes32 _proposalId, address _voter, uint256 _vote, uint256 _rep) internal returns(bool) {\n Proposal storage proposal = proposals[_proposalId];\n // Check valid vote:\n require(_vote <= proposal.numOfChoices);\n // Check voter has enough reputation:\n uint256 reputation = VotingMachineCallbacksInterface(proposal.callbacks).reputationOf(_voter, _proposalId);\n require(reputation > 0, \"_voter must have reputation\");\n require(reputation >= _rep);\n uint256 rep = _rep;\n if (rep == 0) {\n rep = reputation;\n }\n // If this voter has already voted, first cancel the vote:\n if (proposal.voters[_voter].reputation != 0) {\n cancelVoteInternal(_proposalId, _voter);\n }\n // The voting itself:\n proposal.votes[_vote] = rep.add(proposal.votes[_vote]);\n proposal.totalVotes = rep.add(proposal.totalVotes);\n proposal.voters[_voter] = Voter({\n reputation: rep,\n vote: _vote\n });\n // Event:\n emit VoteProposal(_proposalId, organizations[proposal.organizationId], _voter, _vote, rep);\n emit AVVoteProposal(_proposalId, (_voter != msg.sender));\n // execute the proposal if this vote was decisive:\n return _execute(_proposalId);\n }\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","exportedSymbols":{"AbsoluteVote":[16618]},"id":16619,"nodeType":"SourceUnit","nodes":[{"id":15823,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:56"},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"../Reputation.sol","id":15824,"nodeType":"ImportDirective","scope":16619,"sourceUnit":15083,"src":"26:27:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"./IntVoteInterface.sol","id":15825,"nodeType":"ImportDirective","scope":16619,"sourceUnit":19817,"src":"54:32:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":15826,"nodeType":"ImportDirective","scope":16619,"sourceUnit":20396,"src":"87:59:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"./VotingMachineCallbacksInterface.sol","id":15827,"nodeType":"ImportDirective","scope":16619,"sourceUnit":20032,"src":"147:47:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"./ProposalExecuteInterface.sol","id":15828,"nodeType":"ImportDirective","scope":16619,"sourceUnit":19829,"src":"195:40:56","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":15829,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"263:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":15830,"nodeType":"InheritanceSpecifier","src":"263:16:56"}],"contractDependencies":[19816],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":16618,"linearizedBaseContracts":[16618,19816],"name":"AbsoluteVote","nodeType":"ContractDefinition","nodes":[{"id":15833,"libraryName":{"contractScope":null,"id":15831,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"292:8:56","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"286:24:56","typeName":{"id":15832,"name":"uint","nodeType":"ElementaryTypeName","src":"305:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"canonicalName":"AbsoluteVote.Parameters","id":15838,"members":[{"constant":false,"id":15835,"name":"precReq","nodeType":"VariableDeclaration","scope":15838,"src":"344:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15834,"name":"uint256","nodeType":"ElementaryTypeName","src":"344:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15837,"name":"voteOnBehalf","nodeType":"VariableDeclaration","scope":15838,"src":"432:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15836,"name":"address","nodeType":"ElementaryTypeName","src":"432:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":16618,"src":"316:268:56","visibility":"public"},{"canonicalName":"AbsoluteVote.Voter","id":15843,"members":[{"constant":false,"id":15840,"name":"vote","nodeType":"VariableDeclaration","scope":15843,"src":"613:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15839,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15842,"name":"reputation","nodeType":"VariableDeclaration","scope":15843,"src":"652:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15841,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Voter","nodeType":"StructDefinition","scope":16618,"src":"590:119:56","visibility":"public"},{"canonicalName":"AbsoluteVote.Proposal","id":15864,"members":[{"constant":false,"id":15845,"name":"organizationId","nodeType":"VariableDeclaration","scope":15864,"src":"741:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"741:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15847,"name":"open","nodeType":"VariableDeclaration","scope":15864,"src":"796:9:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15846,"name":"bool","nodeType":"ElementaryTypeName","src":"796:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":15849,"name":"callbacks","nodeType":"VariableDeclaration","scope":15864,"src":"835:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15848,"name":"address","nodeType":"ElementaryTypeName","src":"835:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15851,"name":"numOfChoices","nodeType":"VariableDeclaration","scope":15864,"src":"862:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15850,"name":"uint256","nodeType":"ElementaryTypeName","src":"862:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15853,"name":"paramsHash","nodeType":"VariableDeclaration","scope":15864,"src":"892:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"892:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15855,"name":"totalVotes","nodeType":"VariableDeclaration","scope":15864,"src":"966:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15854,"name":"uint256","nodeType":"ElementaryTypeName","src":"966:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15859,"name":"votes","nodeType":"VariableDeclaration","scope":15864,"src":"994:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":15858,"keyType":{"id":15856,"name":"uint","nodeType":"ElementaryTypeName","src":"1002:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"994:19:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":15857,"name":"uint","nodeType":"ElementaryTypeName","src":"1008:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":15863,"name":"voters","nodeType":"VariableDeclaration","scope":15864,"src":"1029:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter)"},"typeName":{"id":15862,"keyType":{"id":15860,"name":"address","nodeType":"ElementaryTypeName","src":"1037:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1029:23:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter)"},"valueType":{"contractScope":null,"id":15861,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":15843,"src":"1046:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage_ptr","typeString":"struct AbsoluteVote.Voter"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":16618,"src":"715:351:56","visibility":"public"},{"anonymous":false,"documentation":null,"id":15870,"name":"AVVoteProposal","nodeType":"EventDefinition","parameters":{"id":15869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15866,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15870,"src":"1093:27:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1093:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15868,"indexed":false,"name":"_isProxyVote","nodeType":"VariableDeclaration","scope":15870,"src":"1122:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15867,"name":"bool","nodeType":"ElementaryTypeName","src":"1122:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1092:48:56"},"src":"1072:69:56"},{"constant":false,"id":15874,"name":"parameters","nodeType":"VariableDeclaration","scope":16618,"src":"1147:46:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters)"},"typeName":{"id":15873,"keyType":{"id":15871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1155:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1147:28:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters)"},"valueType":{"contractScope":null,"id":15872,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":15838,"src":"1164:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage_ptr","typeString":"struct AbsoluteVote.Parameters"}}},"value":null,"visibility":"public"},{"constant":false,"id":15878,"name":"proposals","nodeType":"VariableDeclaration","scope":16618,"src":"1239:43:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal)"},"typeName":{"id":15877,"keyType":{"id":15875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1247:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1239:26:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal)"},"valueType":{"contractScope":null,"id":15876,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"1256:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":15882,"name":"organizations","nodeType":"VariableDeclaration","scope":16618,"src":"1351:46:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":15881,"keyType":{"id":15879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1359:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1351:25:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":15880,"name":"address","nodeType":"ElementaryTypeName","src":"1368:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"constant":true,"id":15885,"name":"MAX_NUM_OF_CHOICES","nodeType":"VariableDeclaration","scope":16618,"src":"1404:47:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15883,"name":"uint256","nodeType":"ElementaryTypeName","src":"1404:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3130","id":15884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1449:2:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"constant":false,"id":15887,"name":"proposalsCnt","nodeType":"VariableDeclaration","scope":16618,"src":"1457:27:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15886,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":15899,"nodeType":"Block","src":"1643:64:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15892,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"1661:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":15894,"indexExpression":{"argumentTypes":null,"id":15893,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15889,"src":"1671:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1661:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":15895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"open","nodeType":"MemberAccess","referencedDeclaration":15847,"src":"1661:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15891,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1653:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1653:36:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15897,"nodeType":"ExpressionStatement","src":"1653:36:56"},{"id":15898,"nodeType":"PlaceholderStatement","src":"1699:1:56"}]},"documentation":"@dev Check that the proposal is votable (open and not executed yet)","id":15900,"name":"votable","nodeType":"ModifierDefinition","parameters":{"id":15890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15889,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15900,"src":"1622:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1622:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1621:21:56"},"src":"1605:102:56","visibility":"internal"},{"body":{"id":16043,"nodeType":"Block","src":"2258:1143:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15914,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"2329:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":15916,"indexExpression":{"argumentTypes":null,"id":15915,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"2340:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2329:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":15917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"precReq","nodeType":"MemberAccess","referencedDeclaration":15835,"src":"2329:31:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2363:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2329:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15913,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2321:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:44:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15921,"nodeType":"ExpressionStatement","src":"2321:44:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15923,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"2383:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2399:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2383:17:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15926,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"2404:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":15927,"name":"MAX_NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15885,"src":"2421:18:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2404:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2383:56:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2375:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2375:65:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15931,"nodeType":"ExpressionStatement","src":"2375:65:56"},{"assignments":[15933],"declarations":[{"constant":false,"id":15933,"name":"proposalId","nodeType":"VariableDeclaration","scope":16043,"src":"2483:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":15941,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15937,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2531:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},{"argumentTypes":null,"id":15938,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"2537:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15935,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2514:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2514:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2514:36:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15934,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2504:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2504:47:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2483:68:56"},{"expression":{"argumentTypes":null,"id":15947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15942,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"2561:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":15945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2593:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":15943,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"2576:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"2576:16:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2561:34:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15948,"nodeType":"ExpressionStatement","src":"2561:34:56"},{"assignments":[15950],"declarations":[{"constant":false,"id":15950,"name":"proposal","nodeType":"VariableDeclaration","scope":16043,"src":"2631:24:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":15949,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"2631:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":15951,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2631:24:56"},{"expression":{"argumentTypes":null,"id":15956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15952,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2665:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"2665:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15955,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"2689:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2665:37:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15957,"nodeType":"ExpressionStatement","src":"2665:37:56"},{"expression":{"argumentTypes":null,"id":15962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15958,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2712:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"2712:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15961,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"2734:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2712:33:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15963,"nodeType":"ExpressionStatement","src":"2712:33:56"},{"expression":{"argumentTypes":null,"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15964,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2755:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"2755:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15967,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2776:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2776:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2755:31:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15970,"nodeType":"ExpressionStatement","src":"2755:31:56"},{"expression":{"argumentTypes":null,"id":15982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15971,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2796:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"2796:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15977,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2849:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2849:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":15979,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15908,"src":"2861:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2832:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2832:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2832:43:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15974,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2822:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2822:54:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2796:80:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15983,"nodeType":"ExpressionStatement","src":"2796:80:56"},{"expression":{"argumentTypes":null,"id":15988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15984,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2886:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"open","nodeType":"MemberAccess","referencedDeclaration":15847,"src":"2886:13:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":15987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2902:4:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2886:20:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15989,"nodeType":"ExpressionStatement","src":"2886:20:56"},{"expression":{"argumentTypes":null,"id":15994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15990,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"2916:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":15992,"indexExpression":{"argumentTypes":null,"id":15991,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"2926:10:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2916:21:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2940:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"src":"2916:32:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":15995,"nodeType":"ExpressionStatement","src":"2916:32:56"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15996,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"2962:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":15999,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15997,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2976:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"2976:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2962:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3012:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3004:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3004:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2962:52:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16028,"nodeType":"IfStatement","src":"2958:292:56","trueBody":{"id":16027,"nodeType":"Block","src":"3016:234:56","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16004,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15908,"src":"3034:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3059:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3051:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3051:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3034:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16025,"nodeType":"Block","src":"3153:87:56","statements":[{"expression":{"argumentTypes":null,"id":16023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16018,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"3171:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16021,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16019,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"3185:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"3185:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3171:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16022,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15908,"src":"3212:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3171:54:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16024,"nodeType":"ExpressionStatement","src":"3171:54:56"}]},"id":16026,"nodeType":"IfStatement","src":"3030:210:56","trueBody":{"id":16017,"nodeType":"Block","src":"3063:84:56","statements":[{"expression":{"argumentTypes":null,"id":16015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16009,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"3081:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16012,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16010,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"3095:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"3095:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3081:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16013,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3122:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3122:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3081:51:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16016,"nodeType":"ExpressionStatement","src":"3081:51:56"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16030,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"3276:10:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16031,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"3288:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16034,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16032,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"3302:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"3302:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3288:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16035,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"3328:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16036,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3343:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3343:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":16038,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"3355:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16029,"name":"NewProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19713,"src":"3264:11:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,address,uint256,address,bytes32)"}},"id":16039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3264:103:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16040,"nodeType":"EmitStatement","src":"3259:108:56"},{"expression":{"argumentTypes":null,"id":16041,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"3384:10:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15912,"id":16042,"nodeType":"Return","src":"3377:17:56"}]},"documentation":"@dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\ngenerated by calculating keccak256 of a incremented counter.\n@param _numOfChoices number of voting choices\n@param _paramsHash defined the parameters of the voting machine used for this proposal\n@param _organization address\n@return proposal's id.","id":16044,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":15909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15902,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":16044,"src":"2136:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15901,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15904,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":16044,"src":"2159:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2159:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15906,"name":"","nodeType":"VariableDeclaration","scope":16044,"src":"2180:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15905,"name":"address","nodeType":"ElementaryTypeName","src":"2180:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15908,"name":"_organization","nodeType":"VariableDeclaration","scope":16044,"src":"2189:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15907,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2135:76:56"},"returnParameters":{"id":15912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15911,"name":"","nodeType":"VariableDeclaration","scope":16044,"src":"2245:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2245:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2244:9:56"},"scope":16618,"src":"2119:1282:56","stateMutability":"nonpayable","superFunction":19762,"visibility":"external"},{"body":{"id":16109,"nodeType":"Block","src":"4006:416:56","statements":[{"assignments":[16061],"declarations":[{"constant":false,"id":16061,"name":"proposal","nodeType":"VariableDeclaration","scope":16109,"src":"4017:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16060,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"4017:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16065,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16062,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"4045:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16064,"indexExpression":{"argumentTypes":null,"id":16063,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"4055:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4045:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4017:50:56"},{"assignments":[16067],"declarations":[{"constant":false,"id":16067,"name":"params","nodeType":"VariableDeclaration","scope":16109,"src":"4077:24:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory_ptr","typeString":"struct AbsoluteVote.Parameters"},"typeName":{"contractScope":null,"id":16066,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":15838,"src":"4077:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage_ptr","typeString":"struct AbsoluteVote.Parameters"}},"value":null,"visibility":"internal"}],"id":16072,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16068,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"4104:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":16071,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16069,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16061,"src":"4115:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"4115:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4104:31:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4077:58:56"},{"assignments":[16074],"declarations":[{"constant":false,"id":16074,"name":"voter","nodeType":"VariableDeclaration","scope":16109,"src":"4145:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16073,"name":"address","nodeType":"ElementaryTypeName","src":"4145:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":16075,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"4145:13:56"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16076,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16067,"src":"4172:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory_ptr","typeString":"struct AbsoluteVote.Parameters memory"}},"id":16077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":15837,"src":"4172:19:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4195:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4195:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4172:33:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16100,"nodeType":"Block","src":"4308:43:56","statements":[{"expression":{"argumentTypes":null,"id":16098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16095,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4322:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16096,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4330:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4330:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4322:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16099,"nodeType":"ExpressionStatement","src":"4322:18:56"}]},"id":16101,"nodeType":"IfStatement","src":"4168:183:56","trueBody":{"id":16094,"nodeType":"Block","src":"4207:95:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16083,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4229:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4229:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16067,"src":"4243:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory_ptr","typeString":"struct AbsoluteVote.Parameters memory"}},"id":16086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":15837,"src":"4243:19:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4229:33:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4221:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4221:42:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16089,"nodeType":"ExpressionStatement","src":"4221:42:56"},{"expression":{"argumentTypes":null,"id":16092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16090,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4277:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16091,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16052,"src":"4285:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4277:14:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16093,"nodeType":"ExpressionStatement","src":"4277:14:56"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16103,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"4380:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16104,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4393:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16105,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16048,"src":"4400:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16106,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16050,"src":"4407:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16102,"name":"internalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"4367:12:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,address,uint256,uint256) returns (bool)"}},"id":16107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:48:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16059,"id":16108,"nodeType":"Return","src":"4360:55:56"}]},"documentation":"@dev voting function\n@param _proposalId id of the proposal\n@param _vote a value between 0 to and the proposal number of choices.\n@param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\n@param _voter voter address\n@return bool true - the proposal has been executed\n false - otherwise.","id":16110,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16055,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"3963:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16056,"modifierName":{"argumentTypes":null,"id":16054,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"3955:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3955:20:56"}],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":16053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16046,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16110,"src":"3837:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3837:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16048,"name":"_vote","nodeType":"VariableDeclaration","scope":16110,"src":"3866:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16047,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16050,"name":"_amount","nodeType":"VariableDeclaration","scope":16110,"src":"3889:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16049,"name":"uint256","nodeType":"ElementaryTypeName","src":"3889:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16052,"name":"_voter","nodeType":"VariableDeclaration","scope":16110,"src":"3914:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16051,"name":"address","nodeType":"ElementaryTypeName","src":"3914:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3827:102:56"},"returnParameters":{"id":16059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16058,"name":"","nodeType":"VariableDeclaration","scope":16110,"src":"3992:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16057,"name":"bool","nodeType":"ElementaryTypeName","src":"3992:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3991:6:56"},"scope":16618,"src":"3814:608:56","stateMutability":"nonpayable","superFunction":19775,"visibility":"external"},{"body":{"id":16124,"nodeType":"Block","src":"4696:60:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16119,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16112,"src":"4725:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16120,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4738:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4738:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":16118,"name":"cancelVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16352,"src":"4706:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4706:43:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16123,"nodeType":"ExpressionStatement","src":"4706:43:56"}]},"documentation":"@dev Cancel the vote of the msg.sender: subtract the reputation amount from the votes\nand delete the voter from the proposal struct\n@param _proposalId id of the proposal","id":16125,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16115,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16112,"src":"4683:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16116,"modifierName":{"argumentTypes":null,"id":16114,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"4675:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4675:20:56"}],"name":"cancelVote","nodeType":"FunctionDefinition","parameters":{"id":16113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16112,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16125,"src":"4645:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4645:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4644:21:56"},"returnParameters":{"id":16117,"nodeType":"ParameterList","parameters":[],"src":"4696:0:56"},"scope":16618,"src":"4625:131:56","stateMutability":"nonpayable","superFunction":19780,"visibility":"external"},{"body":{"id":16139,"nodeType":"Block","src":"5102:45:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16136,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16127,"src":"5128:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16135,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16480,"src":"5119:8:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":16137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5119:21:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16134,"id":16138,"nodeType":"Return","src":"5112:28:56"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":16140,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16130,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16127,"src":"5075:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16131,"modifierName":{"argumentTypes":null,"id":16129,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"5067:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5067:20:56"}],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":16128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16127,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16140,"src":"5037:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5037:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5036:21:56"},"returnParameters":{"id":16134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16133,"name":"","nodeType":"VariableDeclaration","scope":16140,"src":"5096:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16132,"name":"bool","nodeType":"ElementaryTypeName","src":"5096:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5095:6:56"},"scope":16618,"src":"5020:127:56","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16152,"nodeType":"Block","src":"5466:59:56","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16147,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"5483:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16149,"indexExpression":{"argumentTypes":null,"id":16148,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16142,"src":"5493:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5483:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"5483:35:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16146,"id":16151,"nodeType":"Return","src":"5476:42:56"}]},"documentation":"@dev getNumberOfChoices returns the number of choices possible in this proposal\nexcluding the abstain vote (0)\n@param _proposalId the ID of the proposal\n@return uint256 that contains number of choices","id":16153,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfChoices","nodeType":"FunctionDefinition","parameters":{"id":16143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16142,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16153,"src":"5414:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5414:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5413:21:56"},"returnParameters":{"id":16146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16145,"name":"","nodeType":"VariableDeclaration","scope":16153,"src":"5457:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16144,"name":"uint256","nodeType":"ElementaryTypeName","src":"5457:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5456:9:56"},"scope":16618,"src":"5386:139:56","stateMutability":"view","superFunction":19787,"visibility":"external"},{"body":{"id":16179,"nodeType":"Block","src":"5960:122:56","statements":[{"assignments":[16165],"declarations":[{"constant":false,"id":16165,"name":"voter","nodeType":"VariableDeclaration","scope":16179,"src":"5970:18:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter"},"typeName":{"contractScope":null,"id":16164,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":15843,"src":"5970:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage_ptr","typeString":"struct AbsoluteVote.Voter"}},"value":null,"visibility":"internal"}],"id":16172,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16166,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"5991:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16168,"indexExpression":{"argumentTypes":null,"id":16167,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"6001:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5991:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"5991:29:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16171,"indexExpression":{"argumentTypes":null,"id":16170,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16157,"src":"6021:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5991:37:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5970:58:56"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16173,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16165,"src":"6046:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":15840,"src":"6046:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16175,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16165,"src":"6058:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"6058:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6045:30:56","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":16163,"id":16178,"nodeType":"Return","src":"6038:37:56"}]},"documentation":"@dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal\n@param _proposalId the ID of the proposal\n@param _voter the address of the voter\n@return uint256 vote - the voters vote\n uint256 reputation - amount of reputation committed by _voter to _proposalId","id":16180,"implemented":true,"kind":"function","modifiers":[],"name":"voteInfo","nodeType":"FunctionDefinition","parameters":{"id":16158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16155,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16180,"src":"5889:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5889:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16157,"name":"_voter","nodeType":"VariableDeclaration","scope":16180,"src":"5910:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16156,"name":"address","nodeType":"ElementaryTypeName","src":"5910:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5888:37:56"},"returnParameters":{"id":16163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16160,"name":"","nodeType":"VariableDeclaration","scope":16180,"src":"5948:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16159,"name":"uint","nodeType":"ElementaryTypeName","src":"5948:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16162,"name":"","nodeType":"VariableDeclaration","scope":16180,"src":"5954:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16161,"name":"uint","nodeType":"ElementaryTypeName","src":"5954:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5947:12:56"},"scope":16618,"src":"5871:211:56","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":16196,"nodeType":"Block","src":"6431:61:56","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16189,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"6448:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16191,"indexExpression":{"argumentTypes":null,"id":16190,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16182,"src":"6458:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6448:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"6448:28:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16194,"indexExpression":{"argumentTypes":null,"id":16193,"name":"_choice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16184,"src":"6477:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6448:37:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16188,"id":16195,"nodeType":"Return","src":"6441:44:56"}]},"documentation":"@dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n@param _proposalId the ID of the proposal\n@param _choice the index in the\n@return voted reputation for the given choice","id":16197,"implemented":true,"kind":"function","modifiers":[],"name":"voteStatus","nodeType":"FunctionDefinition","parameters":{"id":16185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16182,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16197,"src":"6362:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6362:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16184,"name":"_choice","nodeType":"VariableDeclaration","scope":16197,"src":"6383:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16183,"name":"uint256","nodeType":"ElementaryTypeName","src":"6383:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6361:38:56"},"returnParameters":{"id":16188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16187,"name":"","nodeType":"VariableDeclaration","scope":16197,"src":"6422:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16186,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6421:9:56"},"scope":16618,"src":"6342:150:56","stateMutability":"view","superFunction":19803,"visibility":"external"},{"body":{"id":16209,"nodeType":"Block","src":"6722:52:56","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16204,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"6740:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16206,"indexExpression":{"argumentTypes":null,"id":16205,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"6750:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6740:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"open","nodeType":"MemberAccess","referencedDeclaration":15847,"src":"6740:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16203,"id":16208,"nodeType":"Return","src":"6732:35:56"}]},"documentation":"@dev isVotable check if the proposal is votable\n@param _proposalId the ID of the proposal\n@return bool true or false","id":16210,"implemented":true,"kind":"function","modifiers":[],"name":"isVotable","nodeType":"FunctionDefinition","parameters":{"id":16200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16199,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16210,"src":"6673:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6673:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6672:21:56"},"returnParameters":{"id":16203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16202,"name":"","nodeType":"VariableDeclaration","scope":16210,"src":"6716:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16201,"name":"bool","nodeType":"ElementaryTypeName","src":"6716:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6715:6:56"},"scope":16618,"src":"6654:120:56","stateMutability":"view","superFunction":19794,"visibility":"external"},{"body":{"id":16217,"nodeType":"Block","src":"6959:28:56","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":16215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6976:4:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16214,"id":16216,"nodeType":"Return","src":"6969:11:56"}]},"documentation":"@dev isAbstainAllow returns if the voting machine allow abstain (0)\n@return bool true or false","id":16218,"implemented":true,"kind":"function","modifiers":[],"name":"isAbstainAllow","nodeType":"FunctionDefinition","parameters":{"id":16211,"nodeType":"ParameterList","parameters":[],"src":"6928:2:56"},"returnParameters":{"id":16214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16213,"name":"","nodeType":"VariableDeclaration","scope":16218,"src":"6953:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16212,"name":"bool","nodeType":"ElementaryTypeName","src":"6953:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6952:6:56"},"scope":16618,"src":"6905:82:56","stateMutability":"pure","superFunction":19808,"visibility":"external"},{"body":{"id":16229,"nodeType":"Block","src":"7283:47:56","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"30","id":16225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7301:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":16226,"name":"MAX_NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15885,"src":"7304:18:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16227,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7300:23:56","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint256_$","typeString":"tuple(int_const 0,uint256)"}},"functionReturnParameters":16224,"id":16228,"nodeType":"Return","src":"7293:30:56"}]},"documentation":"@dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n@return min - minimum number of choices\nmax - maximum number of choices","id":16230,"implemented":true,"kind":"function","modifiers":[],"name":"getAllowedRangeOfChoices","nodeType":"FunctionDefinition","parameters":{"id":16219,"nodeType":"ParameterList","parameters":[],"src":"7232:2:56"},"returnParameters":{"id":16224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16221,"name":"min","nodeType":"VariableDeclaration","scope":16230,"src":"7257:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16220,"name":"uint256","nodeType":"ElementaryTypeName","src":"7257:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16223,"name":"max","nodeType":"VariableDeclaration","scope":16230,"src":"7270:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16222,"name":"uint256","nodeType":"ElementaryTypeName","src":"7270:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7256:26:56"},"scope":16618,"src":"7199:131:56","stateMutability":"pure","superFunction":19815,"visibility":"external"},{"body":{"id":16267,"nodeType":"Block","src":"7522:304:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16240,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7540:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":16241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7552:3:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7540:15:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16243,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7559:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7570:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7559:12:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7540:31:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7532:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7532:40:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16248,"nodeType":"ExpressionStatement","src":"7532:40:56"},{"assignments":[16250],"declarations":[{"constant":false,"id":16250,"name":"hashedParameters","nodeType":"VariableDeclaration","scope":16267,"src":"7582:24:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7582:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":16255,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16252,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7627:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16253,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"7637:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16251,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16286,"src":"7609:17:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,address) pure returns (bytes32)"}},"id":16254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7609:42:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7582:69:56"},{"expression":{"argumentTypes":null,"id":16263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16256,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"7661:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":16258,"indexExpression":{"argumentTypes":null,"id":16257,"name":"hashedParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16250,"src":"7672:16:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7661:28:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16260,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7726:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16261,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"7762:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16259,"name":"Parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15838,"src":"7692:10:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Parameters_$15838_storage_ptr_$","typeString":"type(struct AbsoluteVote.Parameters storage pointer)"}},"id":16262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["precReq","voteOnBehalf"],"nodeType":"FunctionCall","src":"7692:94:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory","typeString":"struct AbsoluteVote.Parameters memory"}},"src":"7661:125:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":16264,"nodeType":"ExpressionStatement","src":"7661:125:56"},{"expression":{"argumentTypes":null,"id":16265,"name":"hashedParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16250,"src":"7803:16:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16238,"id":16266,"nodeType":"Return","src":"7796:23:56"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":16268,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":16235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16232,"name":"_precReq","nodeType":"VariableDeclaration","scope":16268,"src":"7457:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16231,"name":"uint256","nodeType":"ElementaryTypeName","src":"7457:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16234,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":16268,"src":"7475:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16233,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"7456:41:56"},"returnParameters":{"id":16238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16237,"name":"","nodeType":"VariableDeclaration","scope":16268,"src":"7513:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7513:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7512:9:56"},"scope":16618,"src":"7434:392:56","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":16285,"nodeType":"Block","src":"8011:76:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16280,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16270,"src":"8055:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16281,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16272,"src":"8065:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":16278,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"8038:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8038:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8038:41:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16277,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"8028:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8028:52:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16276,"id":16284,"nodeType":"Return","src":"8021:59:56"}]},"documentation":"@dev hashParameters returns a hash of the given parameters","id":16286,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":16273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16270,"name":"_precReq","nodeType":"VariableDeclaration","scope":16286,"src":"7941:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16269,"name":"uint256","nodeType":"ElementaryTypeName","src":"7941:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16272,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":16286,"src":"7959:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16271,"name":"address","nodeType":"ElementaryTypeName","src":"7959:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"7940:41:56"},"returnParameters":{"id":16276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16275,"name":"","nodeType":"VariableDeclaration","scope":16286,"src":"8002:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8002:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"8001:9:56"},"scope":16618,"src":"7914:173:56","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":16351,"nodeType":"Block","src":"8167:413:56","statements":[{"assignments":[16294],"declarations":[{"constant":false,"id":16294,"name":"proposal","nodeType":"VariableDeclaration","scope":16351,"src":"8177:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16293,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"8177:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16298,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16295,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"8205:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16297,"indexExpression":{"argumentTypes":null,"id":16296,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16288,"src":"8215:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8205:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8177:50:56"},{"assignments":[16300],"declarations":[{"constant":false,"id":16300,"name":"voter","nodeType":"VariableDeclaration","scope":16351,"src":"8237:18:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter"},"typeName":{"contractScope":null,"id":16299,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":15843,"src":"8237:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage_ptr","typeString":"struct AbsoluteVote.Voter"}},"value":null,"visibility":"internal"}],"id":16305,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16301,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8258:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"8258:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16304,"indexExpression":{"argumentTypes":null,"id":16303,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8274:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8258:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8237:44:56"},{"expression":{"argumentTypes":null,"id":16322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16306,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8291:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"8291:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16311,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16308,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8306:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":15840,"src":"8306:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8291:26:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16319,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8353:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"8353:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16312,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8321:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"8321:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16316,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16314,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8336:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":15840,"src":"8336:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8321:26:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8320:28:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"8320:32:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8320:50:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8291:79:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16323,"nodeType":"ExpressionStatement","src":"8291:79:56"},{"expression":{"argumentTypes":null,"id":16334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16324,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8380:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"8380:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16331,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8428:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"8428:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16327,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8403:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"8403:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8402:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"8402:25:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8402:43:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8380:65:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16335,"nodeType":"ExpressionStatement","src":"8380:65:56"},{"expression":{"argumentTypes":null,"id":16340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8455:30:56","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16336,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8462:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"8462:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16339,"indexExpression":{"argumentTypes":null,"id":16338,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8478:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8462:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16341,"nodeType":"ExpressionStatement","src":"8455:30:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16343,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16288,"src":"8513:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16344,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"8526:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16347,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16345,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8540:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"8540:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8526:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16348,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8566:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16342,"name":"CancelVoting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19749,"src":"8500:12:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":16349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8500:73:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16350,"nodeType":"EmitStatement","src":"8495:78:56"}]},"documentation":null,"id":16352,"implemented":true,"kind":"function","modifiers":[],"name":"cancelVoteInternal","nodeType":"FunctionDefinition","parameters":{"id":16291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16288,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16352,"src":"8121:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8121:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16290,"name":"_voter","nodeType":"VariableDeclaration","scope":16352,"src":"8142:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16289,"name":"address","nodeType":"ElementaryTypeName","src":"8142:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8120:37:56"},"returnParameters":{"id":16292,"nodeType":"ParameterList","parameters":[],"src":"8167:0:56"},"scope":16618,"src":"8093:487:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":16387,"nodeType":"Block","src":"8640:225:56","statements":[{"assignments":[16358],"declarations":[{"constant":false,"id":16358,"name":"proposal","nodeType":"VariableDeclaration","scope":16387,"src":"8650:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16357,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"8650:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16362,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16359,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"8678:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16361,"indexExpression":{"argumentTypes":null,"id":16360,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16354,"src":"8688:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8678:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8650:50:56"},{"body":{"id":16380,"nodeType":"Block","src":"8769:51:56","statements":[{"expression":{"argumentTypes":null,"id":16378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8783:26:56","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16374,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16358,"src":"8790:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"8790:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16377,"indexExpression":{"argumentTypes":null,"id":16376,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16364,"src":"8805:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8790:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16379,"nodeType":"ExpressionStatement","src":"8783:26:56"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16367,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16364,"src":"8732:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16368,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16358,"src":"8739:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"8739:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8732:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16381,"initializationExpression":{"assignments":[16364],"declarations":[{"constant":false,"id":16364,"name":"cnt","nodeType":"VariableDeclaration","scope":16381,"src":"8715:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16363,"name":"uint256","nodeType":"ElementaryTypeName","src":"8715:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16366,"initialValue":{"argumentTypes":null,"hexValue":"30","id":16365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8729:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8715:15:56"},"loopExpression":{"expression":{"argumentTypes":null,"id":16372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8762:5:56","subExpression":{"argumentTypes":null,"id":16371,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16364,"src":"8762:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16373,"nodeType":"ExpressionStatement","src":"8762:5:56"},"nodeType":"ForStatement","src":"8710:110:56"},{"expression":{"argumentTypes":null,"id":16385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8829:29:56","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16382,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"8836:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16384,"indexExpression":{"argumentTypes":null,"id":16383,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16354,"src":"8846:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8836:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16386,"nodeType":"ExpressionStatement","src":"8829:29:56"}]},"documentation":null,"id":16388,"implemented":true,"kind":"function","modifiers":[],"name":"deleteProposal","nodeType":"FunctionDefinition","parameters":{"id":16355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16354,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16388,"src":"8610:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8610:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"8609:21:56"},"returnParameters":{"id":16356,"nodeType":"ParameterList","parameters":[],"src":"8640:0:56"},"scope":16618,"src":"8586:279:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":16479,"nodeType":"Block","src":"9212:826:56","statements":[{"assignments":[16399],"declarations":[{"constant":false,"id":16399,"name":"proposal","nodeType":"VariableDeclaration","scope":16479,"src":"9222:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16398,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"9222:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16403,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16400,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"9250:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16402,"indexExpression":{"argumentTypes":null,"id":16401,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9260:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9250:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9222:50:56"},{"assignments":[16405],"declarations":[{"constant":false,"id":16405,"name":"totalReputation","nodeType":"VariableDeclaration","scope":16479,"src":"9282:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16404,"name":"uint256","nodeType":"ElementaryTypeName","src":"9282:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16413,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16411,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9393:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16407,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9348:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"9348:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16406,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"9316:31:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":16409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9316:51:56","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":16410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalReputationSupply","nodeType":"MemberAccess","referencedDeclaration":20012,"src":"9316:76:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9316:89:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9282:123:56"},{"assignments":[16415],"declarations":[{"constant":false,"id":16415,"name":"precReq","nodeType":"VariableDeclaration","scope":16479,"src":"9415:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16414,"name":"uint256","nodeType":"ElementaryTypeName","src":"9415:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16421,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16416,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"9433:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":16419,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16417,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9444:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"9444:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9433:31:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":16420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"precReq","nodeType":"MemberAccess","referencedDeclaration":15835,"src":"9433:39:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9415:57:56"},{"body":{"id":16475,"nodeType":"Block","src":"9586:424:56","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16433,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9604:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"9604:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16436,"indexExpression":{"argumentTypes":null,"id":16435,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9619:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9604:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16437,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16405,"src":"9627:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":16438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9643:3:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"9627:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16440,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9626:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":16441,"name":"precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16415,"src":"9648:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9626:29:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9604:51:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16474,"nodeType":"IfStatement","src":"9600:400:56","trueBody":{"id":16473,"nodeType":"Block","src":"9657:343:56","statements":[{"assignments":[16445],"declarations":[{"constant":false,"id":16445,"name":"tmpProposal","nodeType":"VariableDeclaration","scope":16473,"src":"9675:27:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16444,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"9675:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16447,"initialValue":{"argumentTypes":null,"id":16446,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9705:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9675:38:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16449,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9746:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16448,"name":"deleteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"9731:14:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":16450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9731:27:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16451,"nodeType":"ExpressionStatement","src":"9731:27:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16453,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9797:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16454,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"9810:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16457,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16455,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16445,"src":"9824:11:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"9824:26:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9810:41:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16458,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9853:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16459,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16405,"src":"9858:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16452,"name":"ExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"9781:15:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":16460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9781:93:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16461,"nodeType":"EmitStatement","src":"9776:98:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16467,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9963:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16469,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9980:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9976:3:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":16470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9976:8:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16463,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16445,"src":"9924:11:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"9924:21:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16462,"name":"ProposalExecuteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"9899:24:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ProposalExecuteInterface_$19828_$","typeString":"type(contract ProposalExecuteInterface)"}},"id":16465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9899:47:56","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeProposal","nodeType":"MemberAccess","referencedDeclaration":19827,"src":"9899:63:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_int256_$returns$_t_bool_$","typeString":"function (bytes32,int256) external returns (bool)"}},"id":16471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9899:86:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16397,"id":16472,"nodeType":"Return","src":"9892:93:56"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16426,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9549:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16427,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9556:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"9556:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9549:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16476,"initializationExpression":{"assignments":[16423],"declarations":[{"constant":false,"id":16423,"name":"cnt","nodeType":"VariableDeclaration","scope":16476,"src":"9532:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16422,"name":"uint256","nodeType":"ElementaryTypeName","src":"9532:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16425,"initialValue":{"argumentTypes":null,"hexValue":"30","id":16424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9546:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9532:15:56"},"loopExpression":{"expression":{"argumentTypes":null,"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9579:5:56","subExpression":{"argumentTypes":null,"id":16430,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9579:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16432,"nodeType":"ExpressionStatement","src":"9579:5:56"},"nodeType":"ForStatement","src":"9527:483:56"},{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":16477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10026:5:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16397,"id":16478,"nodeType":"Return","src":"10019:12:56"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":16480,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16393,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9185:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16394,"modifierName":{"argumentTypes":null,"id":16392,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"9177:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"9177:20:56"}],"name":"_execute","nodeType":"FunctionDefinition","parameters":{"id":16391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16390,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16480,"src":"9147:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9147:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9146:21:56"},"returnParameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16396,"name":"","nodeType":"VariableDeclaration","scope":16480,"src":"9206:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16395,"name":"bool","nodeType":"ElementaryTypeName","src":"9206:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9205:6:56"},"scope":16618,"src":"9129:909:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":16616,"nodeType":"Block","src":"10666:1227:56","statements":[{"assignments":[16494],"declarations":[{"constant":false,"id":16494,"name":"proposal","nodeType":"VariableDeclaration","scope":16616,"src":"10676:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16493,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"10676:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16498,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16495,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"10704:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16497,"indexExpression":{"argumentTypes":null,"id":16496,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"10714:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10704:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10676:50:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16500,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"10773:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16501,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"10782:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"10782:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10773:30:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10765:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10765:39:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16505,"nodeType":"ExpressionStatement","src":"10765:39:56"},{"assignments":[16507],"declarations":[{"constant":false,"id":16507,"name":"reputation","nodeType":"VariableDeclaration","scope":16616,"src":"10860:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16506,"name":"uint256","nodeType":"ElementaryTypeName","src":"10860:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16516,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16513,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"10946:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16514,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"10954:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16509,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"10913:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"10913:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16508,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"10881:31:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":16511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10881:51:56","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":16512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"reputationOf","nodeType":"MemberAccess","referencedDeclaration":20021,"src":"10881:64:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) view external returns (uint256)"}},"id":16515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10881:85:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10860:106:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16518,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"10984:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10997:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10984:14:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f766f746572206d75737420686176652072657075746174696f6e","id":16521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11000:29:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""},"value":"_voter must have reputation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""}],"id":16517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10976:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10976:54:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16523,"nodeType":"ExpressionStatement","src":"10976:54:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16525,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"11048:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":16526,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16488,"src":"11062:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11048:18:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16524,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11040:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11040:27:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16529,"nodeType":"ExpressionStatement","src":"11040:27:56"},{"assignments":[16531],"declarations":[{"constant":false,"id":16531,"name":"rep","nodeType":"VariableDeclaration","scope":16616,"src":"11077:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16530,"name":"uint256","nodeType":"ElementaryTypeName","src":"11077:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16533,"initialValue":{"argumentTypes":null,"id":16532,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16488,"src":"11091:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11077:18:56"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16534,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11109:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11116:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11109:8:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16542,"nodeType":"IfStatement","src":"11105:55:56","trueBody":{"id":16541,"nodeType":"Block","src":"11119:41:56","statements":[{"expression":{"argumentTypes":null,"id":16539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16537,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11133:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16538,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"11139:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11133:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16540,"nodeType":"ExpressionStatement","src":"11133:16:56"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16543,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11240:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"11240:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16546,"indexExpression":{"argumentTypes":null,"id":16545,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11256:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11240:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"id":16547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"11240:34:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11240:39:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16556,"nodeType":"IfStatement","src":"11236:109:56","trueBody":{"id":16555,"nodeType":"Block","src":"11281:64:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16551,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11314:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16552,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11327:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16550,"name":"cancelVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16352,"src":"11295:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11295:39:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16554,"nodeType":"ExpressionStatement","src":"11295:39:56"}]}},{"expression":{"argumentTypes":null,"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16557,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11384:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"11384:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16561,"indexExpression":{"argumentTypes":null,"id":16559,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11399:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11384:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16564,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11416:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"11416:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16567,"indexExpression":{"argumentTypes":null,"id":16566,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11431:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11416:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16562,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11408:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11408:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11408:30:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11384:54:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16570,"nodeType":"ExpressionStatement","src":"11384:54:56"},{"expression":{"argumentTypes":null,"id":16579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16571,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11448:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"11448:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16576,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11478:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"11478:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16574,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11470:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11470:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11470:28:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11448:50:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16580,"nodeType":"ExpressionStatement","src":"11448:50:56"},{"expression":{"argumentTypes":null,"id":16590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16581,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11508:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"11508:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16585,"indexExpression":{"argumentTypes":null,"id":16583,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11524:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11508:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16587,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11566:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16588,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11589:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16586,"name":"Voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"11534:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Voter_$15843_storage_ptr_$","typeString":"type(struct AbsoluteVote.Voter storage pointer)"}},"id":16589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["reputation","vote"],"nodeType":"FunctionCall","src":"11534:71:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory","typeString":"struct AbsoluteVote.Voter memory"}},"src":"11508:97:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"id":16591,"nodeType":"ExpressionStatement","src":"11508:97:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16593,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11651:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16594,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"11664:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16597,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16595,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11678:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"11678:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11664:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16598,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11704:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16599,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11712:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16600,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11719:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16592,"name":"VoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19735,"src":"11638:12:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256,uint256)"}},"id":16601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11638:85:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16602,"nodeType":"EmitStatement","src":"11633:90:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16604,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11753:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16605,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11767:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"11777:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11777:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"11767:20:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":16609,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11766:22:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16603,"name":"AVVoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15870,"src":"11738:14:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":16610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11738:51:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16611,"nodeType":"EmitStatement","src":"11733:56:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16613,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11874:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16612,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16480,"src":"11865:8:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":16614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11865:21:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16492,"id":16615,"nodeType":"Return","src":"11858:28:56"}]},"documentation":"@dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead\n@param _proposalId id of the proposal\n@param _voter used in case the vote is cast for someone else\n@param _vote a value between 0 to and the proposal's number of choices.\n@return true in case of proposal execution otherwise false\nthrows if proposal is not open or if it has been executed\nNB: executes the proposal if a decision has been reached","id":16617,"implemented":true,"kind":"function","modifiers":[],"name":"internalVote","nodeType":"FunctionDefinition","parameters":{"id":16489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16482,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16617,"src":"10577:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10577:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16484,"name":"_voter","nodeType":"VariableDeclaration","scope":16617,"src":"10598:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16483,"name":"address","nodeType":"ElementaryTypeName","src":"10598:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":16486,"name":"_vote","nodeType":"VariableDeclaration","scope":16617,"src":"10614:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16485,"name":"uint256","nodeType":"ElementaryTypeName","src":"10614:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16488,"name":"_rep","nodeType":"VariableDeclaration","scope":16617,"src":"10629:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16487,"name":"uint256","nodeType":"ElementaryTypeName","src":"10629:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10576:66:56"},"returnParameters":{"id":16492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16491,"name":"","nodeType":"VariableDeclaration","scope":16617,"src":"10660:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16490,"name":"bool","nodeType":"ElementaryTypeName","src":"10660:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"10659:6:56"},"scope":16618,"src":"10555:1338:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":16619,"src":"238:11657:56"}],"src":"0:11896:56"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","exportedSymbols":{"AbsoluteVote":[16618]},"id":16619,"nodeType":"SourceUnit","nodes":[{"id":15823,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:56"},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"../Reputation.sol","id":15824,"nodeType":"ImportDirective","scope":16619,"sourceUnit":15083,"src":"26:27:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"./IntVoteInterface.sol","id":15825,"nodeType":"ImportDirective","scope":16619,"sourceUnit":19817,"src":"54:32:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":15826,"nodeType":"ImportDirective","scope":16619,"sourceUnit":20396,"src":"87:59:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"./VotingMachineCallbacksInterface.sol","id":15827,"nodeType":"ImportDirective","scope":16619,"sourceUnit":20032,"src":"147:47:56","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"./ProposalExecuteInterface.sol","id":15828,"nodeType":"ImportDirective","scope":16619,"sourceUnit":19829,"src":"195:40:56","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":15829,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"263:16:56","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":15830,"nodeType":"InheritanceSpecifier","src":"263:16:56"}],"contractDependencies":[19816],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":16618,"linearizedBaseContracts":[16618,19816],"name":"AbsoluteVote","nodeType":"ContractDefinition","nodes":[{"id":15833,"libraryName":{"contractScope":null,"id":15831,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"292:8:56","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"286:24:56","typeName":{"id":15832,"name":"uint","nodeType":"ElementaryTypeName","src":"305:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"canonicalName":"AbsoluteVote.Parameters","id":15838,"members":[{"constant":false,"id":15835,"name":"precReq","nodeType":"VariableDeclaration","scope":15838,"src":"344:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15834,"name":"uint256","nodeType":"ElementaryTypeName","src":"344:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15837,"name":"voteOnBehalf","nodeType":"VariableDeclaration","scope":15838,"src":"432:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15836,"name":"address","nodeType":"ElementaryTypeName","src":"432:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":16618,"src":"316:268:56","visibility":"public"},{"canonicalName":"AbsoluteVote.Voter","id":15843,"members":[{"constant":false,"id":15840,"name":"vote","nodeType":"VariableDeclaration","scope":15843,"src":"613:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15839,"name":"uint256","nodeType":"ElementaryTypeName","src":"613:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15842,"name":"reputation","nodeType":"VariableDeclaration","scope":15843,"src":"652:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15841,"name":"uint256","nodeType":"ElementaryTypeName","src":"652:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Voter","nodeType":"StructDefinition","scope":16618,"src":"590:119:56","visibility":"public"},{"canonicalName":"AbsoluteVote.Proposal","id":15864,"members":[{"constant":false,"id":15845,"name":"organizationId","nodeType":"VariableDeclaration","scope":15864,"src":"741:22:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15844,"name":"bytes32","nodeType":"ElementaryTypeName","src":"741:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15847,"name":"open","nodeType":"VariableDeclaration","scope":15864,"src":"796:9:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15846,"name":"bool","nodeType":"ElementaryTypeName","src":"796:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":15849,"name":"callbacks","nodeType":"VariableDeclaration","scope":15864,"src":"835:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15848,"name":"address","nodeType":"ElementaryTypeName","src":"835:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15851,"name":"numOfChoices","nodeType":"VariableDeclaration","scope":15864,"src":"862:20:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15850,"name":"uint256","nodeType":"ElementaryTypeName","src":"862:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15853,"name":"paramsHash","nodeType":"VariableDeclaration","scope":15864,"src":"892:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15852,"name":"bytes32","nodeType":"ElementaryTypeName","src":"892:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15855,"name":"totalVotes","nodeType":"VariableDeclaration","scope":15864,"src":"966:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15854,"name":"uint256","nodeType":"ElementaryTypeName","src":"966:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15859,"name":"votes","nodeType":"VariableDeclaration","scope":15864,"src":"994:25:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":15858,"keyType":{"id":15856,"name":"uint","nodeType":"ElementaryTypeName","src":"1002:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"994:19:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":15857,"name":"uint","nodeType":"ElementaryTypeName","src":"1008:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":15863,"name":"voters","nodeType":"VariableDeclaration","scope":15864,"src":"1029:30:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter)"},"typeName":{"id":15862,"keyType":{"id":15860,"name":"address","nodeType":"ElementaryTypeName","src":"1037:7:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1029:23:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter)"},"valueType":{"contractScope":null,"id":15861,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":15843,"src":"1046:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage_ptr","typeString":"struct AbsoluteVote.Voter"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":16618,"src":"715:351:56","visibility":"public"},{"anonymous":false,"documentation":null,"id":15870,"name":"AVVoteProposal","nodeType":"EventDefinition","parameters":{"id":15869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15866,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15870,"src":"1093:27:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1093:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15868,"indexed":false,"name":"_isProxyVote","nodeType":"VariableDeclaration","scope":15870,"src":"1122:17:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15867,"name":"bool","nodeType":"ElementaryTypeName","src":"1122:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1092:48:56"},"src":"1072:69:56"},{"constant":false,"id":15874,"name":"parameters","nodeType":"VariableDeclaration","scope":16618,"src":"1147:46:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters)"},"typeName":{"id":15873,"keyType":{"id":15871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1155:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1147:28:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters)"},"valueType":{"contractScope":null,"id":15872,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":15838,"src":"1164:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage_ptr","typeString":"struct AbsoluteVote.Parameters"}}},"value":null,"visibility":"public"},{"constant":false,"id":15878,"name":"proposals","nodeType":"VariableDeclaration","scope":16618,"src":"1239:43:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal)"},"typeName":{"id":15877,"keyType":{"id":15875,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1247:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1239:26:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal)"},"valueType":{"contractScope":null,"id":15876,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"1256:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":15882,"name":"organizations","nodeType":"VariableDeclaration","scope":16618,"src":"1351:46:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":15881,"keyType":{"id":15879,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1359:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1351:25:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":15880,"name":"address","nodeType":"ElementaryTypeName","src":"1368:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"constant":true,"id":15885,"name":"MAX_NUM_OF_CHOICES","nodeType":"VariableDeclaration","scope":16618,"src":"1404:47:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15883,"name":"uint256","nodeType":"ElementaryTypeName","src":"1404:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3130","id":15884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1449:2:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"constant":false,"id":15887,"name":"proposalsCnt","nodeType":"VariableDeclaration","scope":16618,"src":"1457:27:56","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15886,"name":"uint256","nodeType":"ElementaryTypeName","src":"1457:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":15899,"nodeType":"Block","src":"1643:64:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15892,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"1661:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":15894,"indexExpression":{"argumentTypes":null,"id":15893,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15889,"src":"1671:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1661:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":15895,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"open","nodeType":"MemberAccess","referencedDeclaration":15847,"src":"1661:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15891,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1653:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1653:36:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15897,"nodeType":"ExpressionStatement","src":"1653:36:56"},{"id":15898,"nodeType":"PlaceholderStatement","src":"1699:1:56"}]},"documentation":"@dev Check that the proposal is votable (open and not executed yet)","id":15900,"name":"votable","nodeType":"ModifierDefinition","parameters":{"id":15890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15889,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15900,"src":"1622:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15888,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1622:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1621:21:56"},"src":"1605:102:56","visibility":"internal"},{"body":{"id":16043,"nodeType":"Block","src":"2258:1143:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15914,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"2329:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":15916,"indexExpression":{"argumentTypes":null,"id":15915,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"2340:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2329:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":15917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"precReq","nodeType":"MemberAccess","referencedDeclaration":15835,"src":"2329:31:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2363:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2329:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15913,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2321:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2321:44:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15921,"nodeType":"ExpressionStatement","src":"2321:44:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15923,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"2383:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2399:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2383:17:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15926,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"2404:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":15927,"name":"MAX_NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15885,"src":"2421:18:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2404:35:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2383:56:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2375:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2375:65:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15931,"nodeType":"ExpressionStatement","src":"2375:65:56"},{"assignments":[15933],"declarations":[{"constant":false,"id":15933,"name":"proposalId","nodeType":"VariableDeclaration","scope":16043,"src":"2483:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15932,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2483:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":15941,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15937,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21207,"src":"2531:4:56","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},{"argumentTypes":null,"id":15938,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"2537:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15935,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2514:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2514:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2514:36:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15934,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2504:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2504:47:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2483:68:56"},{"expression":{"argumentTypes":null,"id":15947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15942,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"2561:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":15945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2593:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":15943,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15887,"src":"2576:12:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"2576:16:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2576:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2561:34:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15948,"nodeType":"ExpressionStatement","src":"2561:34:56"},{"assignments":[15950],"declarations":[{"constant":false,"id":15950,"name":"proposal","nodeType":"VariableDeclaration","scope":16043,"src":"2631:24:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":15949,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"2631:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":15951,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2631:24:56"},{"expression":{"argumentTypes":null,"id":15956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15952,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2665:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"2665:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15955,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"2689:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2665:37:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15957,"nodeType":"ExpressionStatement","src":"2665:37:56"},{"expression":{"argumentTypes":null,"id":15962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15958,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2712:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"2712:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15961,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"2734:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2712:33:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15963,"nodeType":"ExpressionStatement","src":"2712:33:56"},{"expression":{"argumentTypes":null,"id":15969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15964,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2755:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15966,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"2755:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15967,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2776:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2776:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2755:31:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":15970,"nodeType":"ExpressionStatement","src":"2755:31:56"},{"expression":{"argumentTypes":null,"id":15982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15971,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2796:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"2796:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15977,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2849:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":15978,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2849:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":15979,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15908,"src":"2861:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15975,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2832:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":15976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2832:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":15980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2832:43:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":15974,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2822:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":15981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2822:54:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2796:80:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":15983,"nodeType":"ExpressionStatement","src":"2796:80:56"},{"expression":{"argumentTypes":null,"id":15988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15984,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2886:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15986,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"open","nodeType":"MemberAccess","referencedDeclaration":15847,"src":"2886:13:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":15987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2902:4:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2886:20:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15989,"nodeType":"ExpressionStatement","src":"2886:20:56"},{"expression":{"argumentTypes":null,"id":15994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15990,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"2916:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":15992,"indexExpression":{"argumentTypes":null,"id":15991,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"2926:10:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2916:21:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2940:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"src":"2916:32:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":15995,"nodeType":"ExpressionStatement","src":"2916:32:56"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15996,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"2962:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":15999,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15997,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"2976:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":15998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"2976:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2962:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3012:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16000,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3004:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3004:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2962:52:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16028,"nodeType":"IfStatement","src":"2958:292:56","trueBody":{"id":16027,"nodeType":"Block","src":"3016:234:56","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16004,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15908,"src":"3034:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16006,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3059:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3051:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3051:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3034:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16025,"nodeType":"Block","src":"3153:87:56","statements":[{"expression":{"argumentTypes":null,"id":16023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16018,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"3171:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16021,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16019,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"3185:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16020,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"3185:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3171:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16022,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15908,"src":"3212:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3171:54:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16024,"nodeType":"ExpressionStatement","src":"3171:54:56"}]},"id":16026,"nodeType":"IfStatement","src":"3030:210:56","trueBody":{"id":16017,"nodeType":"Block","src":"3063:84:56","statements":[{"expression":{"argumentTypes":null,"id":16015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16009,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"3081:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16012,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16010,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"3095:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16011,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"3095:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3081:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16013,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3122:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3122:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3081:51:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16016,"nodeType":"ExpressionStatement","src":"3081:51:56"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16030,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"3276:10:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16031,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"3288:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16034,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16032,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15950,"src":"3302:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"3302:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3288:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16035,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15902,"src":"3328:13:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16036,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3343:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3343:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":16038,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15904,"src":"3355:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16029,"name":"NewProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19713,"src":"3264:11:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,address,uint256,address,bytes32)"}},"id":16039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3264:103:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16040,"nodeType":"EmitStatement","src":"3259:108:56"},{"expression":{"argumentTypes":null,"id":16041,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15933,"src":"3384:10:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15912,"id":16042,"nodeType":"Return","src":"3377:17:56"}]},"documentation":"@dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\ngenerated by calculating keccak256 of a incremented counter.\n@param _numOfChoices number of voting choices\n@param _paramsHash defined the parameters of the voting machine used for this proposal\n@param _organization address\n@return proposal's id.","id":16044,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":15909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15902,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":16044,"src":"2136:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15901,"name":"uint256","nodeType":"ElementaryTypeName","src":"2136:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15904,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":16044,"src":"2159:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2159:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15906,"name":"","nodeType":"VariableDeclaration","scope":16044,"src":"2180:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15905,"name":"address","nodeType":"ElementaryTypeName","src":"2180:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15908,"name":"_organization","nodeType":"VariableDeclaration","scope":16044,"src":"2189:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15907,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2135:76:56"},"returnParameters":{"id":15912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15911,"name":"","nodeType":"VariableDeclaration","scope":16044,"src":"2245:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15910,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2245:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2244:9:56"},"scope":16618,"src":"2119:1282:56","stateMutability":"nonpayable","superFunction":19762,"visibility":"external"},{"body":{"id":16109,"nodeType":"Block","src":"4006:416:56","statements":[{"assignments":[16061],"declarations":[{"constant":false,"id":16061,"name":"proposal","nodeType":"VariableDeclaration","scope":16109,"src":"4017:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16060,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"4017:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16065,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16062,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"4045:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16064,"indexExpression":{"argumentTypes":null,"id":16063,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"4055:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4045:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4017:50:56"},{"assignments":[16067],"declarations":[{"constant":false,"id":16067,"name":"params","nodeType":"VariableDeclaration","scope":16109,"src":"4077:24:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory_ptr","typeString":"struct AbsoluteVote.Parameters"},"typeName":{"contractScope":null,"id":16066,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":15838,"src":"4077:10:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage_ptr","typeString":"struct AbsoluteVote.Parameters"}},"value":null,"visibility":"internal"}],"id":16072,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16068,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"4104:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":16071,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16069,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16061,"src":"4115:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16070,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"4115:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4104:31:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4077:58:56"},{"assignments":[16074],"declarations":[{"constant":false,"id":16074,"name":"voter","nodeType":"VariableDeclaration","scope":16109,"src":"4145:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16073,"name":"address","nodeType":"ElementaryTypeName","src":"4145:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":16075,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"4145:13:56"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16076,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16067,"src":"4172:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory_ptr","typeString":"struct AbsoluteVote.Parameters memory"}},"id":16077,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":15837,"src":"4172:19:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4203:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":16078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4195:7:56","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4195:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4172:33:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16100,"nodeType":"Block","src":"4308:43:56","statements":[{"expression":{"argumentTypes":null,"id":16098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16095,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4322:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16096,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4330:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4330:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4322:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16099,"nodeType":"ExpressionStatement","src":"4322:18:56"}]},"id":16101,"nodeType":"IfStatement","src":"4168:183:56","trueBody":{"id":16094,"nodeType":"Block","src":"4207:95:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16083,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4229:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4229:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16085,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16067,"src":"4243:6:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory_ptr","typeString":"struct AbsoluteVote.Parameters memory"}},"id":16086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":15837,"src":"4243:19:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4229:33:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4221:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4221:42:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16089,"nodeType":"ExpressionStatement","src":"4221:42:56"},{"expression":{"argumentTypes":null,"id":16092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16090,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4277:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16091,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16052,"src":"4285:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4277:14:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16093,"nodeType":"ExpressionStatement","src":"4277:14:56"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16103,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"4380:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16104,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16074,"src":"4393:5:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16105,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16048,"src":"4400:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16106,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16050,"src":"4407:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16102,"name":"internalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16617,"src":"4367:12:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,address,uint256,uint256) returns (bool)"}},"id":16107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:48:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16059,"id":16108,"nodeType":"Return","src":"4360:55:56"}]},"documentation":"@dev voting function\n@param _proposalId id of the proposal\n@param _vote a value between 0 to and the proposal number of choices.\n@param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\n@param _voter voter address\n@return bool true - the proposal has been executed\n false - otherwise.","id":16110,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16055,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16046,"src":"3963:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16056,"modifierName":{"argumentTypes":null,"id":16054,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"3955:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3955:20:56"}],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":16053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16046,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16110,"src":"3837:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16045,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3837:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16048,"name":"_vote","nodeType":"VariableDeclaration","scope":16110,"src":"3866:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16047,"name":"uint256","nodeType":"ElementaryTypeName","src":"3866:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16050,"name":"_amount","nodeType":"VariableDeclaration","scope":16110,"src":"3889:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16049,"name":"uint256","nodeType":"ElementaryTypeName","src":"3889:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16052,"name":"_voter","nodeType":"VariableDeclaration","scope":16110,"src":"3914:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16051,"name":"address","nodeType":"ElementaryTypeName","src":"3914:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3827:102:56"},"returnParameters":{"id":16059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16058,"name":"","nodeType":"VariableDeclaration","scope":16110,"src":"3992:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16057,"name":"bool","nodeType":"ElementaryTypeName","src":"3992:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3991:6:56"},"scope":16618,"src":"3814:608:56","stateMutability":"nonpayable","superFunction":19775,"visibility":"external"},{"body":{"id":16124,"nodeType":"Block","src":"4696:60:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16119,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16112,"src":"4725:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16120,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4738:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4738:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":16118,"name":"cancelVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16352,"src":"4706:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4706:43:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16123,"nodeType":"ExpressionStatement","src":"4706:43:56"}]},"documentation":"@dev Cancel the vote of the msg.sender: subtract the reputation amount from the votes\nand delete the voter from the proposal struct\n@param _proposalId id of the proposal","id":16125,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16115,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16112,"src":"4683:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16116,"modifierName":{"argumentTypes":null,"id":16114,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"4675:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4675:20:56"}],"name":"cancelVote","nodeType":"FunctionDefinition","parameters":{"id":16113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16112,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16125,"src":"4645:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4645:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4644:21:56"},"returnParameters":{"id":16117,"nodeType":"ParameterList","parameters":[],"src":"4696:0:56"},"scope":16618,"src":"4625:131:56","stateMutability":"nonpayable","superFunction":19780,"visibility":"external"},{"body":{"id":16139,"nodeType":"Block","src":"5102:45:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16136,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16127,"src":"5128:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16135,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16480,"src":"5119:8:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":16137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5119:21:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16134,"id":16138,"nodeType":"Return","src":"5112:28:56"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":16140,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16130,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16127,"src":"5075:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16131,"modifierName":{"argumentTypes":null,"id":16129,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"5067:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5067:20:56"}],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":16128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16127,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16140,"src":"5037:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5037:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5036:21:56"},"returnParameters":{"id":16134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16133,"name":"","nodeType":"VariableDeclaration","scope":16140,"src":"5096:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16132,"name":"bool","nodeType":"ElementaryTypeName","src":"5096:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5095:6:56"},"scope":16618,"src":"5020:127:56","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16152,"nodeType":"Block","src":"5466:59:56","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16147,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"5483:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16149,"indexExpression":{"argumentTypes":null,"id":16148,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16142,"src":"5493:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5483:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16150,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"5483:35:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16146,"id":16151,"nodeType":"Return","src":"5476:42:56"}]},"documentation":"@dev getNumberOfChoices returns the number of choices possible in this proposal\nexcluding the abstain vote (0)\n@param _proposalId the ID of the proposal\n@return uint256 that contains number of choices","id":16153,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfChoices","nodeType":"FunctionDefinition","parameters":{"id":16143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16142,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16153,"src":"5414:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16141,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5414:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5413:21:56"},"returnParameters":{"id":16146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16145,"name":"","nodeType":"VariableDeclaration","scope":16153,"src":"5457:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16144,"name":"uint256","nodeType":"ElementaryTypeName","src":"5457:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5456:9:56"},"scope":16618,"src":"5386:139:56","stateMutability":"view","superFunction":19787,"visibility":"external"},{"body":{"id":16179,"nodeType":"Block","src":"5960:122:56","statements":[{"assignments":[16165],"declarations":[{"constant":false,"id":16165,"name":"voter","nodeType":"VariableDeclaration","scope":16179,"src":"5970:18:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter"},"typeName":{"contractScope":null,"id":16164,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":15843,"src":"5970:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage_ptr","typeString":"struct AbsoluteVote.Voter"}},"value":null,"visibility":"internal"}],"id":16172,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16166,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"5991:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16168,"indexExpression":{"argumentTypes":null,"id":16167,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16155,"src":"6001:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5991:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"5991:29:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16171,"indexExpression":{"argumentTypes":null,"id":16170,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16157,"src":"6021:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5991:37:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5970:58:56"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16173,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16165,"src":"6046:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":15840,"src":"6046:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16175,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16165,"src":"6058:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"6058:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6045:30:56","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":16163,"id":16178,"nodeType":"Return","src":"6038:37:56"}]},"documentation":"@dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal\n@param _proposalId the ID of the proposal\n@param _voter the address of the voter\n@return uint256 vote - the voters vote\n uint256 reputation - amount of reputation committed by _voter to _proposalId","id":16180,"implemented":true,"kind":"function","modifiers":[],"name":"voteInfo","nodeType":"FunctionDefinition","parameters":{"id":16158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16155,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16180,"src":"5889:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5889:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16157,"name":"_voter","nodeType":"VariableDeclaration","scope":16180,"src":"5910:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16156,"name":"address","nodeType":"ElementaryTypeName","src":"5910:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5888:37:56"},"returnParameters":{"id":16163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16160,"name":"","nodeType":"VariableDeclaration","scope":16180,"src":"5948:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16159,"name":"uint","nodeType":"ElementaryTypeName","src":"5948:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16162,"name":"","nodeType":"VariableDeclaration","scope":16180,"src":"5954:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16161,"name":"uint","nodeType":"ElementaryTypeName","src":"5954:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5947:12:56"},"scope":16618,"src":"5871:211:56","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":16196,"nodeType":"Block","src":"6431:61:56","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16189,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"6448:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16191,"indexExpression":{"argumentTypes":null,"id":16190,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16182,"src":"6458:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6448:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"6448:28:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16194,"indexExpression":{"argumentTypes":null,"id":16193,"name":"_choice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16184,"src":"6477:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6448:37:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16188,"id":16195,"nodeType":"Return","src":"6441:44:56"}]},"documentation":"@dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n@param _proposalId the ID of the proposal\n@param _choice the index in the\n@return voted reputation for the given choice","id":16197,"implemented":true,"kind":"function","modifiers":[],"name":"voteStatus","nodeType":"FunctionDefinition","parameters":{"id":16185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16182,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16197,"src":"6362:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6362:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16184,"name":"_choice","nodeType":"VariableDeclaration","scope":16197,"src":"6383:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16183,"name":"uint256","nodeType":"ElementaryTypeName","src":"6383:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6361:38:56"},"returnParameters":{"id":16188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16187,"name":"","nodeType":"VariableDeclaration","scope":16197,"src":"6422:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16186,"name":"uint256","nodeType":"ElementaryTypeName","src":"6422:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6421:9:56"},"scope":16618,"src":"6342:150:56","stateMutability":"view","superFunction":19803,"visibility":"external"},{"body":{"id":16209,"nodeType":"Block","src":"6722:52:56","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16204,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"6740:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16206,"indexExpression":{"argumentTypes":null,"id":16205,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16199,"src":"6750:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6740:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"id":16207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"open","nodeType":"MemberAccess","referencedDeclaration":15847,"src":"6740:27:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16203,"id":16208,"nodeType":"Return","src":"6732:35:56"}]},"documentation":"@dev isVotable check if the proposal is votable\n@param _proposalId the ID of the proposal\n@return bool true or false","id":16210,"implemented":true,"kind":"function","modifiers":[],"name":"isVotable","nodeType":"FunctionDefinition","parameters":{"id":16200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16199,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16210,"src":"6673:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16198,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6673:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6672:21:56"},"returnParameters":{"id":16203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16202,"name":"","nodeType":"VariableDeclaration","scope":16210,"src":"6716:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16201,"name":"bool","nodeType":"ElementaryTypeName","src":"6716:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6715:6:56"},"scope":16618,"src":"6654:120:56","stateMutability":"view","superFunction":19794,"visibility":"external"},{"body":{"id":16217,"nodeType":"Block","src":"6959:28:56","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":16215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6976:4:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":16214,"id":16216,"nodeType":"Return","src":"6969:11:56"}]},"documentation":"@dev isAbstainAllow returns if the voting machine allow abstain (0)\n@return bool true or false","id":16218,"implemented":true,"kind":"function","modifiers":[],"name":"isAbstainAllow","nodeType":"FunctionDefinition","parameters":{"id":16211,"nodeType":"ParameterList","parameters":[],"src":"6928:2:56"},"returnParameters":{"id":16214,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16213,"name":"","nodeType":"VariableDeclaration","scope":16218,"src":"6953:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16212,"name":"bool","nodeType":"ElementaryTypeName","src":"6953:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6952:6:56"},"scope":16618,"src":"6905:82:56","stateMutability":"pure","superFunction":19808,"visibility":"external"},{"body":{"id":16229,"nodeType":"Block","src":"7283:47:56","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"hexValue":"30","id":16225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7301:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"id":16226,"name":"MAX_NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15885,"src":"7304:18:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16227,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"7300:23:56","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_uint256_$","typeString":"tuple(int_const 0,uint256)"}},"functionReturnParameters":16224,"id":16228,"nodeType":"Return","src":"7293:30:56"}]},"documentation":"@dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n@return min - minimum number of choices\nmax - maximum number of choices","id":16230,"implemented":true,"kind":"function","modifiers":[],"name":"getAllowedRangeOfChoices","nodeType":"FunctionDefinition","parameters":{"id":16219,"nodeType":"ParameterList","parameters":[],"src":"7232:2:56"},"returnParameters":{"id":16224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16221,"name":"min","nodeType":"VariableDeclaration","scope":16230,"src":"7257:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16220,"name":"uint256","nodeType":"ElementaryTypeName","src":"7257:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16223,"name":"max","nodeType":"VariableDeclaration","scope":16230,"src":"7270:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16222,"name":"uint256","nodeType":"ElementaryTypeName","src":"7270:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7256:26:56"},"scope":16618,"src":"7199:131:56","stateMutability":"pure","superFunction":19815,"visibility":"external"},{"body":{"id":16267,"nodeType":"Block","src":"7522:304:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":16246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16240,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7540:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":16241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7552:3:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"7540:15:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16243,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7559:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7570:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7559:12:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7540:31:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16239,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7532:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7532:40:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16248,"nodeType":"ExpressionStatement","src":"7532:40:56"},{"assignments":[16250],"declarations":[{"constant":false,"id":16250,"name":"hashedParameters","nodeType":"VariableDeclaration","scope":16267,"src":"7582:24:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7582:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":16255,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16252,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7627:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16253,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"7637:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16251,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16286,"src":"7609:17:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,address) pure returns (bytes32)"}},"id":16254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7609:42:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7582:69:56"},{"expression":{"argumentTypes":null,"id":16263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16256,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"7661:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":16258,"indexExpression":{"argumentTypes":null,"id":16257,"name":"hashedParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16250,"src":"7672:16:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7661:28:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16260,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16232,"src":"7726:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16261,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16234,"src":"7762:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16259,"name":"Parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15838,"src":"7692:10:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Parameters_$15838_storage_ptr_$","typeString":"type(struct AbsoluteVote.Parameters storage pointer)"}},"id":16262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["precReq","voteOnBehalf"],"nodeType":"FunctionCall","src":"7692:94:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_memory","typeString":"struct AbsoluteVote.Parameters memory"}},"src":"7661:125:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":16264,"nodeType":"ExpressionStatement","src":"7661:125:56"},{"expression":{"argumentTypes":null,"id":16265,"name":"hashedParameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16250,"src":"7803:16:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16238,"id":16266,"nodeType":"Return","src":"7796:23:56"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":16268,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":16235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16232,"name":"_precReq","nodeType":"VariableDeclaration","scope":16268,"src":"7457:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16231,"name":"uint256","nodeType":"ElementaryTypeName","src":"7457:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16234,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":16268,"src":"7475:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16233,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"7456:41:56"},"returnParameters":{"id":16238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16237,"name":"","nodeType":"VariableDeclaration","scope":16268,"src":"7513:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16236,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7513:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7512:9:56"},"scope":16618,"src":"7434:392:56","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":16285,"nodeType":"Block","src":"8011:76:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16280,"name":"_precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16270,"src":"8055:8:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16281,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16272,"src":"8065:13:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":16278,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"8038:3:56","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16279,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8038:16:56","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8038:41:56","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16277,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"8028:9:56","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8028:52:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16276,"id":16284,"nodeType":"Return","src":"8021:59:56"}]},"documentation":"@dev hashParameters returns a hash of the given parameters","id":16286,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":16273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16270,"name":"_precReq","nodeType":"VariableDeclaration","scope":16286,"src":"7941:16:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16269,"name":"uint256","nodeType":"ElementaryTypeName","src":"7941:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16272,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":16286,"src":"7959:21:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16271,"name":"address","nodeType":"ElementaryTypeName","src":"7959:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"7940:41:56"},"returnParameters":{"id":16276,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16275,"name":"","nodeType":"VariableDeclaration","scope":16286,"src":"8002:7:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16274,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8002:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"8001:9:56"},"scope":16618,"src":"7914:173:56","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":16351,"nodeType":"Block","src":"8167:413:56","statements":[{"assignments":[16294],"declarations":[{"constant":false,"id":16294,"name":"proposal","nodeType":"VariableDeclaration","scope":16351,"src":"8177:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16293,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"8177:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16298,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16295,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"8205:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16297,"indexExpression":{"argumentTypes":null,"id":16296,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16288,"src":"8215:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8205:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8177:50:56"},{"assignments":[16300],"declarations":[{"constant":false,"id":16300,"name":"voter","nodeType":"VariableDeclaration","scope":16351,"src":"8237:18:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter"},"typeName":{"contractScope":null,"id":16299,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":15843,"src":"8237:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage_ptr","typeString":"struct AbsoluteVote.Voter"}},"value":null,"visibility":"internal"}],"id":16305,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16301,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8258:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16302,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"8258:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16304,"indexExpression":{"argumentTypes":null,"id":16303,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8274:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8258:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8237:44:56"},{"expression":{"argumentTypes":null,"id":16322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16306,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8291:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"8291:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16311,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16308,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8306:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":15840,"src":"8306:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8291:26:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16319,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8353:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16320,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"8353:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16312,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8321:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16313,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"8321:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16316,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16314,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8336:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16315,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":15840,"src":"8336:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8321:26:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16317,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8320:28:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"8320:32:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8320:50:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8291:79:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16323,"nodeType":"ExpressionStatement","src":"8291:79:56"},{"expression":{"argumentTypes":null,"id":16334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16324,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8380:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"8380:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16331,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16300,"src":"8428:5:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory_ptr","typeString":"struct AbsoluteVote.Voter memory"}},"id":16332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"8428:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16327,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8403:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16328,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"8403:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8402:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"8402:25:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8402:43:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8380:65:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16335,"nodeType":"ExpressionStatement","src":"8380:65:56"},{"expression":{"argumentTypes":null,"id":16340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8455:30:56","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16336,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8462:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16337,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"8462:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16339,"indexExpression":{"argumentTypes":null,"id":16338,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8478:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8462:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16341,"nodeType":"ExpressionStatement","src":"8455:30:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16343,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16288,"src":"8513:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16344,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"8526:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16347,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16345,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16294,"src":"8540:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"8540:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8526:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16348,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16290,"src":"8566:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16342,"name":"CancelVoting","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19749,"src":"8500:12:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,address,address)"}},"id":16349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8500:73:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16350,"nodeType":"EmitStatement","src":"8495:78:56"}]},"documentation":null,"id":16352,"implemented":true,"kind":"function","modifiers":[],"name":"cancelVoteInternal","nodeType":"FunctionDefinition","parameters":{"id":16291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16288,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16352,"src":"8121:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16287,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8121:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16290,"name":"_voter","nodeType":"VariableDeclaration","scope":16352,"src":"8142:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16289,"name":"address","nodeType":"ElementaryTypeName","src":"8142:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8120:37:56"},"returnParameters":{"id":16292,"nodeType":"ParameterList","parameters":[],"src":"8167:0:56"},"scope":16618,"src":"8093:487:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":16387,"nodeType":"Block","src":"8640:225:56","statements":[{"assignments":[16358],"declarations":[{"constant":false,"id":16358,"name":"proposal","nodeType":"VariableDeclaration","scope":16387,"src":"8650:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16357,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"8650:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16362,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16359,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"8678:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16361,"indexExpression":{"argumentTypes":null,"id":16360,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16354,"src":"8688:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8678:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8650:50:56"},{"body":{"id":16380,"nodeType":"Block","src":"8769:51:56","statements":[{"expression":{"argumentTypes":null,"id":16378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8783:26:56","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16374,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16358,"src":"8790:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"8790:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16377,"indexExpression":{"argumentTypes":null,"id":16376,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16364,"src":"8805:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8790:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16379,"nodeType":"ExpressionStatement","src":"8783:26:56"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16367,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16364,"src":"8732:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16368,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16358,"src":"8739:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16369,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"8739:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8732:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16381,"initializationExpression":{"assignments":[16364],"declarations":[{"constant":false,"id":16364,"name":"cnt","nodeType":"VariableDeclaration","scope":16381,"src":"8715:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16363,"name":"uint256","nodeType":"ElementaryTypeName","src":"8715:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16366,"initialValue":{"argumentTypes":null,"hexValue":"30","id":16365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8729:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"8715:15:56"},"loopExpression":{"expression":{"argumentTypes":null,"id":16372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"8762:5:56","subExpression":{"argumentTypes":null,"id":16371,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16364,"src":"8762:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16373,"nodeType":"ExpressionStatement","src":"8762:5:56"},"nodeType":"ForStatement","src":"8710:110:56"},{"expression":{"argumentTypes":null,"id":16385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8829:29:56","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16382,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"8836:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16384,"indexExpression":{"argumentTypes":null,"id":16383,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16354,"src":"8846:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8836:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16386,"nodeType":"ExpressionStatement","src":"8829:29:56"}]},"documentation":null,"id":16388,"implemented":true,"kind":"function","modifiers":[],"name":"deleteProposal","nodeType":"FunctionDefinition","parameters":{"id":16355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16354,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16388,"src":"8610:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8610:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"8609:21:56"},"returnParameters":{"id":16356,"nodeType":"ParameterList","parameters":[],"src":"8640:0:56"},"scope":16618,"src":"8586:279:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":16479,"nodeType":"Block","src":"9212:826:56","statements":[{"assignments":[16399],"declarations":[{"constant":false,"id":16399,"name":"proposal","nodeType":"VariableDeclaration","scope":16479,"src":"9222:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16398,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"9222:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16403,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16400,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"9250:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16402,"indexExpression":{"argumentTypes":null,"id":16401,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9260:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9250:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9222:50:56"},{"assignments":[16405],"declarations":[{"constant":false,"id":16405,"name":"totalReputation","nodeType":"VariableDeclaration","scope":16479,"src":"9282:23:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16404,"name":"uint256","nodeType":"ElementaryTypeName","src":"9282:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16413,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16411,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9393:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16407,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9348:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"9348:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16406,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"9316:31:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":16409,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9316:51:56","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":16410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalReputationSupply","nodeType":"MemberAccess","referencedDeclaration":20012,"src":"9316:76:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":16412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9316:89:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9282:123:56"},{"assignments":[16415],"declarations":[{"constant":false,"id":16415,"name":"precReq","nodeType":"VariableDeclaration","scope":16479,"src":"9415:15:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16414,"name":"uint256","nodeType":"ElementaryTypeName","src":"9415:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16421,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16416,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"9433:10:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":16419,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16417,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9444:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"9444:19:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9433:31:56","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":16420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"precReq","nodeType":"MemberAccess","referencedDeclaration":15835,"src":"9433:39:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9415:57:56"},{"body":{"id":16475,"nodeType":"Block","src":"9586:424:56","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16433,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9604:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16434,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"9604:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16436,"indexExpression":{"argumentTypes":null,"id":16435,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9619:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9604:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16437,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16405,"src":"9627:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":16438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9643:3:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"9627:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16440,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9626:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":16441,"name":"precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16415,"src":"9648:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9626:29:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9604:51:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16474,"nodeType":"IfStatement","src":"9600:400:56","trueBody":{"id":16473,"nodeType":"Block","src":"9657:343:56","statements":[{"assignments":[16445],"declarations":[{"constant":false,"id":16445,"name":"tmpProposal","nodeType":"VariableDeclaration","scope":16473,"src":"9675:27:56","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16444,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"9675:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16447,"initialValue":{"argumentTypes":null,"id":16446,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9705:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"9675:38:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16449,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9746:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16448,"name":"deleteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"9731:14:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":16450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9731:27:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16451,"nodeType":"ExpressionStatement","src":"9731:27:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16453,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9797:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16454,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"9810:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16457,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16455,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16445,"src":"9824:11:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"9824:26:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9810:41:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16458,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9853:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16459,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16405,"src":"9858:15:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16452,"name":"ExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"9781:15:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":16460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9781:93:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16461,"nodeType":"EmitStatement","src":"9776:98:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16467,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9963:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16469,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9980:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9976:3:56","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":16470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9976:8:56","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16463,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16445,"src":"9924:11:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":16464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"9924:21:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16462,"name":"ProposalExecuteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"9899:24:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ProposalExecuteInterface_$19828_$","typeString":"type(contract ProposalExecuteInterface)"}},"id":16465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9899:47:56","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":16466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeProposal","nodeType":"MemberAccess","referencedDeclaration":19827,"src":"9899:63:56","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_int256_$returns$_t_bool_$","typeString":"function (bytes32,int256) external returns (bool)"}},"id":16471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9899:86:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16397,"id":16472,"nodeType":"Return","src":"9892:93:56"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16426,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9549:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16427,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16399,"src":"9556:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"9556:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9549:28:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":16476,"initializationExpression":{"assignments":[16423],"declarations":[{"constant":false,"id":16423,"name":"cnt","nodeType":"VariableDeclaration","scope":16476,"src":"9532:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16422,"name":"uint256","nodeType":"ElementaryTypeName","src":"9532:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16425,"initialValue":{"argumentTypes":null,"hexValue":"30","id":16424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9546:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9532:15:56"},"loopExpression":{"expression":{"argumentTypes":null,"id":16431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9579:5:56","subExpression":{"argumentTypes":null,"id":16430,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16423,"src":"9579:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16432,"nodeType":"ExpressionStatement","src":"9579:5:56"},"nodeType":"ForStatement","src":"9527:483:56"},{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":16477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10026:5:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":16397,"id":16478,"nodeType":"Return","src":"10019:12:56"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":16480,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16393,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16390,"src":"9185:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16394,"modifierName":{"argumentTypes":null,"id":16392,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"9177:7:56","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"9177:20:56"}],"name":"_execute","nodeType":"FunctionDefinition","parameters":{"id":16391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16390,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16480,"src":"9147:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16389,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9147:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9146:21:56"},"returnParameters":{"id":16397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16396,"name":"","nodeType":"VariableDeclaration","scope":16480,"src":"9206:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16395,"name":"bool","nodeType":"ElementaryTypeName","src":"9206:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9205:6:56"},"scope":16618,"src":"9129:909:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":16616,"nodeType":"Block","src":"10666:1227:56","statements":[{"assignments":[16494],"declarations":[{"constant":false,"id":16494,"name":"proposal","nodeType":"VariableDeclaration","scope":16616,"src":"10676:25:56","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":16493,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"10676:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":16498,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16495,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"10704:9:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":16497,"indexExpression":{"argumentTypes":null,"id":16496,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"10714:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10704:22:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10676:50:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16500,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"10773:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16501,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"10782:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"10782:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10773:30:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10765:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10765:39:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16505,"nodeType":"ExpressionStatement","src":"10765:39:56"},{"assignments":[16507],"declarations":[{"constant":false,"id":16507,"name":"reputation","nodeType":"VariableDeclaration","scope":16616,"src":"10860:18:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16506,"name":"uint256","nodeType":"ElementaryTypeName","src":"10860:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16516,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16513,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"10946:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16514,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"10954:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16509,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"10913:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"10913:18:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":16508,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"10881:31:56","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":16511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10881:51:56","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":16512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"reputationOf","nodeType":"MemberAccess","referencedDeclaration":20021,"src":"10881:64:56","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) view external returns (uint256)"}},"id":16515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10881:85:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10860:106:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16518,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"10984:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10997:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10984:14:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f766f746572206d75737420686176652072657075746174696f6e","id":16521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11000:29:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""},"value":"_voter must have reputation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""}],"id":16517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10976:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10976:54:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16523,"nodeType":"ExpressionStatement","src":"10976:54:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16525,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"11048:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":16526,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16488,"src":"11062:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11048:18:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16524,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11040:7:56","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11040:27:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16529,"nodeType":"ExpressionStatement","src":"11040:27:56"},{"assignments":[16531],"declarations":[{"constant":false,"id":16531,"name":"rep","nodeType":"VariableDeclaration","scope":16616,"src":"11077:11:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16530,"name":"uint256","nodeType":"ElementaryTypeName","src":"11077:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":16533,"initialValue":{"argumentTypes":null,"id":16532,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16488,"src":"11091:4:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11077:18:56"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16534,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11109:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11116:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11109:8:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16542,"nodeType":"IfStatement","src":"11105:55:56","trueBody":{"id":16541,"nodeType":"Block","src":"11119:41:56","statements":[{"expression":{"argumentTypes":null,"id":16539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16537,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11133:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16538,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16507,"src":"11139:10:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11133:16:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16540,"nodeType":"ExpressionStatement","src":"11133:16:56"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16543,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11240:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"11240:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16546,"indexExpression":{"argumentTypes":null,"id":16545,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11256:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11240:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"id":16547,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":15842,"src":"11240:34:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":16548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11278:1:56","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11240:39:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":16556,"nodeType":"IfStatement","src":"11236:109:56","trueBody":{"id":16555,"nodeType":"Block","src":"11281:64:56","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16551,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11314:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16552,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11327:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16550,"name":"cancelVoteInternal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16352,"src":"11295:18:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":16553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11295:39:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16554,"nodeType":"ExpressionStatement","src":"11295:39:56"}]}},{"expression":{"argumentTypes":null,"id":16569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16557,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11384:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"11384:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16561,"indexExpression":{"argumentTypes":null,"id":16559,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11399:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11384:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16564,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11416:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"11416:14:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16567,"indexExpression":{"argumentTypes":null,"id":16566,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11431:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11416:21:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16562,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11408:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11408:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11408:30:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11384:54:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16570,"nodeType":"ExpressionStatement","src":"11384:54:56"},{"expression":{"argumentTypes":null,"id":16579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16571,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11448:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"11448:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16576,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11478:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"11478:19:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16574,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11470:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11470:7:56","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11470:28:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11448:50:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16580,"nodeType":"ExpressionStatement","src":"11448:50:56"},{"expression":{"argumentTypes":null,"id":16590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16581,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11508:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":15863,"src":"11508:15:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$15843_storage_$","typeString":"mapping(address => struct AbsoluteVote.Voter storage ref)"}},"id":16585,"indexExpression":{"argumentTypes":null,"id":16583,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11524:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11508:23:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16587,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11566:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16588,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11589:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16586,"name":"Voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15843,"src":"11534:5:56","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Voter_$15843_storage_ptr_$","typeString":"type(struct AbsoluteVote.Voter storage pointer)"}},"id":16589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["reputation","vote"],"nodeType":"FunctionCall","src":"11534:71:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_memory","typeString":"struct AbsoluteVote.Voter memory"}},"src":"11508:97:56","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$15843_storage","typeString":"struct AbsoluteVote.Voter storage ref"}},"id":16591,"nodeType":"ExpressionStatement","src":"11508:97:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16593,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11651:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16594,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"11664:13:56","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":16597,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16595,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16494,"src":"11678:8:56","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":16596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"11678:23:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11664:38:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16598,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11704:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16599,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16486,"src":"11712:5:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16600,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16531,"src":"11719:3:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16592,"name":"VoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19735,"src":"11638:12:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256,uint256)"}},"id":16601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11638:85:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16602,"nodeType":"EmitStatement","src":"11633:90:56"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16604,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11753:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16605,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16484,"src":"11767:6:56","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"11777:3:56","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11777:10:56","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"11767:20:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":16609,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11766:22:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16603,"name":"AVVoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15870,"src":"11738:14:56","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_bool_$returns$__$","typeString":"function (bytes32,bool)"}},"id":16610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11738:51:56","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16611,"nodeType":"EmitStatement","src":"11733:56:56"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16613,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16482,"src":"11874:11:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16612,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16480,"src":"11865:8:56","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":16614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11865:21:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16492,"id":16615,"nodeType":"Return","src":"11858:28:56"}]},"documentation":"@dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead\n@param _proposalId id of the proposal\n@param _voter used in case the vote is cast for someone else\n@param _vote a value between 0 to and the proposal's number of choices.\n@return true in case of proposal execution otherwise false\nthrows if proposal is not open or if it has been executed\nNB: executes the proposal if a decision has been reached","id":16617,"implemented":true,"kind":"function","modifiers":[],"name":"internalVote","nodeType":"FunctionDefinition","parameters":{"id":16489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16482,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16617,"src":"10577:19:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10577:7:56","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16484,"name":"_voter","nodeType":"VariableDeclaration","scope":16617,"src":"10598:14:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16483,"name":"address","nodeType":"ElementaryTypeName","src":"10598:7:56","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":16486,"name":"_vote","nodeType":"VariableDeclaration","scope":16617,"src":"10614:13:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16485,"name":"uint256","nodeType":"ElementaryTypeName","src":"10614:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16488,"name":"_rep","nodeType":"VariableDeclaration","scope":16617,"src":"10629:12:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16487,"name":"uint256","nodeType":"ElementaryTypeName","src":"10629:7:56","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10576:66:56"},"returnParameters":{"id":16492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16491,"name":"","nodeType":"VariableDeclaration","scope":16617,"src":"10660:4:56","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16490,"name":"bool","nodeType":"ElementaryTypeName","src":"10660:4:56","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"10659:6:56"},"scope":16618,"src":"10555:1338:56","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":16619,"src":"238:11657:56"}],"src":"0:11896:56"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.239Z","devdoc":{"methods":{"cancelVote(bytes32)":{"details":"Cancel the vote of the msg.sender: subtract the reputation amount from the votes and delete the voter from the proposal struct","params":{"_proposalId":"id of the proposal"}},"execute(bytes32)":{"details":"execute check if the proposal has been decided, and if so, execute the proposal","params":{"_proposalId":"the id of the proposal"},"return":"bool true - the proposal has been executed false - otherwise."},"getAllowedRangeOfChoices()":{"details":"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.","return":"min - minimum number of choices max - maximum number of choices"},"getNumberOfChoices(bytes32)":{"details":"getNumberOfChoices returns the number of choices possible in this proposal excluding the abstain vote (0)","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 that contains number of choices"},"getParametersHash(uint256,address)":{"details":"hashParameters returns a hash of the given parameters"},"isAbstainAllow()":{"details":"isAbstainAllow returns if the voting machine allow abstain (0)","return":"bool true or false"},"isVotable(bytes32)":{"details":"isVotable check if the proposal is votable","params":{"_proposalId":"the ID of the proposal"},"return":"bool true or false"},"propose(uint256,bytes32,address,address)":{"details":"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.","params":{"_numOfChoices":"number of voting choices","_organization":"address","_paramsHash":"defined the parameters of the voting machine used for this proposal"},"return":"proposal's id."},"setParameters(uint256,address)":{"details":"hash the parameters, save them if necessary, and return the hash value"},"vote(bytes32,uint256,uint256,address)":{"details":"voting function","params":{"_amount":"the reputation amount to vote with . if _amount == 0 it will use all voter reputation.","_proposalId":"id of the proposal","_vote":"a value between 0 to and the proposal number of choices.","_voter":"voter address"},"return":"bool true - the proposal has been executed false - otherwise."},"voteInfo(bytes32,address)":{"details":"voteInfo returns the vote and the amount of reputation of the user committed to this proposal","params":{"_proposalId":"the ID of the proposal","_voter":"the address of the voter"},"return":"uint256 vote - the voters vote uint256 reputation - amount of reputation committed by _voter to _proposalId"},"voteStatus(bytes32,uint256)":{"details":"voteStatus returns the reputation voted for a proposal for a specific voting choice.","params":{"_choice":"the index in the","_proposalId":"the ID of the proposal"},"return":"voted reputation for the given choice"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AbsoluteVoteExecuteMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AbsoluteVoteExecuteMock.json new file mode 100644 index 00000000..8d169b98 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AbsoluteVoteExecuteMock.json @@ -0,0 +1 @@ +{"contractName":"AbsoluteVoteExecuteMock","abi":[{"inputs":[{"internalType":"contract Reputation","name":"_reputation","type":"address"},{"internalType":"contract AbsoluteVote","name":"_absoluteVote","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_msg","type":"address"}],"name":"LogAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_msg","type":"bool"}],"name":"LogBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"_msg","type":"bytes"}],"name":"LogBytes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_msg","type":"bytes32"}],"name":"LogBytes32","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"_msg","type":"int256"}],"name":"LogInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_msg","type":"string"}],"name":"LogString","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_msg","type":"uint256"}],"name":"LogUint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"absoluteVote","outputs":[{"internalType":"contract AbsoluteVote","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsBlockNumbers","outputs":[{"internalType":"uint256","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":"reputation","outputs":[{"internalType":"contract Reputation","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_decision","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"burnReputationTest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"setProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Reputation\",\"name\":\"_reputation\",\"type\":\"address\"},{\"internalType\":\"contract AbsoluteVote\",\"name\":\"_absoluteVote\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_msg\",\"type\":\"address\"}],\"name\":\"LogAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_msg\",\"type\":\"bool\"}],\"name\":\"LogBool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"LogBytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_msg\",\"type\":\"bytes32\"}],\"name\":\"LogBytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_msg\",\"type\":\"int256\"}],\"name\":\"LogInt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_msg\",\"type\":\"string\"}],\"name\":\"LogString\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_msg\",\"type\":\"uint256\"}],\"name\":\"LogUint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"absoluteVote\",\"outputs\":[{\"internalType\":\"contract AbsoluteVote\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"burnReputationTest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_decision\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsBlockNumbers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputation\",\"outputs\":[{\"internalType\":\"contract Reputation\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"setProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"constructor\":{\"details\":\"Constructor\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol\":\"AbsoluteVoteExecuteMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol\":{\"keccak256\":\"0xad5c54c20f364aa436ec200d661216fb56794ce07e49be4428cfaeb1fb5e54c1\",\"urls\":[\"bzz-raw://a1850177fb74df2aff42f6fe9edee4c0576d8241c33b62851a70a787cb742433\",\"dweb:/ipfs/QmPrPzJBDTQXpK4nHEtpZkmfMzqr5GG425xwQQbcSaY4qi\"]},\"@daostack/infra/contracts/test/Debug.sol\":{\"keccak256\":\"0xb3562df919e581e90561050c58ac28579762878b5eccdf42ff62ecc293a7504b\",\"urls\":[\"bzz-raw://f0c96a48d8ec70ec0d7ee1acf3f1bcbeaa46e9669672217a6d878d64c7855eeb\",\"dweb:/ipfs/QmTPQqs7kLydbSaXFkdAKzC5h9MBofindPewSgjTpLLT25\"]},\"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol\":{\"keccak256\":\"0x78348cbb6bfe4b1a17ee416413090138e948d931edfaeb073ce9167d9548ddf8\",\"urls\":[\"bzz-raw://6d6b24445c0a9d749b27fd2828752b0c4df9ea0df4d22377f8e06d3a53022de5\",\"dweb:/ipfs/QmcKmuEG6wKpcMfVigDNeqANfbu7y8EgFT6QqSVpQA4Sqi\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"308:2764:53:-;;;789:201;8:9:-1;5:2;;;30:1;27;20:12;5:2;789:201:53;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;789:201:53;;;;;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;-1:-1:-1;;;;;;;;;;;734:40:67;698:6;;734:40;870:10:53;:24;;-1:-1:-1;;;;;870:24:53;;;-1:-1:-1;;;;;;870:24:53;;;;;;;904:12;:28;;;;;;;;;;;;;;;942:41;919:13;-1:-1:-1;;;;;942:17:53;:41;:::i;:::-;789:201;;308:2764;;788:96:63;867:10;788:96;:::o;1928:107:67:-;1061:9;-1:-1:-1;;;;;1061:7:67;:9;:::i;:::-;1053:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28;2019:8;-1:-1:-1;;;;;2000:18:67;:28;:::i;:::-;1928:107;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;-1:-1:-1;;;;;1271:10:67;:12;:::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;2136:225::-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;-1:-1:-1;;;;;;;;;;;2289:38:67;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;308:2764:53:-;;;;;;;","deployedSourceMap":"308:2764:53:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;308:2764:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1786:353;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;1786:353:53;;;;;;;;-1:-1:-1;;;;;1786:353:53;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;459:32;;;:::i;:::-;;;;-1:-1:-1;;;;;459:32:53;;;;;;;;;;;;;;2898:171;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2898:171:53;;;;;;;;:::i;2399:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2399:131:53;;:::i;:::-;;;;;;;;;;;;;;;;;;1642:137:67;;;:::i;:::-;;857:77;;;:::i;1208:92::-;;;:::i;2712:180:53:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2712:180:53;;;;;;;;:::i;1598:182::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1598:182:53;;;;;;;:::i;2220:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2220:173:53;;;-1:-1:-1;;;;;2220:173:53;;;;;;;;;;:::i;2536:170::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2536:170:53;;:::i;1374:218::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1374:218:53;;;;;;;;;;;;;;;;;;;;;;:::i;425:28::-;;;:::i;497:52::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;497:52:53;;:::i;996:183::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;996:183:53;;;-1:-1:-1;;;;;996:183:53;;;;;;;;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;1185:183:53:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1185:183:53;;;-1:-1:-1;;;;;1185:183:53;;;;;;;;;;:::i;1786:353::-;1972:12;;:74;;;-1:-1:-1;;;1972:74:53;;;;;;;;;;;;;;-1:-1:-1;;;;;1972:74:53;;;;;;;;;;;;;;;;1928:7;;;;1972:12;;:20;;:74;;;;;;;;;;;;;;1928:7;1972:12;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;1972:74:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1972:74:53;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1972:74:53;2056:33;;;;:21;1972:74;2056:33;;;;2092:12;2056:48;;1972:74;1786:353;-1:-1:-1;;;;;;;1786:353:53:o;459:32::-;;;-1:-1:-1;;;;;459:32:53;;:::o;2898:171::-;3024:38;;;-1:-1:-1;;;3024:38:53;;3056:4;3024:38;;;;;;2994:7;;-1:-1:-1;;;;;3024:23:53;;;;;:38;;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;3024:38:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3024:38:53;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3024:38:53;;2898:171;-1:-1:-1;;;2898:171:53:o;2399:131::-;2458:4;2474:34;;;:21;:34;;;;;2511:12;2474:49;;2458:4;2399:131::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;2712:180:53:-;2819:10;;2793:7;2850:34;;;:21;:34;;;;;;;;;2819:66;;-1:-1:-1;;;2819:66:53;;-1:-1:-1;;;;;2819:66:53;;;;;;;;;;;;;;;;2793:7;;2819:10;;:22;;:66;;;;;2850:34;;2819:66;;;;;;:10;:66;;;5:2:-1;;;;30:1;27;20:12;1598:182:53;1697:23;;;;;;;;1676:4;;1697:23;;;;;;;;;;1735:17;;;;;;;;;;;;;;;;;-1:-1:-1;1769:4:53;1598:182;;;;:::o;2220:173::-;2348:10;;:38;;;-1:-1:-1;;;2348:38:53;;-1:-1:-1;;;;;2348:38:53;;;;;;;;;;;;;;;2321:4;;2348:10;;;;;:15;;:38;;;;;;;;;;;;;;;2321:4;2348:10;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2348:38:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2348:38:53;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2348:38:53;;2220:173;-1:-1:-1;;;;2220:173:53:o;2536:170::-;2639:10;;2613:7;2664:34;;;:21;:34;;;;;;;;;2639:60;;-1:-1:-1;;;2639:60:53;;;;;;;;;;;2613:7;;-1:-1:-1;;;;;2639:10:53;;:24;;:60;;;;;2664:34;;2639:60;;;;;;:10;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;2639:60:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2639:60:53;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2639:60:53;;2536:170;-1:-1:-1;;2536:170:53:o;1374:218::-;1513:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1540:13:53;-1:-1:-1;;;;;1540:22:53;;1563:12;1577:7;1540:45;;;;;;;;;;;;;-1:-1:-1;;;;;1540:45:53;-1:-1:-1;;;;;1540:45:53;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1540:45:53;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1540:45:53;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1540:45:53;;1374:218;-1:-1:-1;;;;;1374:218:53:o;425:28::-;;;-1:-1:-1;;;;;425:28:53;;:::o;497:52::-;;;;;;;;;;;;;:::o;996:183::-;1107:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1134:10:53;;:38;;;-1:-1:-1;;;1134:38:53;;-1:-1:-1;;;;;1134:38:53;;;;;;;;;;;;;;;:10;;;;;:15;;:38;;;;;;;;;;;;;;:10;;:38;;;5:2:-1;;;;30:1;27;20:12;1928:107:67;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;1185:183:53:-;1296:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1323:10:53;;:38;;;-1:-1:-1;;;1323:38:53;;-1:-1:-1;;;;;1323:38:53;;;;;;;;;;;;;;;:10;;;;;:15;;:38;;;;;;;;;;;;;;:10;;:38;;;5:2:-1;;;;30:1;27;20:12;788:96:63;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity ^0.5.11;\n\nimport \"../votingMachines/ProposalExecuteInterface.sol\";\nimport \"../votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./Debug.sol\";\nimport \"../Reputation.sol\";\nimport \"../votingMachines/AbsoluteVote.sol\";\n\n\ncontract AbsoluteVoteExecuteMock is Debug, VotingMachineCallbacksInterface, ProposalExecuteInterface, Ownable {\n\n Reputation public reputation;\n AbsoluteVote public absoluteVote;\n mapping (bytes32=>uint) public proposalsBlockNumbers;\n\n event NewProposal(\n bytes32 indexed _proposalId,\n address indexed _organization,\n uint256 _numOfChoices,\n address _proposer,\n bytes32 _paramsHash\n );\n\n /**\n * @dev Constructor\n */\n constructor(Reputation _reputation, AbsoluteVote _absoluteVote) public {\n reputation = _reputation;\n absoluteVote = _absoluteVote;\n transferOwnership(address(_absoluteVote));\n }\n\n function mintReputation(uint256 _amount, address _beneficiary, bytes32)\n external\n onlyOwner\n returns(bool)\n {\n return reputation.mint(_beneficiary, _amount);\n }\n\n function burnReputation(uint256 _amount, address _beneficiary, bytes32)\n external\n onlyOwner\n returns(bool)\n {\n return reputation.burn(_beneficiary, _amount);\n }\n\n function stakingTokenTransfer(IERC20 _stakingToken, address _beneficiary, uint256 _amount, bytes32)\n external\n onlyOwner\n returns(bool)\n {\n return _stakingToken.transfer(_beneficiary, _amount);\n }\n\n function executeProposal(bytes32 _proposalId, int _decision) external returns(bool) {\n emit LogBytes32(_proposalId);\n emit LogInt(_decision);\n return true;\n }\n\n function propose(uint256 _numOfChoices, bytes32 _paramsHash, address, address _proposer, address _organization)\n external\n returns\n (bytes32)\n {\n bytes32 proposalId = absoluteVote.propose(_numOfChoices, _paramsHash, _proposer, _organization);\n proposalsBlockNumbers[proposalId] = block.number;\n\n return proposalId;\n }\n\n //this function is used only for testing purpose on this mock contract\n function burnReputationTest(uint256 _amount, address _beneficiary, bytes32)\n external\n returns(bool)\n {\n return reputation.burn(_beneficiary, _amount);\n }\n\n function setProposal(bytes32 _proposalId) external returns(bool) {\n proposalsBlockNumbers[_proposalId] = block.number;\n }\n\n function getTotalReputationSupply(bytes32 _proposalId) external view returns(uint256) {\n return reputation.totalSupplyAt(proposalsBlockNumbers[_proposalId]);\n }\n\n function reputationOf(address _owner, bytes32 _proposalId) external view returns(uint256) {\n return reputation.balanceOfAt(_owner, proposalsBlockNumbers[_proposalId]);\n }\n\n function balanceOfStakingToken(IERC20 _stakingToken, bytes32)\n external\n view\n returns(uint256)\n {\n return _stakingToken.balanceOf(address(this));\n }\n\n}\n","sourcePath":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","ast":{"absolutePath":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","exportedSymbols":{"AbsoluteVoteExecuteMock":[15495]},"id":15496,"nodeType":"SourceUnit","nodes":[{"id":15238,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:53"},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"../votingMachines/ProposalExecuteInterface.sol","id":15239,"nodeType":"ImportDirective","scope":15496,"sourceUnit":19829,"src":"26:56:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"../votingMachines/VotingMachineCallbacksInterface.sol","id":15240,"nodeType":"ImportDirective","scope":15496,"sourceUnit":20032,"src":"83:63:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":15241,"nodeType":"ImportDirective","scope":15496,"sourceUnit":20510,"src":"147:63:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/Debug.sol","file":"./Debug.sol","id":15242,"nodeType":"ImportDirective","scope":15496,"sourceUnit":15527,"src":"211:21:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"../Reputation.sol","id":15243,"nodeType":"ImportDirective","scope":15496,"sourceUnit":15083,"src":"233:27:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","file":"../votingMachines/AbsoluteVote.sol","id":15244,"nodeType":"ImportDirective","scope":15496,"sourceUnit":16619,"src":"261:44:53","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":15245,"name":"Debug","nodeType":"UserDefinedTypeName","referencedDeclaration":15526,"src":"344:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_Debug_$15526","typeString":"contract Debug"}},"id":15246,"nodeType":"InheritanceSpecifier","src":"344:5:53"},{"arguments":null,"baseName":{"contractScope":null,"id":15247,"name":"VotingMachineCallbacksInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":20031,"src":"351:31:53","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":15248,"nodeType":"InheritanceSpecifier","src":"351:31:53"},{"arguments":null,"baseName":{"contractScope":null,"id":15249,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"384:24:53","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":15250,"nodeType":"InheritanceSpecifier","src":"384:24:53"},{"arguments":null,"baseName":{"contractScope":null,"id":15251,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"410:7:53","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":15252,"nodeType":"InheritanceSpecifier","src":"410:7:53"}],"contractDependencies":[15526,19828,20031,20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":15495,"linearizedBaseContracts":[15495,20509,20058,19828,20031,15526],"name":"AbsoluteVoteExecuteMock","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15254,"name":"reputation","nodeType":"VariableDeclaration","scope":15495,"src":"425:28:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15253,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"425:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"constant":false,"id":15256,"name":"absoluteVote","nodeType":"VariableDeclaration","scope":15495,"src":"459:32:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"},"typeName":{"contractScope":null,"id":15255,"name":"AbsoluteVote","nodeType":"UserDefinedTypeName","referencedDeclaration":16618,"src":"459:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"value":null,"visibility":"public"},{"constant":false,"id":15260,"name":"proposalsBlockNumbers","nodeType":"VariableDeclaration","scope":15495,"src":"497:52:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":15259,"keyType":{"id":15257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"506:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"497:23:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":15258,"name":"uint","nodeType":"ElementaryTypeName","src":"515:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":15272,"name":"NewProposal","nodeType":"EventDefinition","parameters":{"id":15271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15262,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15272,"src":"583:27:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15264,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":15272,"src":"620:29:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15263,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15266,"indexed":false,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15272,"src":"659:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15265,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15268,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":15272,"src":"690:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15267,"name":"address","nodeType":"ElementaryTypeName","src":"690:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15270,"indexed":false,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15272,"src":"717:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"717:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"573:169:53"},"src":"556:187:53"},{"body":{"id":15293,"nodeType":"Block","src":"860:130:53","statements":[{"expression":{"argumentTypes":null,"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15279,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"870:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15280,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15274,"src":"883:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"870:24:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15282,"nodeType":"ExpressionStatement","src":"870:24:53"},{"expression":{"argumentTypes":null,"id":15285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15283,"name":"absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"904:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15284,"name":"_absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15276,"src":"919:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"src":"904:28:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"id":15286,"nodeType":"ExpressionStatement","src":"904:28:53"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15289,"name":"_absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15276,"src":"968:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}],"id":15288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"960:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"960:22:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15287,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20484,"src":"942:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"942:41:53","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15292,"nodeType":"ExpressionStatement","src":"942:41:53"}]},"documentation":"@dev Constructor","id":15294,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":15277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15274,"name":"_reputation","nodeType":"VariableDeclaration","scope":15294,"src":"801:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15273,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"801:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"},{"constant":false,"id":15276,"name":"_absoluteVote","nodeType":"VariableDeclaration","scope":15294,"src":"825:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"},"typeName":{"contractScope":null,"id":15275,"name":"AbsoluteVote","nodeType":"UserDefinedTypeName","referencedDeclaration":16618,"src":"825:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"value":null,"visibility":"internal"}],"src":"800:52:53"},"returnParameters":{"id":15278,"nodeType":"ParameterList","parameters":[],"src":"860:0:53"},"scope":15495,"src":"789:201:53","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":15313,"nodeType":"Block","src":"1117:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15309,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15298,"src":"1150:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15310,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15296,"src":"1164:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15307,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"1134:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"1134:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1134:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15306,"id":15312,"nodeType":"Return","src":"1127:45:53"}]},"documentation":null,"id":15314,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15303,"modifierName":{"argumentTypes":null,"id":15302,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1085:9:53","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1085:9:53"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":15301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15296,"name":"_amount","nodeType":"VariableDeclaration","scope":15314,"src":"1020:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15295,"name":"uint256","nodeType":"ElementaryTypeName","src":"1020:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15298,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15314,"src":"1037:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15297,"name":"address","nodeType":"ElementaryTypeName","src":"1037:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15300,"name":"","nodeType":"VariableDeclaration","scope":15314,"src":"1059:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1059:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1019:48:53"},"returnParameters":{"id":15306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15305,"name":"","nodeType":"VariableDeclaration","scope":15314,"src":"1107:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15304,"name":"bool","nodeType":"ElementaryTypeName","src":"1107:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1106:6:53"},"scope":15495,"src":"996:183:53","stateMutability":"nonpayable","superFunction":19981,"visibility":"external"},{"body":{"id":15333,"nodeType":"Block","src":"1306:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15329,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15318,"src":"1339:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15330,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"1353:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15327,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"1323:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"1323:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1323:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15326,"id":15332,"nodeType":"Return","src":"1316:45:53"}]},"documentation":null,"id":15334,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15323,"modifierName":{"argumentTypes":null,"id":15322,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1274:9:53","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1274:9:53"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":15321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15316,"name":"_amount","nodeType":"VariableDeclaration","scope":15334,"src":"1209:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15315,"name":"uint256","nodeType":"ElementaryTypeName","src":"1209:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15318,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15334,"src":"1226:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15317,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15320,"name":"","nodeType":"VariableDeclaration","scope":15334,"src":"1248:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1248:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1208:48:53"},"returnParameters":{"id":15326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15325,"name":"","nodeType":"VariableDeclaration","scope":15334,"src":"1296:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15324,"name":"bool","nodeType":"ElementaryTypeName","src":"1296:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1295:6:53"},"scope":15495,"src":"1185:183:53","stateMutability":"nonpayable","superFunction":19992,"visibility":"external"},{"body":{"id":15355,"nodeType":"Block","src":"1523:69:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15351,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15338,"src":"1563:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15352,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15340,"src":"1577:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15349,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15336,"src":"1540:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"1540:22:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1540:45:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15348,"id":15354,"nodeType":"Return","src":"1533:52:53"}]},"documentation":null,"id":15356,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15345,"modifierName":{"argumentTypes":null,"id":15344,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1491:9:53","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1491:9:53"}],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":15343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15336,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15356,"src":"1404:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15335,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1404:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15338,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15356,"src":"1426:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15337,"name":"address","nodeType":"ElementaryTypeName","src":"1426:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15340,"name":"_amount","nodeType":"VariableDeclaration","scope":15356,"src":"1448:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1448:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15342,"name":"","nodeType":"VariableDeclaration","scope":15356,"src":"1465:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1465:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1403:70:53"},"returnParameters":{"id":15348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15347,"name":"","nodeType":"VariableDeclaration","scope":15356,"src":"1513:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15346,"name":"bool","nodeType":"ElementaryTypeName","src":"1513:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1512:6:53"},"scope":15495,"src":"1374:218:53","stateMutability":"nonpayable","superFunction":20005,"visibility":"external"},{"body":{"id":15375,"nodeType":"Block","src":"1682:98:53","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15366,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15358,"src":"1708:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15365,"name":"LogBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"1697:10:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1697:23:53","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15368,"nodeType":"EmitStatement","src":"1692:28:53"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15370,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15360,"src":"1742:9:53","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":15369,"name":"LogInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"1735:6:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1735:17:53","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15372,"nodeType":"EmitStatement","src":"1730:22:53"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":15373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1769:4:53","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15364,"id":15374,"nodeType":"Return","src":"1762:11:53"}]},"documentation":null,"id":15376,"implemented":true,"kind":"function","modifiers":[],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":15361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15358,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15376,"src":"1623:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15360,"name":"_decision","nodeType":"VariableDeclaration","scope":15376,"src":"1644:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15359,"name":"int","nodeType":"ElementaryTypeName","src":"1644:3:53","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1622:36:53"},"returnParameters":{"id":15364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15363,"name":"","nodeType":"VariableDeclaration","scope":15376,"src":"1676:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15362,"name":"bool","nodeType":"ElementaryTypeName","src":"1676:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1675:6:53"},"scope":15495,"src":"1598:182:53","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":15410,"nodeType":"Block","src":"1941:198:53","statements":[{"assignments":[15392],"declarations":[{"constant":false,"id":15392,"name":"proposalId","nodeType":"VariableDeclaration","scope":15410,"src":"1951:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1951:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":15400,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15395,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15378,"src":"1993:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15396,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15380,"src":"2008:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":15397,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"2021:9:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15398,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15386,"src":"2032:13:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15393,"name":"absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"1972:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"id":15394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":16044,"src":"1972:20:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":15399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1972:74:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1951:95:53"},{"expression":{"argumentTypes":null,"id":15406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15401,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2056:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15403,"indexExpression":{"argumentTypes":null,"id":15402,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15392,"src":"2078:10:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2056:33:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15404,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2092:5:53","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2092:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2056:48:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15407,"nodeType":"ExpressionStatement","src":"2056:48:53"},{"expression":{"argumentTypes":null,"id":15408,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15392,"src":"2122:10:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15390,"id":15409,"nodeType":"Return","src":"2115:17:53"}]},"documentation":null,"id":15411,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":15387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15411,"src":"1803:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15377,"name":"uint256","nodeType":"ElementaryTypeName","src":"1803:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15380,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15411,"src":"1826:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1826:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15382,"name":"","nodeType":"VariableDeclaration","scope":15411,"src":"1847:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15381,"name":"address","nodeType":"ElementaryTypeName","src":"1847:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15384,"name":"_proposer","nodeType":"VariableDeclaration","scope":15411,"src":"1856:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15383,"name":"address","nodeType":"ElementaryTypeName","src":"1856:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15386,"name":"_organization","nodeType":"VariableDeclaration","scope":15411,"src":"1875:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15385,"name":"address","nodeType":"ElementaryTypeName","src":"1875:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1802:95:53"},"returnParameters":{"id":15390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15389,"name":"","nodeType":"VariableDeclaration","scope":15411,"src":"1928:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1928:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1927:9:53"},"scope":15495,"src":"1786:353:53","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15428,"nodeType":"Block","src":"2331:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15424,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15415,"src":"2364:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15425,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"2378:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15422,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"2348:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"2348:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2348:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15421,"id":15427,"nodeType":"Return","src":"2341:45:53"}]},"documentation":null,"id":15429,"implemented":true,"kind":"function","modifiers":[],"name":"burnReputationTest","nodeType":"FunctionDefinition","parameters":{"id":15418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15413,"name":"_amount","nodeType":"VariableDeclaration","scope":15429,"src":"2248:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15412,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15415,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15429,"src":"2265:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15414,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15417,"name":"","nodeType":"VariableDeclaration","scope":15429,"src":"2287:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2287:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2247:48:53"},"returnParameters":{"id":15421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15420,"name":"","nodeType":"VariableDeclaration","scope":15429,"src":"2321:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15419,"name":"bool","nodeType":"ElementaryTypeName","src":"2321:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2320:6:53"},"scope":15495,"src":"2220:173:53","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15443,"nodeType":"Block","src":"2464:66:53","statements":[{"expression":{"argumentTypes":null,"id":15441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15436,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2474:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15438,"indexExpression":{"argumentTypes":null,"id":15437,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15431,"src":"2496:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2474:34:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15439,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2511:5:53","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2511:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2474:49:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15442,"nodeType":"ExpressionStatement","src":"2474:49:53"}]},"documentation":null,"id":15444,"implemented":true,"kind":"function","modifiers":[],"name":"setProposal","nodeType":"FunctionDefinition","parameters":{"id":15432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15431,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15444,"src":"2420:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2420:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2419:21:53"},"returnParameters":{"id":15435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15434,"name":"","nodeType":"VariableDeclaration","scope":15444,"src":"2458:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15433,"name":"bool","nodeType":"ElementaryTypeName","src":"2458:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2457:6:53"},"scope":15495,"src":"2399:131:53","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15458,"nodeType":"Block","src":"2622:84:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15453,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2664:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15455,"indexExpression":{"argumentTypes":null,"id":15454,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"2686:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2664:34:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15451,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"2639:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":14782,"src":"2639:24:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":15456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:60:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15450,"id":15457,"nodeType":"Return","src":"2632:67:53"}]},"documentation":null,"id":15459,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":15447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15446,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15459,"src":"2570:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2570:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2569:21:53"},"returnParameters":{"id":15450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15449,"name":"","nodeType":"VariableDeclaration","scope":15459,"src":"2613:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15448,"name":"uint256","nodeType":"ElementaryTypeName","src":"2613:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2612:9:53"},"scope":15495,"src":"2536:170:53","stateMutability":"view","superFunction":20012,"visibility":"external"},{"body":{"id":15476,"nodeType":"Block","src":"2802:90:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15470,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"2842:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15471,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2850:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15473,"indexExpression":{"argumentTypes":null,"id":15472,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15463,"src":"2872:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2850:34:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15468,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"2819:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"2819:22:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":15474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2819:66:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15467,"id":15475,"nodeType":"Return","src":"2812:73:53"}]},"documentation":null,"id":15477,"implemented":true,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":15464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15461,"name":"_owner","nodeType":"VariableDeclaration","scope":15477,"src":"2734:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15460,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15463,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15477,"src":"2750:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2750:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2733:37:53"},"returnParameters":{"id":15467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15466,"name":"","nodeType":"VariableDeclaration","scope":15477,"src":"2793:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15465,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2792:9:53"},"scope":15495,"src":"2712:180:53","stateMutability":"view","superFunction":20021,"visibility":"external"},{"body":{"id":15493,"nodeType":"Block","src":"3007:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15489,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21213,"src":"3056:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVoteExecuteMock_$15495","typeString":"contract AbsoluteVoteExecuteMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbsoluteVoteExecuteMock_$15495","typeString":"contract AbsoluteVoteExecuteMock"}],"id":15488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3048:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3048:13:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15486,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15479,"src":"3024:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"3024:23:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3024:38:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15485,"id":15492,"nodeType":"Return","src":"3017:45:53"}]},"documentation":null,"id":15494,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":15482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15479,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15494,"src":"2929:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15478,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2929:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15481,"name":"","nodeType":"VariableDeclaration","scope":15494,"src":"2951:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2951:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2928:31:53"},"returnParameters":{"id":15485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15484,"name":"","nodeType":"VariableDeclaration","scope":15494,"src":"2994:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15483,"name":"uint256","nodeType":"ElementaryTypeName","src":"2994:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2993:9:53"},"scope":15495,"src":"2898:171:53","stateMutability":"view","superFunction":20030,"visibility":"external"}],"scope":15496,"src":"308:2764:53"}],"src":"0:3073:53"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/test/AbsoluteVoteExecuteMock.sol","exportedSymbols":{"AbsoluteVoteExecuteMock":[15495]},"id":15496,"nodeType":"SourceUnit","nodes":[{"id":15238,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:53"},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"../votingMachines/ProposalExecuteInterface.sol","id":15239,"nodeType":"ImportDirective","scope":15496,"sourceUnit":19829,"src":"26:56:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"../votingMachines/VotingMachineCallbacksInterface.sol","id":15240,"nodeType":"ImportDirective","scope":15496,"sourceUnit":20032,"src":"83:63:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":15241,"nodeType":"ImportDirective","scope":15496,"sourceUnit":20510,"src":"147:63:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/Debug.sol","file":"./Debug.sol","id":15242,"nodeType":"ImportDirective","scope":15496,"sourceUnit":15527,"src":"211:21:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"../Reputation.sol","id":15243,"nodeType":"ImportDirective","scope":15496,"sourceUnit":15083,"src":"233:27:53","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","file":"../votingMachines/AbsoluteVote.sol","id":15244,"nodeType":"ImportDirective","scope":15496,"sourceUnit":16619,"src":"261:44:53","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":15245,"name":"Debug","nodeType":"UserDefinedTypeName","referencedDeclaration":15526,"src":"344:5:53","typeDescriptions":{"typeIdentifier":"t_contract$_Debug_$15526","typeString":"contract Debug"}},"id":15246,"nodeType":"InheritanceSpecifier","src":"344:5:53"},{"arguments":null,"baseName":{"contractScope":null,"id":15247,"name":"VotingMachineCallbacksInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":20031,"src":"351:31:53","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":15248,"nodeType":"InheritanceSpecifier","src":"351:31:53"},{"arguments":null,"baseName":{"contractScope":null,"id":15249,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"384:24:53","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":15250,"nodeType":"InheritanceSpecifier","src":"384:24:53"},{"arguments":null,"baseName":{"contractScope":null,"id":15251,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"410:7:53","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":15252,"nodeType":"InheritanceSpecifier","src":"410:7:53"}],"contractDependencies":[15526,19828,20031,20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":15495,"linearizedBaseContracts":[15495,20509,20058,19828,20031,15526],"name":"AbsoluteVoteExecuteMock","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15254,"name":"reputation","nodeType":"VariableDeclaration","scope":15495,"src":"425:28:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15253,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"425:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"constant":false,"id":15256,"name":"absoluteVote","nodeType":"VariableDeclaration","scope":15495,"src":"459:32:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"},"typeName":{"contractScope":null,"id":15255,"name":"AbsoluteVote","nodeType":"UserDefinedTypeName","referencedDeclaration":16618,"src":"459:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"value":null,"visibility":"public"},{"constant":false,"id":15260,"name":"proposalsBlockNumbers","nodeType":"VariableDeclaration","scope":15495,"src":"497:52:53","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":15259,"keyType":{"id":15257,"name":"bytes32","nodeType":"ElementaryTypeName","src":"506:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"497:23:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":15258,"name":"uint","nodeType":"ElementaryTypeName","src":"515:4:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":15272,"name":"NewProposal","nodeType":"EventDefinition","parameters":{"id":15271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15262,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15272,"src":"583:27:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15264,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":15272,"src":"620:29:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15263,"name":"address","nodeType":"ElementaryTypeName","src":"620:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15266,"indexed":false,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15272,"src":"659:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15265,"name":"uint256","nodeType":"ElementaryTypeName","src":"659:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15268,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":15272,"src":"690:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15267,"name":"address","nodeType":"ElementaryTypeName","src":"690:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15270,"indexed":false,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15272,"src":"717:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"717:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"573:169:53"},"src":"556:187:53"},{"body":{"id":15293,"nodeType":"Block","src":"860:130:53","statements":[{"expression":{"argumentTypes":null,"id":15281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15279,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"870:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15280,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15274,"src":"883:11:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"870:24:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15282,"nodeType":"ExpressionStatement","src":"870:24:53"},{"expression":{"argumentTypes":null,"id":15285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15283,"name":"absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"904:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15284,"name":"_absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15276,"src":"919:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"src":"904:28:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"id":15286,"nodeType":"ExpressionStatement","src":"904:28:53"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15289,"name":"_absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15276,"src":"968:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}],"id":15288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"960:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"960:22:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15287,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20484,"src":"942:17:53","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"942:41:53","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15292,"nodeType":"ExpressionStatement","src":"942:41:53"}]},"documentation":"@dev Constructor","id":15294,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":15277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15274,"name":"_reputation","nodeType":"VariableDeclaration","scope":15294,"src":"801:22:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15273,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"801:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"},{"constant":false,"id":15276,"name":"_absoluteVote","nodeType":"VariableDeclaration","scope":15294,"src":"825:26:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"},"typeName":{"contractScope":null,"id":15275,"name":"AbsoluteVote","nodeType":"UserDefinedTypeName","referencedDeclaration":16618,"src":"825:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"value":null,"visibility":"internal"}],"src":"800:52:53"},"returnParameters":{"id":15278,"nodeType":"ParameterList","parameters":[],"src":"860:0:53"},"scope":15495,"src":"789:201:53","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":15313,"nodeType":"Block","src":"1117:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15309,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15298,"src":"1150:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15310,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15296,"src":"1164:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15307,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"1134:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"1134:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1134:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15306,"id":15312,"nodeType":"Return","src":"1127:45:53"}]},"documentation":null,"id":15314,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15303,"modifierName":{"argumentTypes":null,"id":15302,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1085:9:53","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1085:9:53"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":15301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15296,"name":"_amount","nodeType":"VariableDeclaration","scope":15314,"src":"1020:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15295,"name":"uint256","nodeType":"ElementaryTypeName","src":"1020:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15298,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15314,"src":"1037:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15297,"name":"address","nodeType":"ElementaryTypeName","src":"1037:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15300,"name":"","nodeType":"VariableDeclaration","scope":15314,"src":"1059:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15299,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1059:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1019:48:53"},"returnParameters":{"id":15306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15305,"name":"","nodeType":"VariableDeclaration","scope":15314,"src":"1107:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15304,"name":"bool","nodeType":"ElementaryTypeName","src":"1107:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1106:6:53"},"scope":15495,"src":"996:183:53","stateMutability":"nonpayable","superFunction":19981,"visibility":"external"},{"body":{"id":15333,"nodeType":"Block","src":"1306:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15329,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15318,"src":"1339:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15330,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15316,"src":"1353:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15327,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"1323:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"1323:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1323:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15326,"id":15332,"nodeType":"Return","src":"1316:45:53"}]},"documentation":null,"id":15334,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15323,"modifierName":{"argumentTypes":null,"id":15322,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1274:9:53","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1274:9:53"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":15321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15316,"name":"_amount","nodeType":"VariableDeclaration","scope":15334,"src":"1209:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15315,"name":"uint256","nodeType":"ElementaryTypeName","src":"1209:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15318,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15334,"src":"1226:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15317,"name":"address","nodeType":"ElementaryTypeName","src":"1226:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15320,"name":"","nodeType":"VariableDeclaration","scope":15334,"src":"1248:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1248:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1208:48:53"},"returnParameters":{"id":15326,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15325,"name":"","nodeType":"VariableDeclaration","scope":15334,"src":"1296:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15324,"name":"bool","nodeType":"ElementaryTypeName","src":"1296:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1295:6:53"},"scope":15495,"src":"1185:183:53","stateMutability":"nonpayable","superFunction":19992,"visibility":"external"},{"body":{"id":15355,"nodeType":"Block","src":"1523:69:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15351,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15338,"src":"1563:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15352,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15340,"src":"1577:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15349,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15336,"src":"1540:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"1540:22:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1540:45:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15348,"id":15354,"nodeType":"Return","src":"1533:52:53"}]},"documentation":null,"id":15356,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15345,"modifierName":{"argumentTypes":null,"id":15344,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1491:9:53","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1491:9:53"}],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":15343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15336,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15356,"src":"1404:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15335,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1404:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15338,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15356,"src":"1426:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15337,"name":"address","nodeType":"ElementaryTypeName","src":"1426:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15340,"name":"_amount","nodeType":"VariableDeclaration","scope":15356,"src":"1448:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15339,"name":"uint256","nodeType":"ElementaryTypeName","src":"1448:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15342,"name":"","nodeType":"VariableDeclaration","scope":15356,"src":"1465:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15341,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1465:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1403:70:53"},"returnParameters":{"id":15348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15347,"name":"","nodeType":"VariableDeclaration","scope":15356,"src":"1513:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15346,"name":"bool","nodeType":"ElementaryTypeName","src":"1513:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1512:6:53"},"scope":15495,"src":"1374:218:53","stateMutability":"nonpayable","superFunction":20005,"visibility":"external"},{"body":{"id":15375,"nodeType":"Block","src":"1682:98:53","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15366,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15358,"src":"1708:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15365,"name":"LogBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"1697:10:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1697:23:53","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15368,"nodeType":"EmitStatement","src":"1692:28:53"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15370,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15360,"src":"1742:9:53","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":15369,"name":"LogInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"1735:6:53","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":15371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1735:17:53","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15372,"nodeType":"EmitStatement","src":"1730:22:53"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":15373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1769:4:53","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15364,"id":15374,"nodeType":"Return","src":"1762:11:53"}]},"documentation":null,"id":15376,"implemented":true,"kind":"function","modifiers":[],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":15361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15358,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15376,"src":"1623:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15357,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15360,"name":"_decision","nodeType":"VariableDeclaration","scope":15376,"src":"1644:13:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15359,"name":"int","nodeType":"ElementaryTypeName","src":"1644:3:53","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1622:36:53"},"returnParameters":{"id":15364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15363,"name":"","nodeType":"VariableDeclaration","scope":15376,"src":"1676:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15362,"name":"bool","nodeType":"ElementaryTypeName","src":"1676:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1675:6:53"},"scope":15495,"src":"1598:182:53","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":15410,"nodeType":"Block","src":"1941:198:53","statements":[{"assignments":[15392],"declarations":[{"constant":false,"id":15392,"name":"proposalId","nodeType":"VariableDeclaration","scope":15410,"src":"1951:18:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15391,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1951:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":15400,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15395,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15378,"src":"1993:13:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15396,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15380,"src":"2008:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":15397,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15384,"src":"2021:9:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15398,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15386,"src":"2032:13:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15393,"name":"absoluteVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15256,"src":"1972:12:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"id":15394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":16044,"src":"1972:20:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":15399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1972:74:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1951:95:53"},{"expression":{"argumentTypes":null,"id":15406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15401,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2056:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15403,"indexExpression":{"argumentTypes":null,"id":15402,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15392,"src":"2078:10:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2056:33:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15404,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2092:5:53","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2092:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2056:48:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15407,"nodeType":"ExpressionStatement","src":"2056:48:53"},{"expression":{"argumentTypes":null,"id":15408,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15392,"src":"2122:10:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15390,"id":15409,"nodeType":"Return","src":"2115:17:53"}]},"documentation":null,"id":15411,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":15387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15378,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15411,"src":"1803:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15377,"name":"uint256","nodeType":"ElementaryTypeName","src":"1803:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15380,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15411,"src":"1826:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1826:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15382,"name":"","nodeType":"VariableDeclaration","scope":15411,"src":"1847:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15381,"name":"address","nodeType":"ElementaryTypeName","src":"1847:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15384,"name":"_proposer","nodeType":"VariableDeclaration","scope":15411,"src":"1856:17:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15383,"name":"address","nodeType":"ElementaryTypeName","src":"1856:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15386,"name":"_organization","nodeType":"VariableDeclaration","scope":15411,"src":"1875:21:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15385,"name":"address","nodeType":"ElementaryTypeName","src":"1875:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1802:95:53"},"returnParameters":{"id":15390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15389,"name":"","nodeType":"VariableDeclaration","scope":15411,"src":"1928:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15388,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1928:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1927:9:53"},"scope":15495,"src":"1786:353:53","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15428,"nodeType":"Block","src":"2331:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15424,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15415,"src":"2364:12:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15425,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15413,"src":"2378:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15422,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"2348:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"2348:15:53","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2348:38:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15421,"id":15427,"nodeType":"Return","src":"2341:45:53"}]},"documentation":null,"id":15429,"implemented":true,"kind":"function","modifiers":[],"name":"burnReputationTest","nodeType":"FunctionDefinition","parameters":{"id":15418,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15413,"name":"_amount","nodeType":"VariableDeclaration","scope":15429,"src":"2248:15:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15412,"name":"uint256","nodeType":"ElementaryTypeName","src":"2248:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15415,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15429,"src":"2265:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15414,"name":"address","nodeType":"ElementaryTypeName","src":"2265:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15417,"name":"","nodeType":"VariableDeclaration","scope":15429,"src":"2287:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15416,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2287:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2247:48:53"},"returnParameters":{"id":15421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15420,"name":"","nodeType":"VariableDeclaration","scope":15429,"src":"2321:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15419,"name":"bool","nodeType":"ElementaryTypeName","src":"2321:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2320:6:53"},"scope":15495,"src":"2220:173:53","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15443,"nodeType":"Block","src":"2464:66:53","statements":[{"expression":{"argumentTypes":null,"id":15441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15436,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2474:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15438,"indexExpression":{"argumentTypes":null,"id":15437,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15431,"src":"2496:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2474:34:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15439,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2511:5:53","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2511:12:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2474:49:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15442,"nodeType":"ExpressionStatement","src":"2474:49:53"}]},"documentation":null,"id":15444,"implemented":true,"kind":"function","modifiers":[],"name":"setProposal","nodeType":"FunctionDefinition","parameters":{"id":15432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15431,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15444,"src":"2420:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15430,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2420:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2419:21:53"},"returnParameters":{"id":15435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15434,"name":"","nodeType":"VariableDeclaration","scope":15444,"src":"2458:4:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15433,"name":"bool","nodeType":"ElementaryTypeName","src":"2458:4:53","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2457:6:53"},"scope":15495,"src":"2399:131:53","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15458,"nodeType":"Block","src":"2622:84:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15453,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2664:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15455,"indexExpression":{"argumentTypes":null,"id":15454,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15446,"src":"2686:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2664:34:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15451,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"2639:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":14782,"src":"2639:24:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":15456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:60:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15450,"id":15457,"nodeType":"Return","src":"2632:67:53"}]},"documentation":null,"id":15459,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":15447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15446,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15459,"src":"2570:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15445,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2570:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2569:21:53"},"returnParameters":{"id":15450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15449,"name":"","nodeType":"VariableDeclaration","scope":15459,"src":"2613:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15448,"name":"uint256","nodeType":"ElementaryTypeName","src":"2613:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2612:9:53"},"scope":15495,"src":"2536:170:53","stateMutability":"view","superFunction":20012,"visibility":"external"},{"body":{"id":15476,"nodeType":"Block","src":"2802:90:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15470,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15461,"src":"2842:6:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15471,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15260,"src":"2850:21:53","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15473,"indexExpression":{"argumentTypes":null,"id":15472,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15463,"src":"2872:11:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2850:34:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15468,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15254,"src":"2819:10:53","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"2819:22:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":15474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2819:66:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15467,"id":15475,"nodeType":"Return","src":"2812:73:53"}]},"documentation":null,"id":15477,"implemented":true,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":15464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15461,"name":"_owner","nodeType":"VariableDeclaration","scope":15477,"src":"2734:14:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15460,"name":"address","nodeType":"ElementaryTypeName","src":"2734:7:53","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15463,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15477,"src":"2750:19:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15462,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2750:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2733:37:53"},"returnParameters":{"id":15467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15466,"name":"","nodeType":"VariableDeclaration","scope":15477,"src":"2793:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15465,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2792:9:53"},"scope":15495,"src":"2712:180:53","stateMutability":"view","superFunction":20021,"visibility":"external"},{"body":{"id":15493,"nodeType":"Block","src":"3007:62:53","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15489,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21213,"src":"3056:4:53","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVoteExecuteMock_$15495","typeString":"contract AbsoluteVoteExecuteMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_AbsoluteVoteExecuteMock_$15495","typeString":"contract AbsoluteVoteExecuteMock"}],"id":15488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3048:7:53","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3048:13:53","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15486,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15479,"src":"3024:13:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"3024:23:53","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":15491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3024:38:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15485,"id":15492,"nodeType":"Return","src":"3017:45:53"}]},"documentation":null,"id":15494,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":15482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15479,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15494,"src":"2929:20:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15478,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2929:6:53","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15481,"name":"","nodeType":"VariableDeclaration","scope":15494,"src":"2951:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15480,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2951:7:53","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2928:31:53"},"returnParameters":{"id":15485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15484,"name":"","nodeType":"VariableDeclaration","scope":15494,"src":"2994:7:53","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15483,"name":"uint256","nodeType":"ElementaryTypeName","src":"2994:7:53","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2993:9:53"},"scope":15495,"src":"2898:171:53","stateMutability":"view","superFunction":20030,"visibility":"external"}],"scope":15496,"src":"308:2764:53"}],"src":"0:3073:53"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.236Z","devdoc":{"methods":{"constructor":{"details":"Constructor"},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ActionMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ActionMock.json new file mode 100644 index 00000000..bd18e3aa --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ActionMock.json @@ -0,0 +1 @@ +{"contractName":"ActionMock","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ReceiveEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_addr","type":"address"}],"name":"WithoutReturnValue","type":"event"},{"constant":true,"inputs":[],"name":"activationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_a","type":"uint256"},{"internalType":"address","name":"_b","type":"address"},{"internalType":"bytes32","name":"_c","type":"bytes32"}],"name":"test","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"test2","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"withoutReturnValue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_activationTime","type":"uint256"}],"name":"setActivationTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"test3","outputs":[],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"ReceiveEther\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"WithoutReturnValue\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"activationTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_activationTime\",\"type\":\"uint256\"}],\"name\":\"setActivationTime\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_a\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_b\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_c\",\"type\":\"bytes32\"}],\"name\":\"test\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"test2\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"test3\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addr\",\"type\":\"address\"}],\"name\":\"withoutReturnValue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/ActionMock.sol\":\"ActionMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/test/ActionMock.sol\":{\"keccak256\":\"0x54964259e40ce2d3949f91049a258777f82c806eb5c5432b51c10ba648f676ee\",\"urls\":[\"bzz-raw://20a957b7b61e1f969031bb0ef14ac9df06f1ae7f7de52558277eecd47fcea014\",\"dweb:/ipfs/Qmd7eoq95LGp4QSoGFYNnneJ5D8gYzNhzXXXFSV7GyyeBr\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"62:1129:26:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:1129:26;;;;;;;","deployedSourceMap":"62:1129:26:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1011:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1011:177:26;;;:::i;:::-;;722:172;;8:9:-1;5:2;;;30:1;27;20:12;5:2;722:172:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;722:172:26;-1:-1:-1;;;;;722:172:26;;:::i;900:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;900:105:26;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;900:105:26;;:::i;554:162::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;554:162:26;-1:-1:-1;;;;;554:162:26;;:::i;:::-;;;;;;;;;;;;;;;;;;200:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;200:26:26;;;:::i;:::-;;;;;;;;;;;;;;;;233:315;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;233:315:26;;;-1:-1:-1;;;;;233:315:26;;;;;;;;;;:::i;1011:177::-;1116:14;;1110:3;:20;1102:79;;;;-1:-1:-1;;;1102:79:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1011:177::o;722:172::-;790:10;-1:-1:-1;;;;;790:19:26;;;782:65;;;;-1:-1:-1;;;782:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;862:25;;;-1:-1:-1;;;;;862:25:26;;;;;;;;;;;;;;;722:172;:::o;900:105::-;966:14;:32;900:105::o;554:162::-;607:4;631:10;-1:-1:-1;;;;;631:19:26;;;623:65;;;;-1:-1:-1;;;623:65:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;705:4:26;554:162;;;:::o;200:26::-;;;;:::o;233:315::-;306:7;333:2;339:1;333:7;325:16;;;;;;-1:-1:-1;;;;;359:19:26;;373:4;359:19;351:28;;;;;;-1:-1:-1;;;397:72:26;;389:81;;;;;;485:35;;;510:9;485:35;;;;498:10;;485:35;;;;;;;;;;-1:-1:-1;;;540:1:26;537:4;;233:315::o","source":"pragma solidity 0.5.13;\n\nimport \"../controller/Avatar.sol\";\n\n\ncontract ActionMock {\n\n event WithoutReturnValue(address _addr);\n event ReceiveEther(address indexed _sender, uint256 _value);\n\n uint public activationTime;\n\n function test(uint256 _a, address _b, bytes32 _c) public payable returns(uint256) {\n require(_a == 7);\n require(_b == address(this));\n require(_c == 0x1234000000000000000000000000000000000000000000000000000000000000);\n emit ReceiveEther(msg.sender, msg.value);\n return _a*2;\n }\n\n function test2(address _addr) public payable returns(bool) {\n require(msg.sender == _addr, \"the caller must be equal to _addr\");\n return true;\n }\n\n function withoutReturnValue(address _addr) public {\n require(msg.sender == _addr, \"the caller must be equal to _addr\");\n emit WithoutReturnValue(_addr);\n }\n\n function setActivationTime(uint _activationTime) public {\n activationTime = _activationTime;\n }\n\n function test3() public view {\n // solhint-disable-next-line not-rely-on-time\n require(now > activationTime, \"now should be greater than the activation time\");\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/ActionMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ActionMock.sol","exportedSymbols":{"ActionMock":[8819]},"id":8820,"nodeType":"SourceUnit","nodes":[{"id":8705,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:26"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":8706,"nodeType":"ImportDirective","scope":8820,"sourceUnit":338,"src":"25:34:26","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8819,"linearizedBaseContracts":[8819],"name":"ActionMock","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8710,"name":"WithoutReturnValue","nodeType":"EventDefinition","parameters":{"id":8709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8708,"indexed":false,"name":"_addr","nodeType":"VariableDeclaration","scope":8710,"src":"114:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8707,"name":"address","nodeType":"ElementaryTypeName","src":"114:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"113:15:26"},"src":"89:40:26"},{"anonymous":false,"documentation":null,"id":8716,"name":"ReceiveEther","nodeType":"EventDefinition","parameters":{"id":8715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":8716,"src":"153:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8711,"name":"address","nodeType":"ElementaryTypeName","src":"153:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8714,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":8716,"src":"178:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8713,"name":"uint256","nodeType":"ElementaryTypeName","src":"178:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"152:41:26"},"src":"134:60:26"},{"constant":false,"id":8718,"name":"activationTime","nodeType":"VariableDeclaration","scope":8819,"src":"200:26:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8717,"name":"uint","nodeType":"ElementaryTypeName","src":"200:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":8760,"nodeType":"Block","src":"315:233:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8730,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8720,"src":"333:2:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"37","id":8731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"339:1:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"333:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"325:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"325:16:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8734,"nodeType":"ExpressionStatement","src":"325:16:26"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8736,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8722,"src":"359:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8738,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21221,"src":"373:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_ActionMock_$8819","typeString":"contract ActionMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ActionMock_$8819","typeString":"contract ActionMock"}],"id":8737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"365:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"365:13:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"359:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8735,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"351:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"351:28:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8742,"nodeType":"ExpressionStatement","src":"351:28:26"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8744,"name":"_c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"397:2:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"307831323334303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":8745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"403:66:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8233507321867270975858166353462000283756074959440384344846684898023608156160_by_1","typeString":"int_const 8233...(68 digits omitted)...6160"},"value":"0x1234000000000000000000000000000000000000000000000000000000000000"},"src":"397:72:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"389:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"389:81:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8748,"nodeType":"ExpressionStatement","src":"389:81:26"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8750,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"498:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"498:10:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8752,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"510:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"510:9:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8749,"name":"ReceiveEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8716,"src":"485:12:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"485:35:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8755,"nodeType":"EmitStatement","src":"480:40:26"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8756,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8720,"src":"537:2:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"32","id":8757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:1:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"537:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8728,"id":8759,"nodeType":"Return","src":"530:11:26"}]},"documentation":null,"id":8761,"implemented":true,"kind":"function","modifiers":[],"name":"test","nodeType":"FunctionDefinition","parameters":{"id":8725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8720,"name":"_a","nodeType":"VariableDeclaration","scope":8761,"src":"247:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8719,"name":"uint256","nodeType":"ElementaryTypeName","src":"247:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8722,"name":"_b","nodeType":"VariableDeclaration","scope":8761,"src":"259:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8721,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8724,"name":"_c","nodeType":"VariableDeclaration","scope":8761,"src":"271:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"246:36:26"},"returnParameters":{"id":8728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8727,"name":"","nodeType":"VariableDeclaration","scope":8761,"src":"306:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8726,"name":"uint256","nodeType":"ElementaryTypeName","src":"306:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"305:9:26"},"scope":8819,"src":"233:315:26","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":8778,"nodeType":"Block","src":"613:103:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8769,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"631:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"631:10:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":8771,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8763,"src":"645:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"631:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7468652063616c6c6572206d75737420626520657175616c20746f205f61646472","id":8773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"652:35:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""},"value":"the caller must be equal to _addr"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""}],"id":8768,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"623:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"623:65:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8775,"nodeType":"ExpressionStatement","src":"623:65:26"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":8776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"705:4:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8767,"id":8777,"nodeType":"Return","src":"698:11:26"}]},"documentation":null,"id":8779,"implemented":true,"kind":"function","modifiers":[],"name":"test2","nodeType":"FunctionDefinition","parameters":{"id":8764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8763,"name":"_addr","nodeType":"VariableDeclaration","scope":8779,"src":"569:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8762,"name":"address","nodeType":"ElementaryTypeName","src":"569:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"568:15:26"},"returnParameters":{"id":8767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8766,"name":"","nodeType":"VariableDeclaration","scope":8779,"src":"607:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8765,"name":"bool","nodeType":"ElementaryTypeName","src":"607:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"606:6:26"},"scope":8819,"src":"554:162:26","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":8796,"nodeType":"Block","src":"772:122:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8785,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"790:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"790:10:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":8787,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"804:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"790:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7468652063616c6c6572206d75737420626520657175616c20746f205f61646472","id":8789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"811:35:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""},"value":"the caller must be equal to _addr"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""}],"id":8784,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"782:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"782:65:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8791,"nodeType":"ExpressionStatement","src":"782:65:26"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8793,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"881:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8792,"name":"WithoutReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8710,"src":"862:18:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"862:25:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8795,"nodeType":"EmitStatement","src":"857:30:26"}]},"documentation":null,"id":8797,"implemented":true,"kind":"function","modifiers":[],"name":"withoutReturnValue","nodeType":"FunctionDefinition","parameters":{"id":8782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8781,"name":"_addr","nodeType":"VariableDeclaration","scope":8797,"src":"750:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8780,"name":"address","nodeType":"ElementaryTypeName","src":"750:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"749:15:26"},"returnParameters":{"id":8783,"nodeType":"ParameterList","parameters":[],"src":"772:0:26"},"scope":8819,"src":"722:172:26","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8806,"nodeType":"Block","src":"956:49:26","statements":[{"expression":{"argumentTypes":null,"id":8804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8802,"name":"activationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"966:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8803,"name":"_activationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"983:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"966:32:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8805,"nodeType":"ExpressionStatement","src":"966:32:26"}]},"documentation":null,"id":8807,"implemented":true,"kind":"function","modifiers":[],"name":"setActivationTime","nodeType":"FunctionDefinition","parameters":{"id":8800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8799,"name":"_activationTime","nodeType":"VariableDeclaration","scope":8807,"src":"927:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8798,"name":"uint","nodeType":"ElementaryTypeName","src":"927:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"926:22:26"},"returnParameters":{"id":8801,"nodeType":"ParameterList","parameters":[],"src":"956:0:26"},"scope":8819,"src":"900:105:26","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8817,"nodeType":"Block","src":"1040:148:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8811,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"1110:3:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":8812,"name":"activationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"1116:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1110:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f772073686f756c642062652067726561746572207468616e207468652061637469766174696f6e2074696d65","id":8814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1132:48:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c6fc58e8b9b20e8e9c465c140de551c20fb645173a170b7b5a664a59f52361fd","typeString":"literal_string \"now should be greater than the activation time\""},"value":"now should be greater than the activation time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6fc58e8b9b20e8e9c465c140de551c20fb645173a170b7b5a664a59f52361fd","typeString":"literal_string \"now should be greater than the activation time\""}],"id":8810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1102:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1102:79:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8816,"nodeType":"ExpressionStatement","src":"1102:79:26"}]},"documentation":null,"id":8818,"implemented":true,"kind":"function","modifiers":[],"name":"test3","nodeType":"FunctionDefinition","parameters":{"id":8808,"nodeType":"ParameterList","parameters":[],"src":"1025:2:26"},"returnParameters":{"id":8809,"nodeType":"ParameterList","parameters":[],"src":"1040:0:26"},"scope":8819,"src":"1011:177:26","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":8820,"src":"62:1129:26"}],"src":"0:1192:26"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ActionMock.sol","exportedSymbols":{"ActionMock":[8819]},"id":8820,"nodeType":"SourceUnit","nodes":[{"id":8705,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:26"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":8706,"nodeType":"ImportDirective","scope":8820,"sourceUnit":338,"src":"25:34:26","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8819,"linearizedBaseContracts":[8819],"name":"ActionMock","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8710,"name":"WithoutReturnValue","nodeType":"EventDefinition","parameters":{"id":8709,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8708,"indexed":false,"name":"_addr","nodeType":"VariableDeclaration","scope":8710,"src":"114:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8707,"name":"address","nodeType":"ElementaryTypeName","src":"114:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"113:15:26"},"src":"89:40:26"},{"anonymous":false,"documentation":null,"id":8716,"name":"ReceiveEther","nodeType":"EventDefinition","parameters":{"id":8715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8712,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":8716,"src":"153:23:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8711,"name":"address","nodeType":"ElementaryTypeName","src":"153:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8714,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":8716,"src":"178:14:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8713,"name":"uint256","nodeType":"ElementaryTypeName","src":"178:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"152:41:26"},"src":"134:60:26"},{"constant":false,"id":8718,"name":"activationTime","nodeType":"VariableDeclaration","scope":8819,"src":"200:26:26","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8717,"name":"uint","nodeType":"ElementaryTypeName","src":"200:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":8760,"nodeType":"Block","src":"315:233:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8730,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8720,"src":"333:2:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"37","id":8731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"339:1:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"333:7:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"325:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"325:16:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8734,"nodeType":"ExpressionStatement","src":"325:16:26"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8736,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8722,"src":"359:2:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8738,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21221,"src":"373:4:26","typeDescriptions":{"typeIdentifier":"t_contract$_ActionMock_$8819","typeString":"contract ActionMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ActionMock_$8819","typeString":"contract ActionMock"}],"id":8737,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"365:7:26","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"365:13:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"359:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8735,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"351:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"351:28:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8742,"nodeType":"ExpressionStatement","src":"351:28:26"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":8746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8744,"name":"_c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8724,"src":"397:2:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"307831323334303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030","id":8745,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"403:66:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8233507321867270975858166353462000283756074959440384344846684898023608156160_by_1","typeString":"int_const 8233...(68 digits omitted)...6160"},"value":"0x1234000000000000000000000000000000000000000000000000000000000000"},"src":"397:72:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8743,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"389:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"389:81:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8748,"nodeType":"ExpressionStatement","src":"389:81:26"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8750,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"498:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"498:10:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8752,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"510:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"510:9:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8749,"name":"ReceiveEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8716,"src":"485:12:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"485:35:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8755,"nodeType":"EmitStatement","src":"480:40:26"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8756,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8720,"src":"537:2:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"32","id":8757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"540:1:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"537:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8728,"id":8759,"nodeType":"Return","src":"530:11:26"}]},"documentation":null,"id":8761,"implemented":true,"kind":"function","modifiers":[],"name":"test","nodeType":"FunctionDefinition","parameters":{"id":8725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8720,"name":"_a","nodeType":"VariableDeclaration","scope":8761,"src":"247:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8719,"name":"uint256","nodeType":"ElementaryTypeName","src":"247:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8722,"name":"_b","nodeType":"VariableDeclaration","scope":8761,"src":"259:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8721,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8724,"name":"_c","nodeType":"VariableDeclaration","scope":8761,"src":"271:10:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8723,"name":"bytes32","nodeType":"ElementaryTypeName","src":"271:7:26","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"246:36:26"},"returnParameters":{"id":8728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8727,"name":"","nodeType":"VariableDeclaration","scope":8761,"src":"306:7:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8726,"name":"uint256","nodeType":"ElementaryTypeName","src":"306:7:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"305:9:26"},"scope":8819,"src":"233:315:26","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":8778,"nodeType":"Block","src":"613:103:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8769,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"631:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"631:10:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":8771,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8763,"src":"645:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"631:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7468652063616c6c6572206d75737420626520657175616c20746f205f61646472","id":8773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"652:35:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""},"value":"the caller must be equal to _addr"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""}],"id":8768,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"623:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"623:65:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8775,"nodeType":"ExpressionStatement","src":"623:65:26"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":8776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"705:4:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8767,"id":8777,"nodeType":"Return","src":"698:11:26"}]},"documentation":null,"id":8779,"implemented":true,"kind":"function","modifiers":[],"name":"test2","nodeType":"FunctionDefinition","parameters":{"id":8764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8763,"name":"_addr","nodeType":"VariableDeclaration","scope":8779,"src":"569:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8762,"name":"address","nodeType":"ElementaryTypeName","src":"569:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"568:15:26"},"returnParameters":{"id":8767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8766,"name":"","nodeType":"VariableDeclaration","scope":8779,"src":"607:4:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8765,"name":"bool","nodeType":"ElementaryTypeName","src":"607:4:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"606:6:26"},"scope":8819,"src":"554:162:26","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":8796,"nodeType":"Block","src":"772:122:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8785,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"790:3:26","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"790:10:26","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":8787,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"804:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"790:19:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7468652063616c6c6572206d75737420626520657175616c20746f205f61646472","id":8789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"811:35:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""},"value":"the caller must be equal to _addr"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f05ac7fc4aff63317a7738e1b80ec54dd974d44f2fb2518de5bdaacb47b456c8","typeString":"literal_string \"the caller must be equal to _addr\""}],"id":8784,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"782:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"782:65:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8791,"nodeType":"ExpressionStatement","src":"782:65:26"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8793,"name":"_addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8781,"src":"881:5:26","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8792,"name":"WithoutReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8710,"src":"862:18:26","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":8794,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"862:25:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8795,"nodeType":"EmitStatement","src":"857:30:26"}]},"documentation":null,"id":8797,"implemented":true,"kind":"function","modifiers":[],"name":"withoutReturnValue","nodeType":"FunctionDefinition","parameters":{"id":8782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8781,"name":"_addr","nodeType":"VariableDeclaration","scope":8797,"src":"750:13:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8780,"name":"address","nodeType":"ElementaryTypeName","src":"750:7:26","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"749:15:26"},"returnParameters":{"id":8783,"nodeType":"ParameterList","parameters":[],"src":"772:0:26"},"scope":8819,"src":"722:172:26","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8806,"nodeType":"Block","src":"956:49:26","statements":[{"expression":{"argumentTypes":null,"id":8804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8802,"name":"activationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"966:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8803,"name":"_activationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8799,"src":"983:15:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"966:32:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8805,"nodeType":"ExpressionStatement","src":"966:32:26"}]},"documentation":null,"id":8807,"implemented":true,"kind":"function","modifiers":[],"name":"setActivationTime","nodeType":"FunctionDefinition","parameters":{"id":8800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8799,"name":"_activationTime","nodeType":"VariableDeclaration","scope":8807,"src":"927:20:26","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8798,"name":"uint","nodeType":"ElementaryTypeName","src":"927:4:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"926:22:26"},"returnParameters":{"id":8801,"nodeType":"ParameterList","parameters":[],"src":"956:0:26"},"scope":8819,"src":"900:105:26","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8817,"nodeType":"Block","src":"1040:148:26","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8811,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"1110:3:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":8812,"name":"activationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8718,"src":"1116:14:26","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1110:20:26","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f772073686f756c642062652067726561746572207468616e207468652061637469766174696f6e2074696d65","id":8814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1132:48:26","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c6fc58e8b9b20e8e9c465c140de551c20fb645173a170b7b5a664a59f52361fd","typeString":"literal_string \"now should be greater than the activation time\""},"value":"now should be greater than the activation time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c6fc58e8b9b20e8e9c465c140de551c20fb645173a170b7b5a664a59f52361fd","typeString":"literal_string \"now should be greater than the activation time\""}],"id":8810,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1102:7:26","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1102:79:26","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8816,"nodeType":"ExpressionStatement","src":"1102:79:26"}]},"documentation":null,"id":8818,"implemented":true,"kind":"function","modifiers":[],"name":"test3","nodeType":"FunctionDefinition","parameters":{"id":8808,"nodeType":"ParameterList","parameters":[],"src":"1025:2:26"},"returnParameters":{"id":8809,"nodeType":"ParameterList","parameters":[],"src":"1040:0:26"},"scope":8819,"src":"1011:177:26","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":8820,"src":"62:1129:26"}],"src":"0:1192:26"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.142Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Address.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Address.json new file mode 100644 index 00000000..dd120ee0 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Address.json @@ -0,0 +1 @@ +{"contractName":"Address","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/utils/Address.sol\":\"Address\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"93:2919:71:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","deployedSourceMap":"93:2919:71:-;;;;;;;;","source":"pragma solidity ^0.5.5;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * This test is non-exhaustive, and there may be false-negatives: during the\n * execution of a contract's constructor, its address will be reported as\n * not containing a contract.\n *\n * IMPORTANT: It is unsafe to assume that an address for which this\n * function returns false is an externally-owned account (EOA) and not a\n * contract.\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies in extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n // According to EIP-1052, 0x0 is the value returned for not-yet created accounts\n // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned\n // for accounts without code, i.e. `keccak256('')`\n bytes32 codehash;\n bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;\n // solhint-disable-next-line no-inline-assembly\n assembly { codehash := extcodehash(account) }\n return (codehash != 0x0 && codehash != accountHash);\n }\n\n /**\n * @dev Converts an `address` into `address payable`. Note that this is\n * simply a type cast: the actual underlying value is not changed.\n *\n * _Available since v2.4.0._\n */\n function toPayable(address account) internal pure returns (address payable) {\n return address(uint160(account));\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n *\n * _Available since v2.4.0._\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-call-value\n (bool success, ) = recipient.call.value(amount)(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/utils/Address.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/utils/Address.sol","exportedSymbols":{"Address":[21092]},"id":21093,"nodeType":"SourceUnit","nodes":[{"id":21019,"literals":["solidity","^","0.5",".5"],"nodeType":"PragmaDirective","src":"0:23:71"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Collection of functions related to the address type","fullyImplemented":true,"id":21092,"linearizedBaseContracts":[21092],"name":"Address","nodeType":"ContractDefinition","nodes":[{"body":{"id":21043,"nodeType":"Block","src":"623:731:71","statements":[{"assignments":[21027],"declarations":[{"constant":false,"id":21027,"name":"codehash","nodeType":"VariableDeclaration","scope":21043,"src":"1062:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1062:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":21028,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1062:16:71"},{"assignments":[21030],"declarations":[{"constant":false,"id":21030,"name":"accountHash","nodeType":"VariableDeclaration","scope":21043,"src":"1088:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1088:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":21032,"initialValue":{"argumentTypes":null,"hexValue":"307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730","id":21031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1110:66:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_89477152217924674838424037953991966239322087453347756267410168184682657981552_by_1","typeString":"int_const 8947...(69 digits omitted)...1552"},"value":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"},"nodeType":"VariableDeclarationStatement","src":"1088:88:71"},{"externalReferences":[{"codehash":{"declaration":21027,"isOffset":false,"isSlot":false,"src":"1253:8:71","valueSize":1}},{"account":{"declaration":21021,"isOffset":false,"isSlot":false,"src":"1277:7:71","valueSize":1}}],"id":21033,"nodeType":"InlineAssembly","operations":"{\n codehash := extcodehash(account)\n}","src":"1242:45:71"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":21034,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21027,"src":"1304:8:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"307830","id":21035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1316:3:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"src":"1304:15:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":21037,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21027,"src":"1323:8:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"id":21038,"name":"accountHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21030,"src":"1335:11:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1323:23:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1304:42:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":21041,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1303:44:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":21025,"id":21042,"nodeType":"Return","src":"1296:51:71"}]},"documentation":"@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * IMPORTANT: It is unsafe to assume that an address for which this\nfunction returns false is an externally-owned account (EOA) and not a\ncontract.","id":21044,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nodeType":"FunctionDefinition","parameters":{"id":21022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21021,"name":"account","nodeType":"VariableDeclaration","scope":21044,"src":"577:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21020,"name":"address","nodeType":"ElementaryTypeName","src":"577:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"576:17:71"},"returnParameters":{"id":21025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21024,"name":"","nodeType":"VariableDeclaration","scope":21044,"src":"617:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21023,"name":"bool","nodeType":"ElementaryTypeName","src":"617:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"616:6:71"},"scope":21092,"src":"557:797:71","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":21057,"nodeType":"Block","src":"1639:49:71","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":21053,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21046,"src":"1672:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1664:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":"uint160"},"id":21054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1664:16:71","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":21051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1656:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":21055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1656:25:71","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":21050,"id":21056,"nodeType":"Return","src":"1649:32:71"}]},"documentation":"@dev Converts an `address` into `address payable`. Note that this is\nsimply a type cast: the actual underlying value is not changed.\n * _Available since v2.4.0._","id":21058,"implemented":true,"kind":"function","modifiers":[],"name":"toPayable","nodeType":"FunctionDefinition","parameters":{"id":21047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21046,"name":"account","nodeType":"VariableDeclaration","scope":21058,"src":"1582:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21045,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1581:17:71"},"returnParameters":{"id":21050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21049,"name":"","nodeType":"VariableDeclaration","scope":21058,"src":"1622:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":21048,"name":"address","nodeType":"ElementaryTypeName","src":"1622:15:71","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"1621:17:71"},"scope":21092,"src":"1563:125:71","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":21090,"nodeType":"Block","src":"2716:294:71","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":21067,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21139,"src":"2742:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}],"id":21066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":21068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2734:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2734:21:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":21070,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21062,"src":"2759:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":21072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2767:31:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":21065,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2726:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2726:73:71","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21074,"nodeType":"ExpressionStatement","src":"2726:73:71"},{"assignments":[21076,null],"declarations":[{"constant":false,"id":21076,"name":"success","nodeType":"VariableDeclaration","scope":21090,"src":"2865:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21075,"name":"bool","nodeType":"ElementaryTypeName","src":"2865:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":21084,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"","id":21082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2912:2:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"arguments":[{"argumentTypes":null,"id":21080,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21062,"src":"2904:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":21077,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21060,"src":"2883:9:71","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":21078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2883:14:71","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":21079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2883:20:71","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":21081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2883:28:71","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":21083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2883:32:71","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2864:51:71"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":21086,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"2933:7:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":21087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2942:60:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":21085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2925:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2925:78:71","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21089,"nodeType":"ExpressionStatement","src":"2925:78:71"}]},"documentation":"@dev Replacement for Solidity's `transfer`: sends `amount` wei to\n`recipient`, forwarding all available gas and reverting on errors.\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\nof certain opcodes, possibly making contracts go over the 2300 gas limit\nimposed by `transfer`, making them unable to receive funds via\n`transfer`. {sendValue} removes this limitation.\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n * IMPORTANT: because control is transferred to `recipient`, care must be\ntaken to not create reentrancy vulnerabilities. Consider using\n{ReentrancyGuard} or the\nhttps://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n * _Available since v2.4.0._","id":21091,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nodeType":"FunctionDefinition","parameters":{"id":21063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21060,"name":"recipient","nodeType":"VariableDeclaration","scope":21091,"src":"2664:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":21059,"name":"address","nodeType":"ElementaryTypeName","src":"2664:15:71","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":21062,"name":"amount","nodeType":"VariableDeclaration","scope":21091,"src":"2691:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21061,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2663:43:71"},"returnParameters":{"id":21064,"nodeType":"ParameterList","parameters":[],"src":"2716:0:71"},"scope":21092,"src":"2645:365:71","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":21093,"src":"93:2919:71"}],"src":"0:3013:71"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/utils/Address.sol","exportedSymbols":{"Address":[21092]},"id":21093,"nodeType":"SourceUnit","nodes":[{"id":21019,"literals":["solidity","^","0.5",".5"],"nodeType":"PragmaDirective","src":"0:23:71"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Collection of functions related to the address type","fullyImplemented":true,"id":21092,"linearizedBaseContracts":[21092],"name":"Address","nodeType":"ContractDefinition","nodes":[{"body":{"id":21043,"nodeType":"Block","src":"623:731:71","statements":[{"assignments":[21027],"declarations":[{"constant":false,"id":21027,"name":"codehash","nodeType":"VariableDeclaration","scope":21043,"src":"1062:16:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21026,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1062:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":21028,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1062:16:71"},{"assignments":[21030],"declarations":[{"constant":false,"id":21030,"name":"accountHash","nodeType":"VariableDeclaration","scope":21043,"src":"1088:19:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":21029,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1088:7:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":21032,"initialValue":{"argumentTypes":null,"hexValue":"307863356432343630313836663732333363393237653764623264636337303363306535303062363533636138323237336237626661643830343564383561343730","id":21031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1110:66:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_89477152217924674838424037953991966239322087453347756267410168184682657981552_by_1","typeString":"int_const 8947...(69 digits omitted)...1552"},"value":"0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"},"nodeType":"VariableDeclarationStatement","src":"1088:88:71"},{"externalReferences":[{"codehash":{"declaration":21027,"isOffset":false,"isSlot":false,"src":"1253:8:71","valueSize":1}},{"account":{"declaration":21021,"isOffset":false,"isSlot":false,"src":"1277:7:71","valueSize":1}}],"id":21033,"nodeType":"InlineAssembly","operations":"{\n codehash := extcodehash(account)\n}","src":"1242:45:71"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":21040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":21034,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21027,"src":"1304:8:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"307830","id":21035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1316:3:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0x0"},"src":"1304:15:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":21039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":21037,"name":"codehash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21027,"src":"1323:8:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"id":21038,"name":"accountHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21030,"src":"1335:11:71","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1323:23:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1304:42:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":21041,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1303:44:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":21025,"id":21042,"nodeType":"Return","src":"1296:51:71"}]},"documentation":"@dev Returns true if `account` is a contract.\n * This test is non-exhaustive, and there may be false-negatives: during the\nexecution of a contract's constructor, its address will be reported as\nnot containing a contract.\n * IMPORTANT: It is unsafe to assume that an address for which this\nfunction returns false is an externally-owned account (EOA) and not a\ncontract.","id":21044,"implemented":true,"kind":"function","modifiers":[],"name":"isContract","nodeType":"FunctionDefinition","parameters":{"id":21022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21021,"name":"account","nodeType":"VariableDeclaration","scope":21044,"src":"577:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21020,"name":"address","nodeType":"ElementaryTypeName","src":"577:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"576:17:71"},"returnParameters":{"id":21025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21024,"name":"","nodeType":"VariableDeclaration","scope":21044,"src":"617:4:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21023,"name":"bool","nodeType":"ElementaryTypeName","src":"617:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"616:6:71"},"scope":21092,"src":"557:797:71","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":21057,"nodeType":"Block","src":"1639:49:71","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":21053,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21046,"src":"1672:7:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":21052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1664:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":"uint160"},"id":21054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1664:16:71","typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":21051,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1656:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":21055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1656:25:71","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":21050,"id":21056,"nodeType":"Return","src":"1649:32:71"}]},"documentation":"@dev Converts an `address` into `address payable`. Note that this is\nsimply a type cast: the actual underlying value is not changed.\n * _Available since v2.4.0._","id":21058,"implemented":true,"kind":"function","modifiers":[],"name":"toPayable","nodeType":"FunctionDefinition","parameters":{"id":21047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21046,"name":"account","nodeType":"VariableDeclaration","scope":21058,"src":"1582:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21045,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:71","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1581:17:71"},"returnParameters":{"id":21050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21049,"name":"","nodeType":"VariableDeclaration","scope":21058,"src":"1622:15:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":21048,"name":"address","nodeType":"ElementaryTypeName","src":"1622:15:71","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"1621:17:71"},"scope":21092,"src":"1563:125:71","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":21090,"nodeType":"Block","src":"2716:294:71","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":21071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":21067,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21139,"src":"2742:4:71","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}],"id":21066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2734:7:71","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":21068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2734:13:71","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":21069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2734:21:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":21070,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21062,"src":"2759:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2734:31:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20696e73756666696369656e742062616c616e6365","id":21072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2767:31:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""},"value":"Address: insufficient balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9","typeString":"literal_string \"Address: insufficient balance\""}],"id":21065,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2726:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2726:73:71","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21074,"nodeType":"ExpressionStatement","src":"2726:73:71"},{"assignments":[21076,null],"declarations":[{"constant":false,"id":21076,"name":"success","nodeType":"VariableDeclaration","scope":21090,"src":"2865:12:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":21075,"name":"bool","nodeType":"ElementaryTypeName","src":"2865:4:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":21084,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"","id":21082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2912:2:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"arguments":[{"argumentTypes":null,"id":21080,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21062,"src":"2904:6:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":21077,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21060,"src":"2883:9:71","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":21078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2883:14:71","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":21079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2883:20:71","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":21081,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2883:28:71","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":21083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2883:32:71","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2864:51:71"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":21086,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21076,"src":"2933:7:71","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564","id":21087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2942:60:71","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""},"value":"Address: unable to send value, recipient may have reverted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae","typeString":"literal_string \"Address: unable to send value, recipient may have reverted\""}],"id":21085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2925:7:71","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":21088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2925:78:71","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":21089,"nodeType":"ExpressionStatement","src":"2925:78:71"}]},"documentation":"@dev Replacement for Solidity's `transfer`: sends `amount` wei to\n`recipient`, forwarding all available gas and reverting on errors.\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\nof certain opcodes, possibly making contracts go over the 2300 gas limit\nimposed by `transfer`, making them unable to receive funds via\n`transfer`. {sendValue} removes this limitation.\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n * IMPORTANT: because control is transferred to `recipient`, care must be\ntaken to not create reentrancy vulnerabilities. Consider using\n{ReentrancyGuard} or the\nhttps://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n * _Available since v2.4.0._","id":21091,"implemented":true,"kind":"function","modifiers":[],"name":"sendValue","nodeType":"FunctionDefinition","parameters":{"id":21063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21060,"name":"recipient","nodeType":"VariableDeclaration","scope":21091,"src":"2664:25:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":21059,"name":"address","nodeType":"ElementaryTypeName","src":"2664:15:71","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":21062,"name":"amount","nodeType":"VariableDeclaration","scope":21091,"src":"2691:14:71","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21061,"name":"uint256","nodeType":"ElementaryTypeName","src":"2691:7:71","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2663:43:71"},"returnParameters":{"id":21064,"nodeType":"ParameterList","parameters":[],"src":"2716:0:71"},"scope":21092,"src":"2645:365:71","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":21093,"src":"93:2919:71"}],"src":"0:3013:71"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.274Z","devdoc":{"details":"Collection of functions related to the address type","methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Agreement.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Agreement.json new file mode 100644 index 00000000..aa086cd1 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Agreement.json @@ -0,0 +1 @@ +{"contractName":"Agreement","abi":[{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"}},\"title\":\"A scheme for conduct ERC20 Tokens auction for reputation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":\"Agreement\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]}},\"version\":1}","sourceMap":"102:747:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;102:747:7;;;;;;;","deployedSourceMap":"102:747:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;102:747:7;;;;;;;;;;;;;;;;;;;407:101;;;:::i;:::-;;;;;;;;;;;;;;;;;458:7;488:13;407:101;:::o","source":"pragma solidity 0.5.13;\n\n/**\n * @title A scheme for conduct ERC20 Tokens auction for reputation\n */\n\n\ncontract Agreement {\n\n bytes32 private agreementHash;\n\n modifier onlyAgree(bytes32 _agreementHash) {\n require(_agreementHash == agreementHash, \"Sender must send the right agreementHash\");\n _;\n }\n\n /**\n * @dev getAgreementHash\n * @return bytes32 agreementHash\n */\n function getAgreementHash() external view returns(bytes32)\n {\n return agreementHash;\n }\n\n /**\n * @dev setAgreementHash\n * @param _agreementHash is a hash of agreement required to be added to the TX by participants\n */\n function setAgreementHash(bytes32 _agreementHash) internal\n {\n require(agreementHash == bytes32(0), \"Can not set agreement twice\");\n agreementHash = _agreementHash;\n }\n\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","exportedSymbols":{"Agreement":[2302]},"id":2303,"nodeType":"SourceUnit","nodes":[{"id":2259,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:7"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title A scheme for conduct ERC20 Tokens auction for reputation","fullyImplemented":true,"id":2302,"linearizedBaseContracts":[2302],"name":"Agreement","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2261,"name":"agreementHash","nodeType":"VariableDeclaration","scope":2302,"src":"128:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"128:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"private"},{"body":{"id":2273,"nodeType":"Block","src":"207:112:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2266,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"225:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2267,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"243:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"225:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"53656e646572206d7573742073656e64207468652072696768742061677265656d656e7448617368","id":2269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"258:42:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c2bcf0352d1402213518437fa150fb3482822a0aedbe060b44ebd81fa7b67fe6","typeString":"literal_string \"Sender must send the right agreementHash\""},"value":"Sender must send the right agreementHash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c2bcf0352d1402213518437fa150fb3482822a0aedbe060b44ebd81fa7b67fe6","typeString":"literal_string \"Sender must send the right agreementHash\""}],"id":2265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"217:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"217:84:7","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2271,"nodeType":"ExpressionStatement","src":"217:84:7"},{"id":2272,"nodeType":"PlaceholderStatement","src":"311:1:7"}]},"documentation":null,"id":2274,"name":"onlyAgree","nodeType":"ModifierDefinition","parameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2263,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2274,"src":"183:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"183:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"182:24:7"},"src":"164:155:7","visibility":"internal"},{"body":{"id":2281,"nodeType":"Block","src":"471:37:7","statements":[{"expression":{"argumentTypes":null,"id":2279,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"488:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2278,"id":2280,"nodeType":"Return","src":"481:20:7"}]},"documentation":"@dev getAgreementHash\n@return bytes32 agreementHash","id":2282,"implemented":true,"kind":"function","modifiers":[],"name":"getAgreementHash","nodeType":"FunctionDefinition","parameters":{"id":2275,"nodeType":"ParameterList","parameters":[],"src":"432:2:7"},"returnParameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2277,"name":"","nodeType":"VariableDeclaration","scope":2282,"src":"458:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"458:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"457:9:7"},"scope":2302,"src":"407:101:7","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":2300,"nodeType":"Block","src":"721:124:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2288,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"739:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"764:1:7","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":2289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"756:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"756:10:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"739:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616e206e6f74207365742061677265656d656e74207477696365","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"768:29:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_57d2b41e44c125d12451ca60c4768c1ea6366c0c36b8be20ac1ab73b42bf6b7b","typeString":"literal_string \"Can not set agreement twice\""},"value":"Can not set agreement twice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57d2b41e44c125d12451ca60c4768c1ea6366c0c36b8be20ac1ab73b42bf6b7b","typeString":"literal_string \"Can not set agreement twice\""}],"id":2287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"731:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"731:67:7","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2295,"nodeType":"ExpressionStatement","src":"731:67:7"},{"expression":{"argumentTypes":null,"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2296,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"808:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2297,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"824:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"808:30:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2299,"nodeType":"ExpressionStatement","src":"808:30:7"}]},"documentation":"@dev setAgreementHash\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":2301,"implemented":true,"kind":"function","modifiers":[],"name":"setAgreementHash","nodeType":"FunctionDefinition","parameters":{"id":2285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2284,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2301,"src":"684:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"683:24:7"},"returnParameters":{"id":2286,"nodeType":"ParameterList","parameters":[],"src":"721:0:7"},"scope":2302,"src":"658:187:7","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":2303,"src":"102:747:7"}],"src":"0:850:7"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","exportedSymbols":{"Agreement":[2302]},"id":2303,"nodeType":"SourceUnit","nodes":[{"id":2259,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:7"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title A scheme for conduct ERC20 Tokens auction for reputation","fullyImplemented":true,"id":2302,"linearizedBaseContracts":[2302],"name":"Agreement","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":2261,"name":"agreementHash","nodeType":"VariableDeclaration","scope":2302,"src":"128:29:7","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2260,"name":"bytes32","nodeType":"ElementaryTypeName","src":"128:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"private"},{"body":{"id":2273,"nodeType":"Block","src":"207:112:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2266,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2263,"src":"225:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2267,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"243:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"225:31:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"53656e646572206d7573742073656e64207468652072696768742061677265656d656e7448617368","id":2269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"258:42:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c2bcf0352d1402213518437fa150fb3482822a0aedbe060b44ebd81fa7b67fe6","typeString":"literal_string \"Sender must send the right agreementHash\""},"value":"Sender must send the right agreementHash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c2bcf0352d1402213518437fa150fb3482822a0aedbe060b44ebd81fa7b67fe6","typeString":"literal_string \"Sender must send the right agreementHash\""}],"id":2265,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"217:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"217:84:7","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2271,"nodeType":"ExpressionStatement","src":"217:84:7"},{"id":2272,"nodeType":"PlaceholderStatement","src":"311:1:7"}]},"documentation":null,"id":2274,"name":"onlyAgree","nodeType":"ModifierDefinition","parameters":{"id":2264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2263,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2274,"src":"183:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"183:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"182:24:7"},"src":"164:155:7","visibility":"internal"},{"body":{"id":2281,"nodeType":"Block","src":"471:37:7","statements":[{"expression":{"argumentTypes":null,"id":2279,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"488:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2278,"id":2280,"nodeType":"Return","src":"481:20:7"}]},"documentation":"@dev getAgreementHash\n@return bytes32 agreementHash","id":2282,"implemented":true,"kind":"function","modifiers":[],"name":"getAgreementHash","nodeType":"FunctionDefinition","parameters":{"id":2275,"nodeType":"ParameterList","parameters":[],"src":"432:2:7"},"returnParameters":{"id":2278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2277,"name":"","nodeType":"VariableDeclaration","scope":2282,"src":"458:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2276,"name":"bytes32","nodeType":"ElementaryTypeName","src":"458:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"457:9:7"},"scope":2302,"src":"407:101:7","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":2300,"nodeType":"Block","src":"721:124:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2288,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"739:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"764:1:7","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":2289,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"756:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":2291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"756:10:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"739:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616e206e6f74207365742061677265656d656e74207477696365","id":2293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"768:29:7","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_57d2b41e44c125d12451ca60c4768c1ea6366c0c36b8be20ac1ab73b42bf6b7b","typeString":"literal_string \"Can not set agreement twice\""},"value":"Can not set agreement twice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_57d2b41e44c125d12451ca60c4768c1ea6366c0c36b8be20ac1ab73b42bf6b7b","typeString":"literal_string \"Can not set agreement twice\""}],"id":2287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"731:7:7","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"731:67:7","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2295,"nodeType":"ExpressionStatement","src":"731:67:7"},{"expression":{"argumentTypes":null,"id":2298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2296,"name":"agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2261,"src":"808:13:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2297,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2284,"src":"824:14:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"808:30:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":2299,"nodeType":"ExpressionStatement","src":"808:30:7"}]},"documentation":"@dev setAgreementHash\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":2301,"implemented":true,"kind":"function","modifiers":[],"name":"setAgreementHash","nodeType":"FunctionDefinition","parameters":{"id":2285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2284,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2301,"src":"684:22:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2283,"name":"bytes32","nodeType":"ElementaryTypeName","src":"684:7:7","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"683:24:7"},"returnParameters":{"id":2286,"nodeType":"ParameterList","parameters":[],"src":"721:0:7"},"scope":2302,"src":"658:187:7","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":2303,"src":"102:747:7"}],"src":"0:850:7"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.069Z","devdoc":{"methods":{"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"}},"title":"A scheme for conduct ERC20 Tokens auction for reputation"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AgreementMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AgreementMock.json new file mode 100644 index 00000000..200e0b47 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/AgreementMock.json @@ -0,0 +1 @@ +{"contractName":"AgreementMock","abi":[{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"setAgreementHashTest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"test","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"setAgreementHashTest\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"test\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/AgreementMock.sol\":\"AgreementMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/test/AgreementMock.sol\":{\"keccak256\":\"0xba217847f67330ac50b701352f1369bf9d1d80085d5c830d2e6a92278c904331\",\"urls\":[\"bzz-raw://150b242f6ba5107d194d291ba194c600652270306b219ac63ec5168fecc7ade8\",\"dweb:/ipfs/QmYA53Ag7mcoEVw5aiTn8bBf9Nm4mAzQ2yqig18Q54cc8q\"]}},\"version\":1}","sourceMap":"62:293:27:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:293:27;;;;;;;","deployedSourceMap":"62:293:27:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:293:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;407:101:7;;;:::i;:::-;;;;;;;;;;;;;;;;105:120:27;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;105:120:27;;:::i;:::-;;231:122;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;231:122:27;;:::i;:::-;;;;;;;;;;;;;;;;;;407:101:7;458:7;488:13;407:101;:::o;105:120:27:-;180:38;203:14;180:22;:38::i;:::-;105:120;:::o;231:122::-;315:4;286:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;342:4:27;;231:122;-1:-1:-1;;231:122:27:o;658:187:7:-;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o","source":"pragma solidity 0.5.13;\n\nimport \"../schemes/Agreement.sol\";\n\n\ncontract AgreementMock is Agreement {\n\n function setAgreementHashTest(bytes32 _agreementHash) public\n {\n super.setAgreementHash(_agreementHash);\n }\n\n function test(bytes32 _agreementHash) public onlyAgree(_agreementHash) view returns(bool)\n {\n return true;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/AgreementMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/AgreementMock.sol","exportedSymbols":{"AgreementMock":[8850]},"id":8851,"nodeType":"SourceUnit","nodes":[{"id":8821,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:27"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"../schemes/Agreement.sol","id":8822,"nodeType":"ImportDirective","scope":8851,"sourceUnit":2303,"src":"25:34:27","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8823,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"88:9:27","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":8824,"nodeType":"InheritanceSpecifier","src":"88:9:27"}],"contractDependencies":[2302],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8850,"linearizedBaseContracts":[8850,2302],"name":"AgreementMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":8835,"nodeType":"Block","src":"170:55:27","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8832,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8826,"src":"203:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8829,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21224,"src":"180:5:27","typeDescriptions":{"typeIdentifier":"t_super$_AgreementMock_$8850","typeString":"contract super AgreementMock"}},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"180:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":8833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"180:38:27","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8834,"nodeType":"ExpressionStatement","src":"180:38:27"}]},"documentation":null,"id":8836,"implemented":true,"kind":"function","modifiers":[],"name":"setAgreementHashTest","nodeType":"FunctionDefinition","parameters":{"id":8827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8826,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8836,"src":"135:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"135:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"134:24:27"},"returnParameters":{"id":8828,"nodeType":"ParameterList","parameters":[],"src":"170:0:27"},"scope":8850,"src":"105:120:27","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8848,"nodeType":"Block","src":"325:28:27","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":8846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"342:4:27","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8845,"id":8847,"nodeType":"Return","src":"335:11:27"}]},"documentation":null,"id":8849,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":8841,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8838,"src":"286:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8842,"modifierName":{"argumentTypes":null,"id":8840,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"276:9:27","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"276:25:27"}],"name":"test","nodeType":"FunctionDefinition","parameters":{"id":8839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8838,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8849,"src":"245:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"245:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"244:24:27"},"returnParameters":{"id":8845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8844,"name":"","nodeType":"VariableDeclaration","scope":8849,"src":"315:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8843,"name":"bool","nodeType":"ElementaryTypeName","src":"315:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"314:6:27"},"scope":8850,"src":"231:122:27","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":8851,"src":"62:293:27"}],"src":"0:356:27"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/AgreementMock.sol","exportedSymbols":{"AgreementMock":[8850]},"id":8851,"nodeType":"SourceUnit","nodes":[{"id":8821,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:27"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"../schemes/Agreement.sol","id":8822,"nodeType":"ImportDirective","scope":8851,"sourceUnit":2303,"src":"25:34:27","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8823,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"88:9:27","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":8824,"nodeType":"InheritanceSpecifier","src":"88:9:27"}],"contractDependencies":[2302],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8850,"linearizedBaseContracts":[8850,2302],"name":"AgreementMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":8835,"nodeType":"Block","src":"170:55:27","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8832,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8826,"src":"203:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8829,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21224,"src":"180:5:27","typeDescriptions":{"typeIdentifier":"t_super$_AgreementMock_$8850","typeString":"contract super AgreementMock"}},"id":8831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"180:22:27","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":8833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"180:38:27","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8834,"nodeType":"ExpressionStatement","src":"180:38:27"}]},"documentation":null,"id":8836,"implemented":true,"kind":"function","modifiers":[],"name":"setAgreementHashTest","nodeType":"FunctionDefinition","parameters":{"id":8827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8826,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8836,"src":"135:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8825,"name":"bytes32","nodeType":"ElementaryTypeName","src":"135:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"134:24:27"},"returnParameters":{"id":8828,"nodeType":"ParameterList","parameters":[],"src":"170:0:27"},"scope":8850,"src":"105:120:27","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8848,"nodeType":"Block","src":"325:28:27","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":8846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"342:4:27","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8845,"id":8847,"nodeType":"Return","src":"335:11:27"}]},"documentation":null,"id":8849,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":8841,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8838,"src":"286:14:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8842,"modifierName":{"argumentTypes":null,"id":8840,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"276:9:27","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"276:25:27"}],"name":"test","nodeType":"FunctionDefinition","parameters":{"id":8839,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8838,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8849,"src":"245:22:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8837,"name":"bytes32","nodeType":"ElementaryTypeName","src":"245:7:27","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"244:24:27"},"returnParameters":{"id":8845,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8844,"name":"","nodeType":"VariableDeclaration","scope":8849,"src":"315:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8843,"name":"bool","nodeType":"ElementaryTypeName","src":"315:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"314:6:27"},"scope":8850,"src":"231:122:27","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":8851,"src":"62:293:27"}],"src":"0:356:27"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.143Z","devdoc":{"methods":{"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Auction4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Auction4Reputation.json new file mode 100644 index 00000000..a2280e21 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Auction4Reputation.json @@ -0,0 +1 @@ +{"contractName":"Auction4Reputation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_bidder","type":"address"},{"indexed":true,"internalType":"uint256","name":"_auctionId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Bid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_auctionId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"constant":true,"inputs":[],"name":"auctionPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"auctionReputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"auctions","outputs":[{"internalType":"uint256","name":"totalBid","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"auctionsEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"auctionsStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfAuctions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wallet","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_auctionReputationReward","type":"uint256"},{"internalType":"uint256","name":"_auctionsStartTime","type":"uint256"},{"internalType":"uint256","name":"_auctionPeriod","type":"uint256"},{"internalType":"uint256","name":"_numberOfAuctions","type":"uint256"},{"internalType":"uint256","name":"_redeemEnableTime","type":"uint256"},{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"address","name":"_wallet","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_auctionId","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_auctionId","type":"uint256"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"bid","outputs":[{"internalType":"uint256","name":"auctionId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"transferToWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_bidder","type":"address"},{"internalType":"uint256","name":"_auctionId","type":"uint256"}],"name":"getBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_bidder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_auctionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Bid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_auctionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctionPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctionReputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"auctions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalBid\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctionsEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"auctionsStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_auctionId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"bid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"auctionId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bidder\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_auctionId\",\"type\":\"uint256\"}],\"name\":\"getBid\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_auctionReputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_auctionsStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_auctionPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_numberOfAuctions\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_redeemEnableTime\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_wallet\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numberOfAuctions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_auctionId\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"transferToWallet\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"bid(uint256,uint256,bytes32)\":{\"details\":\"bid function\",\"params\":{\"_amount\":\"the amount to bid with\",\"_auctionId\":\"the auction id to bid at .\"},\"return\":\"auctionId\"},\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"getBid(address,uint256)\":{\"details\":\"getBid get bid for specific bidder and _auctionId\",\"params\":{\"_auctionId\":\"auction id\",\"_bidder\":\"the bidder\"},\"return\":\"uint\"},\"initialize(address,uint256,uint256,uint256,uint256,uint256,address,address,bytes32)\":{\"details\":\"initialize\",\"params\":{\"_agreementHash\":\"is a hash of agreement required to be added to the TX by participants\",\"_auctionPeriod\":\"auctions period time. auctionsEndTime is set to _auctionsStartTime + _auctionPeriod*_numberOfAuctions bidding is disable after auctionsEndTime.\",\"_auctionReputationReward\":\"the reputation reward per auction this contract will reward for the token locking\",\"_auctionsStartTime\":\"auctions period start time\",\"_avatar\":\"the avatar to mint reputation from\",\"_numberOfAuctions\":\"number of auctions.\",\"_redeemEnableTime\":\"redeem enable time . redeem reputation can be done after this time.\",\"_token\":\"the bidding token\",\"_wallet\":\"the address of the wallet the token will be transfer to. Please note that _wallet address should be a trusted account. Normally this address should be set as the DAO's avatar address.\"}},\"redeem(address,uint256)\":{\"details\":\"redeem reputation function\",\"params\":{\"_auctionId\":\"the auction id to redeem from.\",\"_beneficiary\":\"the beneficiary to redeem.\"},\"return\":\"uint256 reputation rewarded\"},\"transferToWallet()\":{\"details\":\"transferToWallet transfer the tokens to the wallet. can be called only after auctionsEndTime\"}},\"title\":\"A scheme for conduct ERC20 Tokens auction for reputation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/Auction4Reputation.sol\":\"Auction4Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/Auction4Reputation.sol\":{\"keccak256\":\"0xb083dccd3cfeabccc78ecefaa72e0239ed6ea470334a75e55dc620c6101fab5c\",\"urls\":[\"bzz-raw://bac809227dd9e88fc7a277b46981087a86cb068585fbaebace2b6a26d3ce4802\",\"dweb:/ipfs/QmRQCEeViyN7W2mjX4LyUcSKcizdoC1oaT6NjkQYt6s8qt\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"260:6228:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;260:6228:8;;;;;;;","deployedSourceMap":"260:6228:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;260:6228:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4731:1021;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4731:1021:8;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1016:28;;;:::i;972:38::-;;;:::i;6345:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;6345:140:8;;;;;;;;:::i;3685:877::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3685:877:8;;;;;;;;:::i;1050:31::-;;;:::i;5891:281::-;;;:::i;:::-;;935:31;;;:::i;1112:21::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1112:21:8;;;;;;;;;;;;;;861:30;;;:::i;749:38::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;749:38:8;;:::i;794:20::-;;;:::i;407:101:7:-;;;:::i;2173:1298:8:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;2173:1298:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;897:32::-;;;:::i;820:35::-;;;:::i;1087:19::-;;;:::i;4731:1021::-;4858:17;4830:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4909:1:8;4899:7;:11;4891:52;;;;;-1:-1:-1;;;4891:52:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;5021:15;;5015:3;:21;5007:85;;;;-1:-1:-1;;;5007:85:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5171:17;;5164:3;:24;;5156:91;;;;-1:-1:-1;;;5156:91:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5265:5;;5257:67;;-1:-1:-1;;;;;5265:5:8;5289:10;5309:4;5316:7;5257:67;:31;:67;:::i;:::-;5428:13;;5407:17;;5401:3;:23;5400:41;;;;;;5388:53;;5472:10;5459:9;:23;5451:57;;;;;-1:-1:-1;;;5451:57:8;;;;;;;;;;;;-1:-1:-1;;;5451:57:8;;;;;;;;;;;;;;;5518:23;5544:19;;;:8;:19;;;;;5592:16;;:29;;5613:7;5592:29;:20;:29;:::i;:::-;5573:48;;5671:10;5573:16;5658:24;;;:12;;;:24;;;;;;:37;;5687:7;5658:37;:28;:37;:::i;:::-;5644:10;5631:24;;;;:12;;;:24;;;;;;;;;:64;;;;5710:35;;;;;;;5726:9;;5710:35;;;;;;;;311:1:7;4731:1021:8;;;;;;:::o;1016:28::-;;;;:::o;972:38::-;;;;:::o;6345:140::-;6418:7;6444:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;6444:34:8;;;;:25;;;:34;;;;;6345:140;;;;;:::o;3685:877::-;3758:18;3856:16;;3850:3;:22;3842:57;;;;;-1:-1:-1;;;3842:57:8;;;;;;;;;;;;-1:-1:-1;;;3842:57:8;;;;;;;;;;;;;;;3909:23;3935:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;3979:26:8;;;;:12;;;:26;;;;;;;4023:7;4015:48;;;;;-1:-1:-1;;;4015:48:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4073:26:8;;4102:1;4073:26;;;:12;;;:26;;;;;:30;;;4143:23;;4135:32;;:3;;:32;:7;:32;:::i;:::-;4206:16;;4113:54;;-1:-1:-1;4190:33:8;;4113:54;;4190:33;:15;:33;:::i;:::-;4305:20;;4177:46;;-1:-1:-1;4305:36:8;;4177:46;4305:36;:24;:36;:::i;:::-;4282:20;:59;4379:6;;:14;;;-1:-1:-1;;;4379:14:8;;;;-1:-1:-1;;;;;4379:6:8;;;;:12;;:14;;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;4379:14:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4379:14:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4379:14:8;4453:6;;4368:93;;;-1:-1:-1;;;4368:93:8;;;;;;;;-1:-1:-1;;;;;4368:93:8;;;;;;;4453:6;;;4368:93;;;;;;:50;;;;;;;:93;;;;;4379:14;;4368:93;;;;;;;4453:6;4368:50;:93;;;5:2:-1;;;;30:1;27;20:12;5:2;4368:93:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4368:93:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4368:93:8;4351:145;;;;;-1:-1:-1;;;4351:145:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;4511:44;;;;;;;;-1:-1:-1;;;;;4511:44:8;;;4518:10;;4511:44;;;;;;;;;3685:877;;;;;;;:::o;1050:31::-;;;;:::o;5891:281::-;6002:15;;5996:3;:21;5988:55;;;;;-1:-1:-1;;;5988:55:8;;;;;;;;;;;;-1:-1:-1;;;5988:55:8;;;;;;;;;;;;;;;6076:5;;:30;;;-1:-1:-1;;;6076:30:8;;6100:4;6076:30;;;;;;6053:20;;-1:-1:-1;;;;;6076:5:8;;:15;;:30;;;;;;;;;;;;;;:5;:30;;;5:2:-1;;;;30:1;27;20:12;5:2;6076:30:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6076:30:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6076:30:8;6144:6;;6124:5;;6076:30;;-1:-1:-1;6116:49:8;;-1:-1:-1;;;;;6124:5:8;;;;6144:6;6076:30;6116:49;:27;:49;:::i;:::-;5891:281;:::o;935:31::-;;;;:::o;1112:21::-;;;-1:-1:-1;;;;;1112:21:8;;:::o;861:30::-;;;;:::o;749:38::-;;;;;;;;;;;;;:::o;794:20::-;;;-1:-1:-1;;;;;794:20:8;;:::o;407:101:7:-;458:7;488:13;407:101;:::o;2173:1298:8:-;2514:6;;-1:-1:-1;;;;;2514:6:8;:19;2506:59;;;;;-1:-1:-1;;;2506:59:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2583:20:8;;2575:54;;;;;-1:-1:-1;;;2575:54:8;;;;;;;;;;;;-1:-1:-1;;;2575:54:8;;;;;;;;;;;;;;;2667:1;2647:17;:21;2639:67;;;;-1:-1:-1;;;2639:67:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2804:2;2787:14;:19;2779:60;;;;;-1:-1:-1;;;2779:60:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;2849:13;:30;;;2928:37;2865:14;2947:17;2928:37;:18;:37;:::i;:::-;2907:58;;2889:15;:76;;;2983:36;;;2975:85;;;;-1:-1:-1;;;2975:85:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3070:5;:14;;-1:-1:-1;;;;;3070:14:8;;;-1:-1:-1;;;;;;3070:14:8;;;;;;;3094:6;:16;;;;;;;;;;;3120:17;:38;;;3168:16;:36;;;3214:6;:16;;;;;;;;;;;;;;;3240:23;:50;;;3323:47;3266:24;3187:17;3323:47;:28;:47;:::i;:::-;3300:20;:70;3380:16;:36;;;3426:38;3449:14;3426:22;:38::i;:::-;2173:1298;;;;;;;;;:::o;897:32::-;;;;:::o;820:35::-;;;;:::o;1087:19::-;;;-1:-1:-1;;;;;1087:19:8;;:::o;1566:597:6:-;1726:23;:10;-1:-1:-1;;;;;1726:21:6;;:23::i;:::-;1718:32;;;;;;1762:12;1776:24;1871:10;-1:-1:-1;;;;;1871:15:6;837:46;;;;;;;;;;;;;;;;;827:57;;;;;;;1887:65;;;-1:-1:-1;;;;;1887:65:6;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1887:65:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1887:65:6;;;179:29:-1;;;;160:49;;1871:82:6;;;;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1871:82:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1761:192:6;;;;2021:7;2013:16;;;;;;2076:18;;:23;;:79;;;2104:11;:18;2126:2;2104:24;:50;;;;;2133:11;2145:2;2133:15;;;;;;;;;;;;-1:-1:-1;;;;;;2133:15:6;:20;;2104:50;2068:88;;;;;;1566:597;;;;;;:::o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;2159:459::-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3073:130;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;993:567:6:-;1134:23;:10;-1:-1:-1;;;;;1134:21:6;;:23::i;:::-;1126:32;;;;;;730:34;;;;;;;;;;;;;;;;;1295:54;;-1:-1:-1;;;;;1295:54:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1295:54:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1279:71:6;;;;1170:12;;1184:24;;1279:15;;;1295:54;1279:71;;;25:18:-1;1279:71:6;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1279:71:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1169:181:6;;;;1418:7;1410:16;;;;;;1473:18;;:23;;:79;;;1501:11;:18;1523:2;1501:24;:50;;;;;1530:11;1542:2;1530:15;;;;;;;;;;;;-1:-1:-1;;;;;;1530:15:6;:20;;1501:50;1465:88;;;;;;993:567;;;;;:::o;658:187:7:-;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o;3718:338:66:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:66;-1:-1:-1;;;1888:5:66;;;1732:187::o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../controller/Controller.sol\";\nimport \"../libs/SafeERC20.sol\";\nimport \"./Agreement.sol\";\n\n/**\n * @title A scheme for conduct ERC20 Tokens auction for reputation\n */\n\n\ncontract Auction4Reputation is Agreement {\n using SafeMath for uint256;\n using SafeERC20 for address;\n\n event Bid(address indexed _bidder, uint256 indexed _auctionId, uint256 _amount);\n event Redeem(uint256 indexed _auctionId, address indexed _beneficiary, uint256 _amount);\n\n struct Auction {\n uint256 totalBid;\n // A mapping from bidder addresses to their bids.\n mapping(address=>uint) bids;\n }\n\n // A mapping from auction index to auction.\n mapping(uint=>Auction) public auctions;\n\n Avatar public avatar;\n uint256 public reputationRewardLeft;\n uint256 public auctionsEndTime;\n uint256 public auctionsStartTime;\n uint256 public numberOfAuctions;\n uint256 public auctionReputationReward;\n uint256 public auctionPeriod;\n uint256 public redeemEnableTime;\n IERC20 public token;\n address public wallet;\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _auctionReputationReward the reputation reward per auction this contract will reward\n * for the token locking\n * @param _auctionsStartTime auctions period start time\n * @param _auctionPeriod auctions period time.\n * auctionsEndTime is set to _auctionsStartTime + _auctionPeriod*_numberOfAuctions\n * bidding is disable after auctionsEndTime.\n * @param _numberOfAuctions number of auctions.\n * @param _redeemEnableTime redeem enable time .\n * redeem reputation can be done after this time.\n * @param _token the bidding token\n * @param _wallet the address of the wallet the token will be transfer to.\n * Please note that _wallet address should be a trusted account.\n * Normally this address should be set as the DAO's avatar address.\n * @param _agreementHash is a hash of agreement required to be added to the TX by participants\n */\n function initialize(\n Avatar _avatar,\n uint256 _auctionReputationReward,\n uint256 _auctionsStartTime,\n uint256 _auctionPeriod,\n uint256 _numberOfAuctions,\n uint256 _redeemEnableTime,\n IERC20 _token,\n address _wallet,\n bytes32 _agreementHash )\n external\n {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n require(_numberOfAuctions > 0, \"number of auctions cannot be zero\");\n //_auctionPeriod should be greater than block interval\n require(_auctionPeriod > 15, \"auctionPeriod should be > 15\");\n auctionPeriod = _auctionPeriod;\n auctionsEndTime = _auctionsStartTime + _auctionPeriod.mul(_numberOfAuctions);\n require(_redeemEnableTime >= auctionsEndTime, \"_redeemEnableTime >= auctionsEndTime\");\n token = _token;\n avatar = _avatar;\n auctionsStartTime = _auctionsStartTime;\n numberOfAuctions = _numberOfAuctions;\n wallet = _wallet;\n auctionReputationReward = _auctionReputationReward;\n reputationRewardLeft = _auctionReputationReward.mul(_numberOfAuctions);\n redeemEnableTime = _redeemEnableTime;\n super.setAgreementHash(_agreementHash);\n }\n\n /**\n * @dev redeem reputation function\n * @param _beneficiary the beneficiary to redeem.\n * @param _auctionId the auction id to redeem from.\n * @return uint256 reputation rewarded\n */\n function redeem(address _beneficiary, uint256 _auctionId) public returns(uint256 reputation) {\n // solhint-disable-next-line not-rely-on-time\n require(now > redeemEnableTime, \"now > redeemEnableTime\");\n Auction storage auction = auctions[_auctionId];\n uint256 bid = auction.bids[_beneficiary];\n require(bid > 0, \"bidding amount should be > 0\");\n auction.bids[_beneficiary] = 0;\n uint256 repRelation = bid.mul(auctionReputationReward);\n reputation = repRelation.div(auction.totalBid);\n // check that the reputation is sum zero\n reputationRewardLeft = reputationRewardLeft.sub(reputation);\n require(\n Controller(avatar.owner())\n .mintReputation(reputation, _beneficiary, address(avatar)), \"mint reputation should succeed\");\n emit Redeem(_auctionId, _beneficiary, reputation);\n }\n\n /**\n * @dev bid function\n * @param _amount the amount to bid with\n * @param _auctionId the auction id to bid at .\n * @return auctionId\n */\n function bid(uint256 _amount, uint256 _auctionId, bytes32 _agreementHash)\n public\n onlyAgree(_agreementHash)\n returns(uint256 auctionId)\n {\n require(_amount > 0, \"bidding amount should be > 0\");\n // solhint-disable-next-line not-rely-on-time\n require(now < auctionsEndTime, \"bidding should be within the allowed bidding period\");\n // solhint-disable-next-line not-rely-on-time\n require(now >= auctionsStartTime, \"bidding is enable only after bidding auctionsStartTime\");\n address(token).safeTransferFrom(msg.sender, address(this), _amount);\n // solhint-disable-next-line not-rely-on-time\n auctionId = (now - auctionsStartTime) / auctionPeriod;\n require(auctionId == _auctionId, \"auction is not active\");\n Auction storage auction = auctions[auctionId];\n auction.totalBid = auction.totalBid.add(_amount);\n auction.bids[msg.sender] = auction.bids[msg.sender].add(_amount);\n emit Bid(msg.sender, auctionId, _amount);\n }\n\n /**\n * @dev transferToWallet transfer the tokens to the wallet.\n * can be called only after auctionsEndTime\n */\n function transferToWallet() public {\n // solhint-disable-next-line not-rely-on-time\n require(now > auctionsEndTime, \"now > auctionsEndTime\");\n uint256 tokenBalance = token.balanceOf(address(this));\n address(token).safeTransfer(wallet, tokenBalance);\n }\n\n /**\n * @dev getBid get bid for specific bidder and _auctionId\n * @param _bidder the bidder\n * @param _auctionId auction id\n * @return uint\n */\n function getBid(address _bidder, uint256 _auctionId) public view returns(uint256) {\n return auctions[_auctionId].bids[_bidder];\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/Auction4Reputation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Auction4Reputation.sol","exportedSymbols":{"Auction4Reputation":[2716]},"id":2717,"nodeType":"SourceUnit","nodes":[{"id":2304,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:8"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":2305,"nodeType":"ImportDirective","scope":2717,"sourceUnit":20396,"src":"25:59:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":2306,"nodeType":"ImportDirective","scope":2717,"sourceUnit":1798,"src":"85:38:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":2307,"nodeType":"ImportDirective","scope":2717,"sourceUnit":2258,"src":"124:31:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":2308,"nodeType":"ImportDirective","scope":2717,"sourceUnit":2303,"src":"156:25:8","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":2309,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"291:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":2310,"nodeType":"InheritanceSpecifier","src":"291:9:8"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A scheme for conduct ERC20 Tokens auction for reputation","fullyImplemented":true,"id":2716,"linearizedBaseContracts":[2716,2302],"name":"Auction4Reputation","nodeType":"ContractDefinition","nodes":[{"id":2313,"libraryName":{"contractScope":null,"id":2311,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"313:8:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"307:27:8","typeName":{"id":2312,"name":"uint256","nodeType":"ElementaryTypeName","src":"326:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":2316,"libraryName":{"contractScope":null,"id":2314,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"345:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"339:28:8","typeName":{"id":2315,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"anonymous":false,"documentation":null,"id":2324,"name":"Bid","nodeType":"EventDefinition","parameters":{"id":2323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2318,"indexed":true,"name":"_bidder","nodeType":"VariableDeclaration","scope":2324,"src":"383:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2317,"name":"address","nodeType":"ElementaryTypeName","src":"383:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2320,"indexed":true,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2324,"src":"408:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2319,"name":"uint256","nodeType":"ElementaryTypeName","src":"408:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2322,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":2324,"src":"436:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2321,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"382:70:8"},"src":"373:80:8"},{"anonymous":false,"documentation":null,"id":2332,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":2331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2326,"indexed":true,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2332,"src":"471:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2325,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2328,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":2332,"src":"499:28:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2327,"name":"address","nodeType":"ElementaryTypeName","src":"499:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2330,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":2332,"src":"529:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"470:75:8"},"src":"458:88:8"},{"canonicalName":"Auction4Reputation.Auction","id":2339,"members":[{"constant":false,"id":2334,"name":"totalBid","nodeType":"VariableDeclaration","scope":2339,"src":"577:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2333,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2338,"name":"bids","nodeType":"VariableDeclaration","scope":2339,"src":"661:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2337,"keyType":{"id":2335,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"661:22:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2336,"name":"uint","nodeType":"ElementaryTypeName","src":"678:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Auction","nodeType":"StructDefinition","scope":2716,"src":"552:143:8","visibility":"public"},{"constant":false,"id":2343,"name":"auctions","nodeType":"VariableDeclaration","scope":2716,"src":"749:38:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction)"},"typeName":{"id":2342,"keyType":{"id":2340,"name":"uint","nodeType":"ElementaryTypeName","src":"757:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"749:22:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction)"},"valueType":{"contractScope":null,"id":2341,"name":"Auction","nodeType":"UserDefinedTypeName","referencedDeclaration":2339,"src":"763:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"}}},"value":null,"visibility":"public"},{"constant":false,"id":2345,"name":"avatar","nodeType":"VariableDeclaration","scope":2716,"src":"794:20:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":2344,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"794:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":2347,"name":"reputationRewardLeft","nodeType":"VariableDeclaration","scope":2716,"src":"820:35:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2346,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2349,"name":"auctionsEndTime","nodeType":"VariableDeclaration","scope":2716,"src":"861:30:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2348,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2351,"name":"auctionsStartTime","nodeType":"VariableDeclaration","scope":2716,"src":"897:32:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2350,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2353,"name":"numberOfAuctions","nodeType":"VariableDeclaration","scope":2716,"src":"935:31:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2352,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2355,"name":"auctionReputationReward","nodeType":"VariableDeclaration","scope":2716,"src":"972:38:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2354,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2357,"name":"auctionPeriod","nodeType":"VariableDeclaration","scope":2716,"src":"1016:28:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2356,"name":"uint256","nodeType":"ElementaryTypeName","src":"1016:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2359,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":2716,"src":"1050:31:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2361,"name":"token","nodeType":"VariableDeclaration","scope":2716,"src":"1087:19:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":2360,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1087:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":2363,"name":"wallet","nodeType":"VariableDeclaration","scope":2716,"src":"1112:21:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2362,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":2477,"nodeType":"Block","src":"2496:975:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2385,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"2514:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531: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":2386,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2524:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2524:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2514:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":2390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2535:29:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":2384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2506:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2506:59:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2392,"nodeType":"ExpressionStatement","src":"2506:59:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2394,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"2583:7:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601: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":2395,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2594:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":2397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2594:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2583:20:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":2399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2605:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":2393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2575:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2575:54:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2401,"nodeType":"ExpressionStatement","src":"2575:54:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2403,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"2647:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2667:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2647:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d626572206f662061756374696f6e732063616e6e6f74206265207a65726f","id":2406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2670:35:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ca6bc7d42bd53b979eac61ade562a196477004e28b8ef89fa1b4a852bfae5fab","typeString":"literal_string \"number of auctions cannot be zero\""},"value":"number of auctions cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca6bc7d42bd53b979eac61ade562a196477004e28b8ef89fa1b4a852bfae5fab","typeString":"literal_string \"number of auctions cannot be zero\""}],"id":2402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2639:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:67:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2408,"nodeType":"ExpressionStatement","src":"2639:67:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2410,"name":"_auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"2787:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"3135","id":2411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2804:2:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"2787:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"61756374696f6e506572696f642073686f756c64206265203e203135","id":2413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2808:30:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ea8585bceecaa274053596cdad480562fd1718c7f7b71ddfaaa16d09564807bc","typeString":"literal_string \"auctionPeriod should be > 15\""},"value":"auctionPeriod should be > 15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea8585bceecaa274053596cdad480562fd1718c7f7b71ddfaaa16d09564807bc","typeString":"literal_string \"auctionPeriod should be > 15\""}],"id":2409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2779:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:60:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2415,"nodeType":"ExpressionStatement","src":"2779:60:8"},{"expression":{"argumentTypes":null,"id":2418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2416,"name":"auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2357,"src":"2849:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2417,"name":"_auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"2865:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2849:30:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2419,"nodeType":"ExpressionStatement","src":"2849:30:8"},{"expression":{"argumentTypes":null,"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2420,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"2889:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2421,"name":"_auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"2907:18:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2424,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"2947:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2422,"name":"_auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"2928:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"2928:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:37:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2907:58:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2889:76:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2428,"nodeType":"ExpressionStatement","src":"2889:76:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2430,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"2983:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2431,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"3004:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2983:36:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f72656465656d456e61626c6554696d65203e3d2061756374696f6e73456e6454696d65","id":2433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3021:38:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_162be27f56248be846d8759567c7e6cad9751cca920085acbde40bc1f8e484ac","typeString":"literal_string \"_redeemEnableTime >= auctionsEndTime\""},"value":"_redeemEnableTime >= auctionsEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_162be27f56248be846d8759567c7e6cad9751cca920085acbde40bc1f8e484ac","typeString":"literal_string \"_redeemEnableTime >= auctionsEndTime\""}],"id":2429,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2975:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:85:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2435,"nodeType":"ExpressionStatement","src":"2975:85:8"},{"expression":{"argumentTypes":null,"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2436,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"3070:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2437,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"3078:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"3070:14:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2439,"nodeType":"ExpressionStatement","src":"3070:14:8"},{"expression":{"argumentTypes":null,"id":2442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2440,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"3094:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2441,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"3103:7:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3094:16:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":2443,"nodeType":"ExpressionStatement","src":"3094:16:8"},{"expression":{"argumentTypes":null,"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2444,"name":"auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2351,"src":"3120:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2445,"name":"_auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"3140:18:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3120:38:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2447,"nodeType":"ExpressionStatement","src":"3120:38:8"},{"expression":{"argumentTypes":null,"id":2450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2448,"name":"numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3168:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2449,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"3187:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3168:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2451,"nodeType":"ExpressionStatement","src":"3168:36:8"},{"expression":{"argumentTypes":null,"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2452,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"3214:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2453,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2379,"src":"3223:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3214:16:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2455,"nodeType":"ExpressionStatement","src":"3214:16:8"},{"expression":{"argumentTypes":null,"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2456,"name":"auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"3240:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2457,"name":"_auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"3266:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3240:50:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2459,"nodeType":"ExpressionStatement","src":"3240:50:8"},{"expression":{"argumentTypes":null,"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2460,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2347,"src":"3300:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2463,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"3352:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2461,"name":"_auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"3323:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"3323:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3323:47:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3300:70:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2466,"nodeType":"ExpressionStatement","src":"3300:70:8"},{"expression":{"argumentTypes":null,"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2467,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2359,"src":"3380:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2468,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"3399:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3380:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2470,"nodeType":"ExpressionStatement","src":"3380:36:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2474,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2381,"src":"3449:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":2471,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21154,"src":"3426:5:8","typeDescriptions":{"typeIdentifier":"t_super$_Auction4Reputation_$2716","typeString":"contract super Auction4Reputation"}},"id":2473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"3426:22:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3426:38:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2476,"nodeType":"ExpressionStatement","src":"3426:38:8"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _auctionReputationReward the reputation reward per auction this contract will reward\n for the token locking\n@param _auctionsStartTime auctions period start time\n@param _auctionPeriod auctions period time.\n auctionsEndTime is set to _auctionsStartTime + _auctionPeriod*_numberOfAuctions\n bidding is disable after auctionsEndTime.\n@param _numberOfAuctions number of auctions.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _token the bidding token\n@param _wallet the address of the wallet the token will be transfer to.\n Please note that _wallet address should be a trusted account.\n Normally this address should be set as the DAO's avatar address.\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":2478,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":2382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2365,"name":"_avatar","nodeType":"VariableDeclaration","scope":2478,"src":"2202:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":2364,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2202:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":2367,"name":"_auctionReputationReward","nodeType":"VariableDeclaration","scope":2478,"src":"2226:32:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2366,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2369,"name":"_auctionsStartTime","nodeType":"VariableDeclaration","scope":2478,"src":"2268:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint256","nodeType":"ElementaryTypeName","src":"2268:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2371,"name":"_auctionPeriod","nodeType":"VariableDeclaration","scope":2478,"src":"2304:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"2304:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2373,"name":"_numberOfAuctions","nodeType":"VariableDeclaration","scope":2478,"src":"2336:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2372,"name":"uint256","nodeType":"ElementaryTypeName","src":"2336:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2375,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":2478,"src":"2371:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2377,"name":"_token","nodeType":"VariableDeclaration","scope":2478,"src":"2406:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":2376,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2406:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":2379,"name":"_wallet","nodeType":"VariableDeclaration","scope":2478,"src":"2429:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2378,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2381,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2478,"src":"2454:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2454:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2192:286:8"},"returnParameters":{"id":2383,"nodeType":"ParameterList","parameters":[],"src":"2496:0:8"},"scope":2716,"src":"2173:1298:8","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":2566,"nodeType":"Block","src":"3778:784:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2488,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3850:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2489,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2359,"src":"3856:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3850:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2072656465656d456e61626c6554696d65","id":2491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3874:24:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""},"value":"now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""}],"id":2487,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3842:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3842:57:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2493,"nodeType":"ExpressionStatement","src":"3842:57:8"},{"assignments":[2495],"declarations":[{"constant":false,"id":2495,"name":"auction","nodeType":"VariableDeclaration","scope":2566,"src":"3909:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"},"typeName":{"contractScope":null,"id":2494,"name":"Auction","nodeType":"UserDefinedTypeName","referencedDeclaration":2339,"src":"3909:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"}},"value":null,"visibility":"internal"}],"id":2499,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2496,"name":"auctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"3935:8:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction storage ref)"}},"id":2498,"indexExpression":{"argumentTypes":null,"id":2497,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"3944:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3935:20:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage","typeString":"struct Auction4Reputation.Auction storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3909:46:8"},{"assignments":[2501],"declarations":[{"constant":false,"id":2501,"name":"bid","nodeType":"VariableDeclaration","scope":2566,"src":"3965:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2500,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2506,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2502,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"3979:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"3979:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2505,"indexExpression":{"argumentTypes":null,"id":2504,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"3992:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3979:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3965:40:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2508,"name":"bid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"4023:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4029:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4023:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e6720616d6f756e742073686f756c64206265203e2030","id":2511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4032:30:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""},"value":"bidding amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""}],"id":2507,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4015:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4015:48:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2513,"nodeType":"ExpressionStatement","src":"4015:48:8"},{"expression":{"argumentTypes":null,"id":2520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2514,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"4073:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"4073:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2518,"indexExpression":{"argumentTypes":null,"id":2516,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"4086:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4073:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":2519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4102:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4073:30:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2521,"nodeType":"ExpressionStatement","src":"4073:30:8"},{"assignments":[2523],"declarations":[{"constant":false,"id":2523,"name":"repRelation","nodeType":"VariableDeclaration","scope":2566,"src":"4113:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4113:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2528,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2526,"name":"auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"4143:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2524,"name":"bid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"4135:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"4135:7:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4135:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4113:54:8"},{"expression":{"argumentTypes":null,"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2529,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4177:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2532,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"4206:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalBid","nodeType":"MemberAccess","referencedDeclaration":2334,"src":"4206:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2530,"name":"repRelation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2523,"src":"4190:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"4190:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4190:33:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4177:46:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2536,"nodeType":"ExpressionStatement","src":"4177:46:8"},{"expression":{"argumentTypes":null,"id":2542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2537,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2347,"src":"4282:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2540,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4330:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2538,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2347,"src":"4305:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"4305:24:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4305:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4282:59:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2543,"nodeType":"ExpressionStatement","src":"4282:59:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2551,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4419:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2552,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"4431:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2554,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"4453:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":2553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4445:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4445:15:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2546,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"4379:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":2547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4379:12:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4379:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2545,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4368:10:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":2549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4368:26:8","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":2550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"4368:50:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4368:93:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":2557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4463:32:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":2544,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4351:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:145:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2559,"nodeType":"ExpressionStatement","src":"4351:145:8"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2561,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"4518:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2562,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"4530:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2563,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4544:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2560,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"4511:6:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":2564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4511:44:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2565,"nodeType":"EmitStatement","src":"4506:49:8"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary to redeem.\n@param _auctionId the auction id to redeem from.\n@return uint256 reputation rewarded","id":2567,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":2483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2480,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":2567,"src":"3701:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2479,"name":"address","nodeType":"ElementaryTypeName","src":"3701:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2482,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2567,"src":"3723:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2481,"name":"uint256","nodeType":"ElementaryTypeName","src":"3723:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3700:42:8"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"name":"reputation","nodeType":"VariableDeclaration","scope":2567,"src":"3758:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"3758:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3757:20:8"},"scope":2716,"src":"3685:877:8","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2669,"nodeType":"Block","src":"4881:871:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2582,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"4899:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4909:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4899:11:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e6720616d6f756e742073686f756c64206265203e2030","id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:30:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""},"value":"bidding amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""}],"id":2581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4891:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4891:52:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2587,"nodeType":"ExpressionStatement","src":"4891:52:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2589,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5015:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":2590,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"5021:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5015:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e672073686f756c642062652077697468696e2074686520616c6c6f7765642062696464696e6720706572696f64","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5038:53:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0c865d88da5737488f432d67b77ddef7fb97e46932e0acfc8529e0d79263c69c","typeString":"literal_string \"bidding should be within the allowed bidding period\""},"value":"bidding should be within the allowed bidding period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c865d88da5737488f432d67b77ddef7fb97e46932e0acfc8529e0d79263c69c","typeString":"literal_string \"bidding should be within the allowed bidding period\""}],"id":2588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5007:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5007:85:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2594,"nodeType":"ExpressionStatement","src":"5007:85:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2596,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5164:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2597,"name":"auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2351,"src":"5171:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5164:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e6720697320656e61626c65206f6e6c792061667465722062696464696e672061756374696f6e73537461727454696d65","id":2599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5190:56:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b3c46ec49c227ce693896e0d5ba8b974fd53d8966040e17464bb6ed9ee0c786b","typeString":"literal_string \"bidding is enable only after bidding auctionsStartTime\""},"value":"bidding is enable only after bidding auctionsStartTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b3c46ec49c227ce693896e0d5ba8b974fd53d8966040e17464bb6ed9ee0c786b","typeString":"literal_string \"bidding is enable only after bidding auctionsStartTime\""}],"id":2595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5156:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5156:91:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2601,"nodeType":"ExpressionStatement","src":"5156:91:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5289:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5289:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2609,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21153,"src":"5309:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}],"id":2608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5301:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5301:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2611,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5316:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2603,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"5265:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":2602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5257:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5257:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"5257:31:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5257:67:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2613,"nodeType":"ExpressionStatement","src":"5257:67:8"},{"expression":{"argumentTypes":null,"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2614,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5388:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2615,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5401:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":2616,"name":"auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2351,"src":"5407:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5401:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2618,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5400:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":2619,"name":"auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2357,"src":"5428:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5400:41:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5388:53:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2622,"nodeType":"ExpressionStatement","src":"5388:53:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2624,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5459:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2625,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2571,"src":"5472:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5459:23:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"61756374696f6e206973206e6f7420616374697665","id":2627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5484:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_feae080948e32544504dcf3a351793c898a2d8f227e66397943e002cc8e92925","typeString":"literal_string \"auction is not active\""},"value":"auction is not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_feae080948e32544504dcf3a351793c898a2d8f227e66397943e002cc8e92925","typeString":"literal_string \"auction is not active\""}],"id":2623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5451:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5451:57:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2629,"nodeType":"ExpressionStatement","src":"5451:57:8"},{"assignments":[2631],"declarations":[{"constant":false,"id":2631,"name":"auction","nodeType":"VariableDeclaration","scope":2669,"src":"5518:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"},"typeName":{"contractScope":null,"id":2630,"name":"Auction","nodeType":"UserDefinedTypeName","referencedDeclaration":2339,"src":"5518:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"}},"value":null,"visibility":"internal"}],"id":2635,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2632,"name":"auctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"5544:8:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction storage ref)"}},"id":2634,"indexExpression":{"argumentTypes":null,"id":2633,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5553:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5544:19:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage","typeString":"struct Auction4Reputation.Auction storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5518:45:8"},{"expression":{"argumentTypes":null,"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2636,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5573:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalBid","nodeType":"MemberAccess","referencedDeclaration":2334,"src":"5573:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2642,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5613:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2639,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5592:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalBid","nodeType":"MemberAccess","referencedDeclaration":2334,"src":"5592:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"5592:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:29:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5573:48:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2645,"nodeType":"ExpressionStatement","src":"5573:48:8"},{"expression":{"argumentTypes":null,"id":2660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2646,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5631:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"5631:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2651,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2648,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5644:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5644:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5631:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2658,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5687:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2652,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5658:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"5658:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2656,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2654,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5671:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5671:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"5658:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5658:37:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5631:64:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2661,"nodeType":"ExpressionStatement","src":"5631:64:8"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2663,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5714:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5714:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2665,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5726:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2666,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5737:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2662,"name":"Bid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"5710:3:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5710:35:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2668,"nodeType":"EmitStatement","src":"5705:40:8"}]},"documentation":"@dev bid function\n@param _amount the amount to bid with\n@param _auctionId the auction id to bid at .\n@return auctionId","id":2670,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":2576,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"4830:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2577,"modifierName":{"argumentTypes":null,"id":2575,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"4820:9:8","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4820:25:8"}],"name":"bid","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2569,"name":"_amount","nodeType":"VariableDeclaration","scope":2670,"src":"4744:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2568,"name":"uint256","nodeType":"ElementaryTypeName","src":"4744:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2571,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2670,"src":"4761:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4761:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2573,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2670,"src":"4781:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4781:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4743:61:8"},"returnParameters":{"id":2580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"name":"auctionId","nodeType":"VariableDeclaration","scope":2670,"src":"4858:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2578,"name":"uint256","nodeType":"ElementaryTypeName","src":"4858:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4857:19:8"},"scope":2716,"src":"4731:1021:8","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2697,"nodeType":"Block","src":"5926:246:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2674,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5996:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2675,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"6002:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5996:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2061756374696f6e73456e6454696d65","id":2677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6019:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e38a5d6b01c4aa8afd00fc7ea91a131ebf42e5cdd1c0a78d28d19a7676fb052e","typeString":"literal_string \"now > auctionsEndTime\""},"value":"now > auctionsEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38a5d6b01c4aa8afd00fc7ea91a131ebf42e5cdd1c0a78d28d19a7676fb052e","typeString":"literal_string \"now > auctionsEndTime\""}],"id":2673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5988:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5988:55:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2679,"nodeType":"ExpressionStatement","src":"5988:55:8"},{"assignments":[2681],"declarations":[{"constant":false,"id":2681,"name":"tokenBalance","nodeType":"VariableDeclaration","scope":2697,"src":"6053:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2680,"name":"uint256","nodeType":"ElementaryTypeName","src":"6053:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2688,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21153,"src":"6100:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}],"id":2684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6092:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6092:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2682,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"6076:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"6076:15:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6076:30:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6053:53:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2693,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"6144:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2694,"name":"tokenBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6152:12:8","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":2690,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"6124:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":2689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6116:7:8","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":"6116:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"6116:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6116:49:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2696,"nodeType":"ExpressionStatement","src":"6116:49:8"}]},"documentation":"@dev transferToWallet transfer the tokens to the wallet.\n can be called only after auctionsEndTime","id":2698,"implemented":true,"kind":"function","modifiers":[],"name":"transferToWallet","nodeType":"FunctionDefinition","parameters":{"id":2671,"nodeType":"ParameterList","parameters":[],"src":"5916:2:8"},"returnParameters":{"id":2672,"nodeType":"ParameterList","parameters":[],"src":"5926:0:8"},"scope":2716,"src":"5891:281:8","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2714,"nodeType":"Block","src":"6427:58:8","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2707,"name":"auctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"6444:8:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction storage ref)"}},"id":2709,"indexExpression":{"argumentTypes":null,"id":2708,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"6453:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6444:20:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage","typeString":"struct Auction4Reputation.Auction storage ref"}},"id":2710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"6444:25:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2712,"indexExpression":{"argumentTypes":null,"id":2711,"name":"_bidder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"6470:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6444:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2706,"id":2713,"nodeType":"Return","src":"6437:41:8"}]},"documentation":"@dev getBid get bid for specific bidder and _auctionId\n@param _bidder the bidder\n@param _auctionId auction id\n@return uint","id":2715,"implemented":true,"kind":"function","modifiers":[],"name":"getBid","nodeType":"FunctionDefinition","parameters":{"id":2703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"name":"_bidder","nodeType":"VariableDeclaration","scope":2715,"src":"6361:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2699,"name":"address","nodeType":"ElementaryTypeName","src":"6361:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2702,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2715,"src":"6378:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2701,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6360:37:8"},"returnParameters":{"id":2706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2705,"name":"","nodeType":"VariableDeclaration","scope":2715,"src":"6418:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2704,"name":"uint256","nodeType":"ElementaryTypeName","src":"6418:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6417:9:8"},"scope":2716,"src":"6345:140:8","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":2717,"src":"260:6228:8"}],"src":"0:6489:8"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Auction4Reputation.sol","exportedSymbols":{"Auction4Reputation":[2716]},"id":2717,"nodeType":"SourceUnit","nodes":[{"id":2304,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:8"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":2305,"nodeType":"ImportDirective","scope":2717,"sourceUnit":20396,"src":"25:59:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":2306,"nodeType":"ImportDirective","scope":2717,"sourceUnit":1798,"src":"85:38:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":2307,"nodeType":"ImportDirective","scope":2717,"sourceUnit":2258,"src":"124:31:8","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":2308,"nodeType":"ImportDirective","scope":2717,"sourceUnit":2303,"src":"156:25:8","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":2309,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"291:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":2310,"nodeType":"InheritanceSpecifier","src":"291:9:8"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A scheme for conduct ERC20 Tokens auction for reputation","fullyImplemented":true,"id":2716,"linearizedBaseContracts":[2716,2302],"name":"Auction4Reputation","nodeType":"ContractDefinition","nodes":[{"id":2313,"libraryName":{"contractScope":null,"id":2311,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"313:8:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"307:27:8","typeName":{"id":2312,"name":"uint256","nodeType":"ElementaryTypeName","src":"326:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":2316,"libraryName":{"contractScope":null,"id":2314,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"345:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"339:28:8","typeName":{"id":2315,"name":"address","nodeType":"ElementaryTypeName","src":"359:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"anonymous":false,"documentation":null,"id":2324,"name":"Bid","nodeType":"EventDefinition","parameters":{"id":2323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2318,"indexed":true,"name":"_bidder","nodeType":"VariableDeclaration","scope":2324,"src":"383:23:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2317,"name":"address","nodeType":"ElementaryTypeName","src":"383:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2320,"indexed":true,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2324,"src":"408:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2319,"name":"uint256","nodeType":"ElementaryTypeName","src":"408:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2322,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":2324,"src":"436:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2321,"name":"uint256","nodeType":"ElementaryTypeName","src":"436:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"382:70:8"},"src":"373:80:8"},{"anonymous":false,"documentation":null,"id":2332,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":2331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2326,"indexed":true,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2332,"src":"471:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2325,"name":"uint256","nodeType":"ElementaryTypeName","src":"471:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2328,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":2332,"src":"499:28:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2327,"name":"address","nodeType":"ElementaryTypeName","src":"499:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2330,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":2332,"src":"529:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2329,"name":"uint256","nodeType":"ElementaryTypeName","src":"529:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"470:75:8"},"src":"458:88:8"},{"canonicalName":"Auction4Reputation.Auction","id":2339,"members":[{"constant":false,"id":2334,"name":"totalBid","nodeType":"VariableDeclaration","scope":2339,"src":"577:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2333,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2338,"name":"bids","nodeType":"VariableDeclaration","scope":2339,"src":"661:27:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2337,"keyType":{"id":2335,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"661:22:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2336,"name":"uint","nodeType":"ElementaryTypeName","src":"678:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Auction","nodeType":"StructDefinition","scope":2716,"src":"552:143:8","visibility":"public"},{"constant":false,"id":2343,"name":"auctions","nodeType":"VariableDeclaration","scope":2716,"src":"749:38:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction)"},"typeName":{"id":2342,"keyType":{"id":2340,"name":"uint","nodeType":"ElementaryTypeName","src":"757:4:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"749:22:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction)"},"valueType":{"contractScope":null,"id":2341,"name":"Auction","nodeType":"UserDefinedTypeName","referencedDeclaration":2339,"src":"763:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"}}},"value":null,"visibility":"public"},{"constant":false,"id":2345,"name":"avatar","nodeType":"VariableDeclaration","scope":2716,"src":"794:20:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":2344,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"794:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":2347,"name":"reputationRewardLeft","nodeType":"VariableDeclaration","scope":2716,"src":"820:35:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2346,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2349,"name":"auctionsEndTime","nodeType":"VariableDeclaration","scope":2716,"src":"861:30:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2348,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2351,"name":"auctionsStartTime","nodeType":"VariableDeclaration","scope":2716,"src":"897:32:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2350,"name":"uint256","nodeType":"ElementaryTypeName","src":"897:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2353,"name":"numberOfAuctions","nodeType":"VariableDeclaration","scope":2716,"src":"935:31:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2352,"name":"uint256","nodeType":"ElementaryTypeName","src":"935:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2355,"name":"auctionReputationReward","nodeType":"VariableDeclaration","scope":2716,"src":"972:38:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2354,"name":"uint256","nodeType":"ElementaryTypeName","src":"972:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2357,"name":"auctionPeriod","nodeType":"VariableDeclaration","scope":2716,"src":"1016:28:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2356,"name":"uint256","nodeType":"ElementaryTypeName","src":"1016:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2359,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":2716,"src":"1050:31:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2358,"name":"uint256","nodeType":"ElementaryTypeName","src":"1050:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2361,"name":"token","nodeType":"VariableDeclaration","scope":2716,"src":"1087:19:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":2360,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1087:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":2363,"name":"wallet","nodeType":"VariableDeclaration","scope":2716,"src":"1112:21:8","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2362,"name":"address","nodeType":"ElementaryTypeName","src":"1112:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":2477,"nodeType":"Block","src":"2496:975:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":2389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2385,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"2514:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2531: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":2386,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2524:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":2388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2524:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2514:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":2390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2535:29:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":2384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2506:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2506:59:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2392,"nodeType":"ExpressionStatement","src":"2506:59:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":2398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2394,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"2583:7:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2396,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2601: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":2395,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2594:6:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":2397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2594:9:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2583:20:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":2399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2605:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":2393,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2575:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2575:54:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2401,"nodeType":"ExpressionStatement","src":"2575:54:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2403,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"2647:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2667:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2647:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d626572206f662061756374696f6e732063616e6e6f74206265207a65726f","id":2406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2670:35:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ca6bc7d42bd53b979eac61ade562a196477004e28b8ef89fa1b4a852bfae5fab","typeString":"literal_string \"number of auctions cannot be zero\""},"value":"number of auctions cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca6bc7d42bd53b979eac61ade562a196477004e28b8ef89fa1b4a852bfae5fab","typeString":"literal_string \"number of auctions cannot be zero\""}],"id":2402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2639:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2639:67:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2408,"nodeType":"ExpressionStatement","src":"2639:67:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2410,"name":"_auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"2787:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"3135","id":2411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2804:2:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"2787:19:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"61756374696f6e506572696f642073686f756c64206265203e203135","id":2413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2808:30:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ea8585bceecaa274053596cdad480562fd1718c7f7b71ddfaaa16d09564807bc","typeString":"literal_string \"auctionPeriod should be > 15\""},"value":"auctionPeriod should be > 15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea8585bceecaa274053596cdad480562fd1718c7f7b71ddfaaa16d09564807bc","typeString":"literal_string \"auctionPeriod should be > 15\""}],"id":2409,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2779:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:60:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2415,"nodeType":"ExpressionStatement","src":"2779:60:8"},{"expression":{"argumentTypes":null,"id":2418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2416,"name":"auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2357,"src":"2849:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2417,"name":"_auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"2865:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2849:30:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2419,"nodeType":"ExpressionStatement","src":"2849:30:8"},{"expression":{"argumentTypes":null,"id":2427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2420,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"2889:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2421,"name":"_auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"2907:18:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2424,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"2947:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2422,"name":"_auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2371,"src":"2928:14:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"2928:18:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:37:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2907:58:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2889:76:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2428,"nodeType":"ExpressionStatement","src":"2889:76:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2430,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"2983:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2431,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"3004:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2983:36:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f72656465656d456e61626c6554696d65203e3d2061756374696f6e73456e6454696d65","id":2433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3021:38:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_162be27f56248be846d8759567c7e6cad9751cca920085acbde40bc1f8e484ac","typeString":"literal_string \"_redeemEnableTime >= auctionsEndTime\""},"value":"_redeemEnableTime >= auctionsEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_162be27f56248be846d8759567c7e6cad9751cca920085acbde40bc1f8e484ac","typeString":"literal_string \"_redeemEnableTime >= auctionsEndTime\""}],"id":2429,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2975:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2975:85:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2435,"nodeType":"ExpressionStatement","src":"2975:85:8"},{"expression":{"argumentTypes":null,"id":2438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2436,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"3070:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2437,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2377,"src":"3078:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"3070:14:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2439,"nodeType":"ExpressionStatement","src":"3070:14:8"},{"expression":{"argumentTypes":null,"id":2442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2440,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"3094:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2441,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"3103:7:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3094:16:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":2443,"nodeType":"ExpressionStatement","src":"3094:16:8"},{"expression":{"argumentTypes":null,"id":2446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2444,"name":"auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2351,"src":"3120:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2445,"name":"_auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2369,"src":"3140:18:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3120:38:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2447,"nodeType":"ExpressionStatement","src":"3120:38:8"},{"expression":{"argumentTypes":null,"id":2450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2448,"name":"numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"3168:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2449,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"3187:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3168:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2451,"nodeType":"ExpressionStatement","src":"3168:36:8"},{"expression":{"argumentTypes":null,"id":2454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2452,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"3214:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2453,"name":"_wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2379,"src":"3223:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3214:16:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2455,"nodeType":"ExpressionStatement","src":"3214:16:8"},{"expression":{"argumentTypes":null,"id":2458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2456,"name":"auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"3240:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2457,"name":"_auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"3266:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3240:50:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2459,"nodeType":"ExpressionStatement","src":"3240:50:8"},{"expression":{"argumentTypes":null,"id":2465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2460,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2347,"src":"3300:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2463,"name":"_numberOfAuctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2373,"src":"3352:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2461,"name":"_auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2367,"src":"3323:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"3323:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3323:47:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3300:70:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2466,"nodeType":"ExpressionStatement","src":"3300:70:8"},{"expression":{"argumentTypes":null,"id":2469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2467,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2359,"src":"3380:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2468,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"3399:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3380:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2470,"nodeType":"ExpressionStatement","src":"3380:36:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2474,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2381,"src":"3449:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":2471,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21154,"src":"3426:5:8","typeDescriptions":{"typeIdentifier":"t_super$_Auction4Reputation_$2716","typeString":"contract super Auction4Reputation"}},"id":2473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"3426:22:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":2475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3426:38:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2476,"nodeType":"ExpressionStatement","src":"3426:38:8"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _auctionReputationReward the reputation reward per auction this contract will reward\n for the token locking\n@param _auctionsStartTime auctions period start time\n@param _auctionPeriod auctions period time.\n auctionsEndTime is set to _auctionsStartTime + _auctionPeriod*_numberOfAuctions\n bidding is disable after auctionsEndTime.\n@param _numberOfAuctions number of auctions.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _token the bidding token\n@param _wallet the address of the wallet the token will be transfer to.\n Please note that _wallet address should be a trusted account.\n Normally this address should be set as the DAO's avatar address.\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":2478,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":2382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2365,"name":"_avatar","nodeType":"VariableDeclaration","scope":2478,"src":"2202:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":2364,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2202:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":2367,"name":"_auctionReputationReward","nodeType":"VariableDeclaration","scope":2478,"src":"2226:32:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2366,"name":"uint256","nodeType":"ElementaryTypeName","src":"2226:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2369,"name":"_auctionsStartTime","nodeType":"VariableDeclaration","scope":2478,"src":"2268:26:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2368,"name":"uint256","nodeType":"ElementaryTypeName","src":"2268:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2371,"name":"_auctionPeriod","nodeType":"VariableDeclaration","scope":2478,"src":"2304:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2370,"name":"uint256","nodeType":"ElementaryTypeName","src":"2304:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2373,"name":"_numberOfAuctions","nodeType":"VariableDeclaration","scope":2478,"src":"2336:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2372,"name":"uint256","nodeType":"ElementaryTypeName","src":"2336:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2375,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":2478,"src":"2371:25:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2374,"name":"uint256","nodeType":"ElementaryTypeName","src":"2371:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2377,"name":"_token","nodeType":"VariableDeclaration","scope":2478,"src":"2406:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":2376,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2406:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":2379,"name":"_wallet","nodeType":"VariableDeclaration","scope":2478,"src":"2429:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2378,"name":"address","nodeType":"ElementaryTypeName","src":"2429:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2381,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2478,"src":"2454:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2380,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2454:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2192:286:8"},"returnParameters":{"id":2383,"nodeType":"ParameterList","parameters":[],"src":"2496:0:8"},"scope":2716,"src":"2173:1298:8","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":2566,"nodeType":"Block","src":"3778:784:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2488,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3850:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2489,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2359,"src":"3856:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3850:22:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2072656465656d456e61626c6554696d65","id":2491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3874:24:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""},"value":"now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""}],"id":2487,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3842:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3842:57:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2493,"nodeType":"ExpressionStatement","src":"3842:57:8"},{"assignments":[2495],"declarations":[{"constant":false,"id":2495,"name":"auction","nodeType":"VariableDeclaration","scope":2566,"src":"3909:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"},"typeName":{"contractScope":null,"id":2494,"name":"Auction","nodeType":"UserDefinedTypeName","referencedDeclaration":2339,"src":"3909:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"}},"value":null,"visibility":"internal"}],"id":2499,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2496,"name":"auctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"3935:8:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction storage ref)"}},"id":2498,"indexExpression":{"argumentTypes":null,"id":2497,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"3944:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3935:20:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage","typeString":"struct Auction4Reputation.Auction storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3909:46:8"},{"assignments":[2501],"declarations":[{"constant":false,"id":2501,"name":"bid","nodeType":"VariableDeclaration","scope":2566,"src":"3965:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2500,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2506,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2502,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"3979:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"3979:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2505,"indexExpression":{"argumentTypes":null,"id":2504,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"3992:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3979:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3965:40:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2508,"name":"bid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"4023:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4029:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4023:7:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e6720616d6f756e742073686f756c64206265203e2030","id":2511,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4032:30:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""},"value":"bidding amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""}],"id":2507,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4015:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4015:48:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2513,"nodeType":"ExpressionStatement","src":"4015:48:8"},{"expression":{"argumentTypes":null,"id":2520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2514,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"4073:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"4073:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2518,"indexExpression":{"argumentTypes":null,"id":2516,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"4086:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4073:26:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":2519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4102:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4073:30:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2521,"nodeType":"ExpressionStatement","src":"4073:30:8"},{"assignments":[2523],"declarations":[{"constant":false,"id":2523,"name":"repRelation","nodeType":"VariableDeclaration","scope":2566,"src":"4113:19:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2522,"name":"uint256","nodeType":"ElementaryTypeName","src":"4113:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2528,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2526,"name":"auctionReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2355,"src":"4143:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2524,"name":"bid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2501,"src":"4135:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"4135:7:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4135:32:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4113:54:8"},{"expression":{"argumentTypes":null,"id":2535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2529,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4177:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2532,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2495,"src":"4206:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2533,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalBid","nodeType":"MemberAccess","referencedDeclaration":2334,"src":"4206:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2530,"name":"repRelation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2523,"src":"4190:11:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"4190:15:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4190:33:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4177:46:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2536,"nodeType":"ExpressionStatement","src":"4177:46:8"},{"expression":{"argumentTypes":null,"id":2542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2537,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2347,"src":"4282:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2540,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4330:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2538,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2347,"src":"4305:20:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"4305:24:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4305:36:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4282:59:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2543,"nodeType":"ExpressionStatement","src":"4282:59:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2551,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4419:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2552,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"4431:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2554,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"4453:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":2553,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4445:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4445:15:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2546,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2345,"src":"4379:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":2547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4379:12:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":2548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4379:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2545,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4368:10:8","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":2549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4368:26:8","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":2550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"4368:50:8","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":2556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4368:93:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":2557,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4463:32:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":2544,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4351:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4351:145:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2559,"nodeType":"ExpressionStatement","src":"4351:145:8"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2561,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2482,"src":"4518:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2562,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2480,"src":"4530:12:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2563,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2485,"src":"4544:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2560,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2332,"src":"4511:6:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":2564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4511:44:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2565,"nodeType":"EmitStatement","src":"4506:49:8"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary to redeem.\n@param _auctionId the auction id to redeem from.\n@return uint256 reputation rewarded","id":2567,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":2483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2480,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":2567,"src":"3701:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2479,"name":"address","nodeType":"ElementaryTypeName","src":"3701:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2482,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2567,"src":"3723:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2481,"name":"uint256","nodeType":"ElementaryTypeName","src":"3723:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3700:42:8"},"returnParameters":{"id":2486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2485,"name":"reputation","nodeType":"VariableDeclaration","scope":2567,"src":"3758:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2484,"name":"uint256","nodeType":"ElementaryTypeName","src":"3758:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3757:20:8"},"scope":2716,"src":"3685:877:8","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2669,"nodeType":"Block","src":"4881:871:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2582,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"4899:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4909:1:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4899:11:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e6720616d6f756e742073686f756c64206265203e2030","id":2585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4912:30:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""},"value":"bidding amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aa10a235e67a7d355f1d78174e6a95a5590313bf1908e9f3da3b322f1e19f24a","typeString":"literal_string \"bidding amount should be > 0\""}],"id":2581,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4891:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4891:52:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2587,"nodeType":"ExpressionStatement","src":"4891:52:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2589,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5015:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":2590,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"5021:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5015:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e672073686f756c642062652077697468696e2074686520616c6c6f7765642062696464696e6720706572696f64","id":2592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5038:53:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0c865d88da5737488f432d67b77ddef7fb97e46932e0acfc8529e0d79263c69c","typeString":"literal_string \"bidding should be within the allowed bidding period\""},"value":"bidding should be within the allowed bidding period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0c865d88da5737488f432d67b77ddef7fb97e46932e0acfc8529e0d79263c69c","typeString":"literal_string \"bidding should be within the allowed bidding period\""}],"id":2588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5007:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5007:85:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2594,"nodeType":"ExpressionStatement","src":"5007:85:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2596,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5164:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2597,"name":"auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2351,"src":"5171:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5164:24:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62696464696e6720697320656e61626c65206f6e6c792061667465722062696464696e672061756374696f6e73537461727454696d65","id":2599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5190:56:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b3c46ec49c227ce693896e0d5ba8b974fd53d8966040e17464bb6ed9ee0c786b","typeString":"literal_string \"bidding is enable only after bidding auctionsStartTime\""},"value":"bidding is enable only after bidding auctionsStartTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b3c46ec49c227ce693896e0d5ba8b974fd53d8966040e17464bb6ed9ee0c786b","typeString":"literal_string \"bidding is enable only after bidding auctionsStartTime\""}],"id":2595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5156:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5156:91:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2601,"nodeType":"ExpressionStatement","src":"5156:91:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2606,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5289:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5289:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2609,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21153,"src":"5309:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}],"id":2608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5301:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5301:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2611,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5316:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2603,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"5265:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":2602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5257:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5257:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"5257:31:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":2612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5257:67:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2613,"nodeType":"ExpressionStatement","src":"5257:67:8"},{"expression":{"argumentTypes":null,"id":2621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2614,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5388:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2615,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5401:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":2616,"name":"auctionsStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2351,"src":"5407:17:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5401:23:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":2618,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5400:25:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":2619,"name":"auctionPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2357,"src":"5428:13:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5400:41:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5388:53:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2622,"nodeType":"ExpressionStatement","src":"5388:53:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2624,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5459:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":2625,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2571,"src":"5472:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5459:23:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"61756374696f6e206973206e6f7420616374697665","id":2627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5484:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_feae080948e32544504dcf3a351793c898a2d8f227e66397943e002cc8e92925","typeString":"literal_string \"auction is not active\""},"value":"auction is not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_feae080948e32544504dcf3a351793c898a2d8f227e66397943e002cc8e92925","typeString":"literal_string \"auction is not active\""}],"id":2623,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5451:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5451:57:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2629,"nodeType":"ExpressionStatement","src":"5451:57:8"},{"assignments":[2631],"declarations":[{"constant":false,"id":2631,"name":"auction","nodeType":"VariableDeclaration","scope":2669,"src":"5518:23:8","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"},"typeName":{"contractScope":null,"id":2630,"name":"Auction","nodeType":"UserDefinedTypeName","referencedDeclaration":2339,"src":"5518:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction"}},"value":null,"visibility":"internal"}],"id":2635,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2632,"name":"auctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"5544:8:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction storage ref)"}},"id":2634,"indexExpression":{"argumentTypes":null,"id":2633,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5553:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5544:19:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage","typeString":"struct Auction4Reputation.Auction storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5518:45:8"},{"expression":{"argumentTypes":null,"id":2644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2636,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5573:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalBid","nodeType":"MemberAccess","referencedDeclaration":2334,"src":"5573:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2642,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5613:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2639,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5592:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalBid","nodeType":"MemberAccess","referencedDeclaration":2334,"src":"5592:16:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"5592:20:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5592:29:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5573:48:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2645,"nodeType":"ExpressionStatement","src":"5573:48:8"},{"expression":{"argumentTypes":null,"id":2660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2646,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5631:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"5631:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2651,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2648,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5644:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5644:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5631:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2658,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5687:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2652,"name":"auction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2631,"src":"5658:7:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage_ptr","typeString":"struct Auction4Reputation.Auction storage pointer"}},"id":2653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"5658:12:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2656,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2654,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5671:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5671:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5658:24:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"5658:28:8","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":2659,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5658:37:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5631:64:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2661,"nodeType":"ExpressionStatement","src":"5631:64:8"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2663,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5714:3:8","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5714:10:8","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":2665,"name":"auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2579,"src":"5726:9:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":2666,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2569,"src":"5737:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2662,"name":"Bid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2324,"src":"5710:3:8","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":2667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5710:35:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2668,"nodeType":"EmitStatement","src":"5705:40:8"}]},"documentation":"@dev bid function\n@param _amount the amount to bid with\n@param _auctionId the auction id to bid at .\n@return auctionId","id":2670,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":2576,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2573,"src":"4830:14:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2577,"modifierName":{"argumentTypes":null,"id":2575,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"4820:9:8","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4820:25:8"}],"name":"bid","nodeType":"FunctionDefinition","parameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2569,"name":"_amount","nodeType":"VariableDeclaration","scope":2670,"src":"4744:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2568,"name":"uint256","nodeType":"ElementaryTypeName","src":"4744:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2571,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2670,"src":"4761:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2570,"name":"uint256","nodeType":"ElementaryTypeName","src":"4761:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2573,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":2670,"src":"4781:22:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2572,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4781:7:8","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4743:61:8"},"returnParameters":{"id":2580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"name":"auctionId","nodeType":"VariableDeclaration","scope":2670,"src":"4858:17:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2578,"name":"uint256","nodeType":"ElementaryTypeName","src":"4858:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4857:19:8"},"scope":2716,"src":"4731:1021:8","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2697,"nodeType":"Block","src":"5926:246:8","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2674,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5996:3:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2675,"name":"auctionsEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2349,"src":"6002:15:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5996:21:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2061756374696f6e73456e6454696d65","id":2677,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6019:23:8","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e38a5d6b01c4aa8afd00fc7ea91a131ebf42e5cdd1c0a78d28d19a7676fb052e","typeString":"literal_string \"now > auctionsEndTime\""},"value":"now > auctionsEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e38a5d6b01c4aa8afd00fc7ea91a131ebf42e5cdd1c0a78d28d19a7676fb052e","typeString":"literal_string \"now > auctionsEndTime\""}],"id":2673,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5988:7:8","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5988:55:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2679,"nodeType":"ExpressionStatement","src":"5988:55:8"},{"assignments":[2681],"declarations":[{"constant":false,"id":2681,"name":"tokenBalance","nodeType":"VariableDeclaration","scope":2697,"src":"6053:20:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2680,"name":"uint256","nodeType":"ElementaryTypeName","src":"6053:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2688,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2685,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21153,"src":"6100:4:8","typeDescriptions":{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Auction4Reputation_$2716","typeString":"contract Auction4Reputation"}],"id":2684,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6092:7:8","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6092:13:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":2682,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"6076:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"6076:15:8","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6076:30:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6053:53:8"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2693,"name":"wallet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2363,"src":"6144:6:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2694,"name":"tokenBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2681,"src":"6152:12:8","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":2690,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2361,"src":"6124:5:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":2689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6116:7:8","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":"6116:14:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"6116:27:8","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":2695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6116:49:8","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2696,"nodeType":"ExpressionStatement","src":"6116:49:8"}]},"documentation":"@dev transferToWallet transfer the tokens to the wallet.\n can be called only after auctionsEndTime","id":2698,"implemented":true,"kind":"function","modifiers":[],"name":"transferToWallet","nodeType":"FunctionDefinition","parameters":{"id":2671,"nodeType":"ParameterList","parameters":[],"src":"5916:2:8"},"returnParameters":{"id":2672,"nodeType":"ParameterList","parameters":[],"src":"5926:0:8"},"scope":2716,"src":"5891:281:8","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":2714,"nodeType":"Block","src":"6427:58:8","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2707,"name":"auctions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2343,"src":"6444:8:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Auction_$2339_storage_$","typeString":"mapping(uint256 => struct Auction4Reputation.Auction storage ref)"}},"id":2709,"indexExpression":{"argumentTypes":null,"id":2708,"name":"_auctionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"6453:10:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6444:20:8","typeDescriptions":{"typeIdentifier":"t_struct$_Auction_$2339_storage","typeString":"struct Auction4Reputation.Auction storage ref"}},"id":2710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"bids","nodeType":"MemberAccess","referencedDeclaration":2338,"src":"6444:25:8","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":2712,"indexExpression":{"argumentTypes":null,"id":2711,"name":"_bidder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2700,"src":"6470:7:8","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6444:34:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":2706,"id":2713,"nodeType":"Return","src":"6437:41:8"}]},"documentation":"@dev getBid get bid for specific bidder and _auctionId\n@param _bidder the bidder\n@param _auctionId auction id\n@return uint","id":2715,"implemented":true,"kind":"function","modifiers":[],"name":"getBid","nodeType":"FunctionDefinition","parameters":{"id":2703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2700,"name":"_bidder","nodeType":"VariableDeclaration","scope":2715,"src":"6361:15:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2699,"name":"address","nodeType":"ElementaryTypeName","src":"6361:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2702,"name":"_auctionId","nodeType":"VariableDeclaration","scope":2715,"src":"6378:18:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2701,"name":"uint256","nodeType":"ElementaryTypeName","src":"6378:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6360:37:8"},"returnParameters":{"id":2706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2705,"name":"","nodeType":"VariableDeclaration","scope":2715,"src":"6418:7:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2704,"name":"uint256","nodeType":"ElementaryTypeName","src":"6418:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6417:9:8"},"scope":2716,"src":"6345:140:8","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":2717,"src":"260:6228:8"}],"src":"0:6489:8"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.069Z","devdoc":{"methods":{"bid(uint256,uint256,bytes32)":{"details":"bid function","params":{"_amount":"the amount to bid with","_auctionId":"the auction id to bid at ."},"return":"auctionId"},"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"getBid(address,uint256)":{"details":"getBid get bid for specific bidder and _auctionId","params":{"_auctionId":"auction id","_bidder":"the bidder"},"return":"uint"},"initialize(address,uint256,uint256,uint256,uint256,uint256,address,address,bytes32)":{"details":"initialize","params":{"_agreementHash":"is a hash of agreement required to be added to the TX by participants","_auctionPeriod":"auctions period time. auctionsEndTime is set to _auctionsStartTime + _auctionPeriod*_numberOfAuctions bidding is disable after auctionsEndTime.","_auctionReputationReward":"the reputation reward per auction this contract will reward for the token locking","_auctionsStartTime":"auctions period start time","_avatar":"the avatar to mint reputation from","_numberOfAuctions":"number of auctions.","_redeemEnableTime":"redeem enable time . redeem reputation can be done after this time.","_token":"the bidding token","_wallet":"the address of the wallet the token will be transfer to. Please note that _wallet address should be a trusted account. Normally this address should be set as the DAO's avatar address."}},"redeem(address,uint256)":{"details":"redeem reputation function","params":{"_auctionId":"the auction id to redeem from.","_beneficiary":"the beneficiary to redeem."},"return":"uint256 reputation rewarded"},"transferToWallet()":{"details":"transferToWallet transfer the tokens to the wallet. can be called only after auctionsEndTime"}},"title":"A scheme for conduct ERC20 Tokens auction for reputation"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Avatar.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Avatar.json new file mode 100644 index 00000000..184d48ca --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Avatar.json @@ -0,0 +1 @@ +{"contractName":"Avatar","abi":[{"inputs":[{"internalType":"string","name":"_orgName","type":"string"},{"internalType":"contract DAOToken","name":"_nativeToken","type":"address"},{"internalType":"contract Reputation","name":"_nativeReputation","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_externalToken","type":"address"},{"indexed":false,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ExternalTokenApproval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_externalToken","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ExternalTokenTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_externalToken","type":"address"},{"indexed":false,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ExternalTokenTransferFrom","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_contract","type":"address"},{"indexed":false,"internalType":"bytes","name":"_data","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_success","type":"bool"}],"name":"GenericCall","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_metaData","type":"string"}],"name":"MetaData","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ReceiveEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_amountInWei","type":"uint256"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"SendEther","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nativeReputation","outputs":[{"internalType":"contract Reputation","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nativeToken","outputs":[{"internalType":"contract DAOToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"orgName","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"genericCall","outputs":[{"internalType":"bool","name":"success","type":"bool"},{"internalType":"bytes","name":"returnValue","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountInWei","type":"uint256"},{"internalType":"address payable","name":"_to","type":"address"}],"name":"sendEther","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"externalTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"externalTokenTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"externalTokenApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_metaData","type":"string"}],"name":"metaData","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_orgName\",\"type\":\"string\"},{\"internalType\":\"contract DAOToken\",\"name\":\"_nativeToken\",\"type\":\"address\"},{\"internalType\":\"contract Reputation\",\"name\":\"_nativeReputation\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"ExternalTokenApproval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"ExternalTokenTransfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"ExternalTokenTransferFrom\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_success\",\"type\":\"bool\"}],\"name\":\"GenericCall\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_metaData\",\"type\":\"string\"}],\"name\":\"MetaData\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"ReceiveEther\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountInWei\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"SendEther\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"externalTokenApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"externalTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"externalTokenTransferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"genericCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"returnValue\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metaData\",\"type\":\"string\"}],\"name\":\"metaData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nativeReputation\",\"outputs\":[{\"internalType\":\"contract Reputation\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"contract DAOToken\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"orgName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountInWei\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"}],\"name\":\"sendEther\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"constructor\":{\"details\":\"the constructor takes organization name, native token and reputation system and creates an avatar for a controller\"},\"externalTokenApproval(address,address,uint256)\":{\"details\":\"externalTokenApproval approve the spender address to spend a specified amount of tokens on behalf of msg.sender.\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_spender\":\"address\",\"_value\":\"the amount of ether (in Wei) which the approval is referring to.\"},\"return\":\"bool which represents a success\"},\"externalTokenTransfer(address,address,uint256)\":{\"details\":\"external token transfer\",\"params\":{\"_externalToken\":\"the token contract\",\"_to\":\"the destination address\",\"_value\":\"the amount of tokens to transfer\"},\"return\":\"bool which represents success\"},\"externalTokenTransferFrom(address,address,address,uint256)\":{\"details\":\"external token transfer from a specific account\",\"params\":{\"_externalToken\":\"the token contract\",\"_from\":\"the account to spend token from\",\"_to\":\"the destination address\",\"_value\":\"the amount of tokens to transfer\"},\"return\":\"bool which represents success\"},\"genericCall(address,bytes,uint256)\":{\"details\":\"perform a generic call to an arbitrary contract\",\"params\":{\"_contract\":\"the contract's address to call\",\"_data\":\"ABI-encoded contract call to call `_contract` address.\",\"_value\":\"value (ETH) to transfer with the transaction\"},\"return\":\"bool success or fail bytes - the return bytes of the called contract's function.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"metaData(string)\":{\"details\":\"metaData emits an event with a string, should contain the hash of some meta data.\",\"params\":{\"_metaData\":\"a string representing a hash of the meta data\"},\"return\":\"bool which represents a success\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"sendEther(uint256,address)\":{\"details\":\"send ethers from the avatar's wallet\",\"params\":{\"_amountInWei\":\"amount to send in Wei units\",\"_to\":\"send the ethers to this address\"},\"return\":\"bool which represents success\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"An Avatar holds tokens, reputation and ether for a controller\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":\"Avatar\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"344:4644:1:-;;;1230:213;8:9:-1;5:2;;;30:1;27;20:12;5:2;1230:213:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1230:213:1;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;1230:213:1;;420:4:-1;411:14;;;;1230:213:1;;;;;411:14:-1;1230:213: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;1230:213:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1230:213:1;;;;;;;;;;;;;-1:-1:-1;1230:213:1;-1:-1:-1;707:12:67;:10;:12::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;1336:18:1;;;;:7;;:18;;;;;:::i;:::-;-1:-1:-1;1364:11:1;:26;;-1:-1:-1;;;;;1364:26:1;;;-1:-1:-1;;;;;;1364:26:1;;;;;;;1400:16;:36;;;;;;;;;;;-1:-1:-1;344:4644:1;;788:96:63;867:10;788:96;;:::o;344:4644:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;344:4644:1;;;-1:-1:-1;344:4644:1;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;","deployedSourceMap":"344:4644:1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1554:35;;;1579:9;1554:35;;;;1567:10;;1554:35;;;;;;;;;;344:4644;411:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;411:21:1;;;:::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;411:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1982:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1982:343:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1982:343:1;;-1:-1:-1;;;;;1982:343:1;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1982:343:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1982:343:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1982:343:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1982:343:1;;-1:-1:-1;;1982:343:1;;;-1:-1:-1;1982:343:1;;-1:-1:-1;;1982:343:1:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1982:343:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1642:137:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1642:137:67;;;:::i;:::-;;4848:136:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4848:136:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4848:136:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4848:136:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4848:136:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4848:136:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4848:136:1;;-1:-1:-1;4848:136:1;;-1:-1:-1;;;;;4848:136:1:i;:::-;;;;;;;;;;;;;;;;;;471:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;471:34:1;;;:::i;:::-;;;;-1:-1:-1;;;;;471:34:1;;;;;;;;;;;;;;857:77:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;857:77:67;;;:::i;1208:92::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1208:92:67;;;:::i;4322:297:1:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4322:297:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4322:297:1;;;;;;;;;;;;;;;;;:::i;3581:362::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3581:362:1;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;3581:362:1;;;;;;;;;;;;;;;;;;;;;;:::i;2541:200::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2541:200:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2541:200:1;;;;;;-1:-1:-1;;;;;2541:200:1;;:::i;2982:283::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2982:283:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2982:283:1;;;;;;;;;;;;;;;;;:::i;438:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;438:27:1;;;:::i;1928:107:67:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1928:107:67;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;411:21:1:-;;;;;;;;;;;;;;;-1:-1:-1;;411:21:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1982:343::-;2095:12;2109:24;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2222:9:1;-1:-1:-1;;;;;2222:14:1;2243:6;2251:5;2222:35;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2222:35:1;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2197:60:1;;;;;;;;2284:9;-1:-1:-1;;;;;2272:46:1;;2295:5;2302:6;2310:7;2272:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2272:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1982:343;;;;;;:::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;4848:136:1:-;4916:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;4937:19:1;4946:9;4937: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;4937:19:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4973:4:1;4848:136;;;:::o;471:34::-;;;-1:-1:-1;;;;;471:34:1;;:::o;857:77:67:-;895:7;921:6;-1:-1:-1;;;;;921:6:67;;857:77::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;;1208:92;-1:-1:-1;1208:92:67:o;4322:297:1:-;4439:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;4459:53:1;-1:-1:-1;;;;;4459:35:1;;4495:8;4505:6;4459:35;:53::i;:::-;4527:64;;;-1:-1:-1;;;;;4527:64:1;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4608:4:1;4322:297;;;;;:::o;3581:362::-;3750:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;3770:60:1;-1:-1:-1;;;;;3770:40:1;;3811:5;3818:3;3823:6;3770:40;:60::i;:::-;3845:70;;;-1:-1:-1;;;;;3845:70:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3932:4:1;3581:362;;;;;;:::o;2541:200::-;2628:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2644:26:1;;-1:-1:-1;;;;;2644:12:1;;;:26;;;;;;;;;;;;:12;:26;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;2685:28:1;;;;;;;;-1:-1:-1;;;;;2685:28:1;;;;;;;;;;;;;-1:-1:-1;2730:4:1;2541:200;;;;:::o;2982:283::-;3094:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;3114:49:1;-1:-1:-1;;;;;3114:36:1;;3151:3;3156:6;3114:36;:49::i;:::-;3178:59;;;;;;;;-1:-1:-1;;;;;3178:59:1;;;;;;;;;;;;;;;;;-1:-1:-1;3254:4:1;2982:283;;;;;:::o;438:27::-;;;-1:-1:-1;;;;;438:27:1;;:::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2169:793:6:-;2314:23;-1:-1:-1;;;;;2314:21:6;;;:23::i;:::-;2306:32;;;;;;2479:11;;;2478:77;;-1:-1:-1;2496:53:6;;;-1:-1:-1;;;2496:53:6;;2533:4;2496:53;;;;-1:-1:-1;;;;;2496:53:6;;;;;;;;;:28;;;;;;:53;;;;;;;;;;;;;;;:28;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;2496:53:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2496:53:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2496:53:6;:58;2478:77;2470:86;;;;;;951:33;;;;;;;;;;;;;;;;;2693:58;;-1:-1:-1;;;;;2693:58:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2693:58:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2677:75:6;;;;-1:-1:-1;;2582:24:6;;2677:15;;;2693:58;2677:75;;;25:18:-1;2677:75:6;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2677:75:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2567:185:6;;;;2820:7;2812:16;;;;;;2875:18;;:23;;:79;;;2903:11;:18;2925:2;2903:24;:50;;;;;2932:11;2944:2;2932:15;;;;;;;;;;;;-1:-1:-1;;;;;;2932:15:6;:20;;2903:50;2867:88;;;;;;2169:793;;;;;:::o;1566:597::-;1726:23;-1:-1:-1;;;;;1726:21:6;;;:23::i;:::-;1718:32;;;;;;1762:12;1776:24;1871:10;-1:-1:-1;;;;;1871:15:6;837:46;;;;;;;;;;;;;;;;;827:57;;;;;;;1887:65;;;-1:-1:-1;;;;;1887:65:6;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1887:65:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1887:65:6;;;179:29:-1;;;;160:49;;1871:82:6;;;;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1871:82:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1761:192:6;;;;2021:7;2013:16;;;;;;2076:18;;:23;;:79;;;2104:11;:18;2126:2;2104:24;:50;;;;;2133:11;2145:2;2133:15;;;;;;;;;;;;-1:-1:-1;;;;;;2133:15:6;:20;;2104:50;2068:88;;;;;;1566:597;;;;;;:::o;993:567::-;1134:23;-1:-1:-1;;;;;1134:21:6;;;:23::i;:::-;1126:32;;;;;;730:34;;;;;;;;;;;;;;;;;1295:54;;-1:-1:-1;;;;;1295:54:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1295:54:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1279:71:6;;;;-1:-1:-1;;1184:24:6;;1279:15;;;;1295:54;1279:71;;;;;;;25:18:-1;;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;2136:225:67;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/Reputation.sol\";\nimport \"./DAOToken.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"../libs/SafeERC20.sol\";\n\n\n/**\n * @title An Avatar holds tokens, reputation and ether for a controller\n */\ncontract Avatar is Ownable {\n using SafeERC20 for address;\n\n string public orgName;\n DAOToken public nativeToken;\n Reputation public nativeReputation;\n\n event GenericCall(address indexed _contract, bytes _data, uint _value, bool _success);\n event SendEther(uint256 _amountInWei, address indexed _to);\n event ExternalTokenTransfer(address indexed _externalToken, address indexed _to, uint256 _value);\n event ExternalTokenTransferFrom(address indexed _externalToken, address _from, address _to, uint256 _value);\n event ExternalTokenApproval(address indexed _externalToken, address _spender, uint256 _value);\n event ReceiveEther(address indexed _sender, uint256 _value);\n event MetaData(string _metaData);\n\n /**\n * @dev the constructor takes organization name, native token and reputation system\n and creates an avatar for a controller\n */\n constructor(string memory _orgName, DAOToken _nativeToken, Reputation _nativeReputation) public {\n orgName = _orgName;\n nativeToken = _nativeToken;\n nativeReputation = _nativeReputation;\n }\n\n /**\n * @dev enables an avatar to receive ethers\n */\n function() external payable {\n emit ReceiveEther(msg.sender, msg.value);\n }\n\n /**\n * @dev perform a generic call to an arbitrary contract\n * @param _contract the contract's address to call\n * @param _data ABI-encoded contract call to call `_contract` address.\n * @param _value value (ETH) to transfer with the transaction\n * @return bool success or fail\n * bytes - the return bytes of the called contract's function.\n */\n function genericCall(address _contract, bytes memory _data, uint256 _value)\n public\n onlyOwner\n returns(bool success, bytes memory returnValue) {\n // solhint-disable-next-line avoid-call-value\n (success, returnValue) = _contract.call.value(_value)(_data);\n emit GenericCall(_contract, _data, _value, success);\n }\n\n /**\n * @dev send ethers from the avatar's wallet\n * @param _amountInWei amount to send in Wei units\n * @param _to send the ethers to this address\n * @return bool which represents success\n */\n function sendEther(uint256 _amountInWei, address payable _to) public onlyOwner returns(bool) {\n _to.transfer(_amountInWei);\n emit SendEther(_amountInWei, _to);\n return true;\n }\n\n /**\n * @dev external token transfer\n * @param _externalToken the token contract\n * @param _to the destination address\n * @param _value the amount of tokens to transfer\n * @return bool which represents success\n */\n function externalTokenTransfer(IERC20 _externalToken, address _to, uint256 _value)\n public onlyOwner returns(bool)\n {\n address(_externalToken).safeTransfer(_to, _value);\n emit ExternalTokenTransfer(address(_externalToken), _to, _value);\n return true;\n }\n\n /**\n * @dev external token transfer from a specific account\n * @param _externalToken the token contract\n * @param _from the account to spend token from\n * @param _to the destination address\n * @param _value the amount of tokens to transfer\n * @return bool which represents success\n */\n function externalTokenTransferFrom(\n IERC20 _externalToken,\n address _from,\n address _to,\n uint256 _value\n )\n public onlyOwner returns(bool)\n {\n address(_externalToken).safeTransferFrom(_from, _to, _value);\n emit ExternalTokenTransferFrom(address(_externalToken), _from, _to, _value);\n return true;\n }\n\n /**\n * @dev externalTokenApproval approve the spender address to spend a specified amount of tokens\n * on behalf of msg.sender.\n * @param _externalToken the address of the Token Contract\n * @param _spender address\n * @param _value the amount of ether (in Wei) which the approval is referring to.\n * @return bool which represents a success\n */\n function externalTokenApproval(IERC20 _externalToken, address _spender, uint256 _value)\n public onlyOwner returns(bool)\n {\n address(_externalToken).safeApprove(_spender, _value);\n emit ExternalTokenApproval(address(_externalToken), _spender, _value);\n return true;\n }\n\n /**\n * @dev metaData emits an event with a string, should contain the hash of some meta data.\n * @param _metaData a string representing a hash of the meta data\n * @return bool which represents a success\n */\n function metaData(string memory _metaData) public onlyOwner returns(bool) {\n emit MetaData(_metaData);\n return true;\n }\n\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","exportedSymbols":{"Avatar":[337]},"id":338,"nodeType":"SourceUnit","nodes":[{"id":59,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:1"},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"@daostack/infra/contracts/Reputation.sol","id":60,"nodeType":"ImportDirective","scope":338,"sourceUnit":15083,"src":"25:50:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","file":"./DAOToken.sol","id":61,"nodeType":"ImportDirective","scope":338,"sourceUnit":1874,"src":"76:24:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":62,"nodeType":"ImportDirective","scope":338,"sourceUnit":20510,"src":"101:63:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":63,"nodeType":"ImportDirective","scope":338,"sourceUnit":21018,"src":"165:64:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":64,"nodeType":"ImportDirective","scope":338,"sourceUnit":2258,"src":"230:31:1","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":65,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"363:7:1","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":66,"nodeType":"InheritanceSpecifier","src":"363:7:1"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title An Avatar holds tokens, reputation and ether for a controller","fullyImplemented":true,"id":337,"linearizedBaseContracts":[337,20509,20058],"name":"Avatar","nodeType":"ContractDefinition","nodes":[{"id":69,"libraryName":{"contractScope":null,"id":67,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"383:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"377:28:1","typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"397:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":71,"name":"orgName","nodeType":"VariableDeclaration","scope":337,"src":"411:21:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":70,"name":"string","nodeType":"ElementaryTypeName","src":"411:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":false,"id":73,"name":"nativeToken","nodeType":"VariableDeclaration","scope":337,"src":"438:27:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":72,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"438:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"public"},{"constant":false,"id":75,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":337,"src":"471:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":74,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"471:10:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":85,"name":"GenericCall","nodeType":"EventDefinition","parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77,"indexed":true,"name":"_contract","nodeType":"VariableDeclaration","scope":85,"src":"530:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76,"name":"address","nodeType":"ElementaryTypeName","src":"530:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":79,"indexed":false,"name":"_data","nodeType":"VariableDeclaration","scope":85,"src":"557:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78,"name":"bytes","nodeType":"ElementaryTypeName","src":"557:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":81,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":85,"src":"570:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80,"name":"uint","nodeType":"ElementaryTypeName","src":"570:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":83,"indexed":false,"name":"_success","nodeType":"VariableDeclaration","scope":85,"src":"583:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82,"name":"bool","nodeType":"ElementaryTypeName","src":"583:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"529:68:1"},"src":"512:86:1"},{"anonymous":false,"documentation":null,"id":91,"name":"SendEther","nodeType":"EventDefinition","parameters":{"id":90,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"indexed":false,"name":"_amountInWei","nodeType":"VariableDeclaration","scope":91,"src":"619:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86,"name":"uint256","nodeType":"ElementaryTypeName","src":"619:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":89,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":91,"src":"641:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88,"name":"address","nodeType":"ElementaryTypeName","src":"641:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"618:43:1"},"src":"603:59:1"},{"anonymous":false,"documentation":null,"id":99,"name":"ExternalTokenTransfer","nodeType":"EventDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"indexed":true,"name":"_externalToken","nodeType":"VariableDeclaration","scope":99,"src":"695:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"695:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":95,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":99,"src":"727:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94,"name":"address","nodeType":"ElementaryTypeName","src":"727:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":97,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":99,"src":"748:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"694:69:1"},"src":"667:97:1"},{"anonymous":false,"documentation":null,"id":109,"name":"ExternalTokenTransferFrom","nodeType":"EventDefinition","parameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"indexed":true,"name":"_externalToken","nodeType":"VariableDeclaration","scope":109,"src":"801:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":103,"indexed":false,"name":"_from","nodeType":"VariableDeclaration","scope":109,"src":"833:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":105,"indexed":false,"name":"_to","nodeType":"VariableDeclaration","scope":109,"src":"848:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104,"name":"address","nodeType":"ElementaryTypeName","src":"848:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":107,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":109,"src":"861:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"800:76:1"},"src":"769:108:1"},{"anonymous":false,"documentation":null,"id":117,"name":"ExternalTokenApproval","nodeType":"EventDefinition","parameters":{"id":116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"indexed":true,"name":"_externalToken","nodeType":"VariableDeclaration","scope":117,"src":"910:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":113,"indexed":false,"name":"_spender","nodeType":"VariableDeclaration","scope":117,"src":"942:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":115,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":117,"src":"960:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":114,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"909:66:1"},"src":"882:94:1"},{"anonymous":false,"documentation":null,"id":123,"name":"ReceiveEther","nodeType":"EventDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":123,"src":"1000:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":121,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":123,"src":"1025:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120,"name":"uint256","nodeType":"ElementaryTypeName","src":"1025:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"999:41:1"},"src":"981:60:1"},{"anonymous":false,"documentation":null,"id":127,"name":"MetaData","nodeType":"EventDefinition","parameters":{"id":126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125,"indexed":false,"name":"_metaData","nodeType":"VariableDeclaration","scope":127,"src":"1061:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":124,"name":"string","nodeType":"ElementaryTypeName","src":"1061:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1060:18:1"},"src":"1046:33:1"},{"body":{"id":148,"nodeType":"Block","src":"1326:117:1","statements":[{"expression":{"argumentTypes":null,"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":136,"name":"orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"1336:7:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":137,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"1346:8:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1336:18:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":139,"nodeType":"ExpressionStatement","src":"1336:18:1"},{"expression":{"argumentTypes":null,"id":142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":140,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"1364:11:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":141,"name":"_nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"1378:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"src":"1364:26:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":143,"nodeType":"ExpressionStatement","src":"1364:26:1"},{"expression":{"argumentTypes":null,"id":146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":144,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75,"src":"1400:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":145,"name":"_nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"1419:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"1400:36:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":147,"nodeType":"ExpressionStatement","src":"1400:36:1"}]},"documentation":"@dev the constructor takes organization name, native token and reputation system\nand creates an avatar for a controller","id":149,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"name":"_orgName","nodeType":"VariableDeclaration","scope":149,"src":"1242:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":128,"name":"string","nodeType":"ElementaryTypeName","src":"1242:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":131,"name":"_nativeToken","nodeType":"VariableDeclaration","scope":149,"src":"1266:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":130,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"1266:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"internal"},{"constant":false,"id":133,"name":"_nativeReputation","nodeType":"VariableDeclaration","scope":149,"src":"1289:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":132,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"1289:10:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"}],"src":"1241:77:1"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"1326:0:1"},"scope":337,"src":"1230:213:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":159,"nodeType":"Block","src":"1539:57:1","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1567:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1567:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1579:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1579:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":152,"name":"ReceiveEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123,"src":"1554:12:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1554:35:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":158,"nodeType":"EmitStatement","src":"1549:40:1"}]},"documentation":"@dev enables an avatar to receive ethers","id":160,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":150,"nodeType":"ParameterList","parameters":[],"src":"1519:2:1"},"returnParameters":{"id":151,"nodeType":"ParameterList","parameters":[],"src":"1539:0:1"},"scope":337,"src":"1511:85:1","stateMutability":"payable","superFunction":null,"visibility":"external"},{"body":{"id":194,"nodeType":"Block","src":"2135:190:1","statements":[{"expression":{"argumentTypes":null,"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":175,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2198:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":176,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"2207:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":177,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2197:22:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":183,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":164,"src":"2251:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"id":181,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2243:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":178,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"2222:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2222:14:1","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2222:20:1","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2222:28:1","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2222:35:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"2197:60:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":186,"nodeType":"ExpressionStatement","src":"2197:60:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":188,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"2284:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":189,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":164,"src":"2295:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":190,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2302:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":191,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2310:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":187,"name":"GenericCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"2272:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,uint256,bool)"}},"id":192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:46:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":193,"nodeType":"EmitStatement","src":"2267:51:1"}]},"documentation":"@dev perform a generic call to an arbitrary contract\n@param _contract the contract's address to call\n@param _data ABI-encoded contract call to call `_contract` address.\n@param _value value (ETH) to transfer with the transaction\n@return bool success or fail\n bytes - the return bytes of the called contract's function.","id":195,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":169,"modifierName":{"argumentTypes":null,"id":168,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2073:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2073:9:1"}],"name":"genericCall","nodeType":"FunctionDefinition","parameters":{"id":167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"name":"_contract","nodeType":"VariableDeclaration","scope":195,"src":"2003:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":161,"name":"address","nodeType":"ElementaryTypeName","src":"2003:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":164,"name":"_data","nodeType":"VariableDeclaration","scope":195,"src":"2022:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":163,"name":"bytes","nodeType":"ElementaryTypeName","src":"2022:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":166,"name":"_value","nodeType":"VariableDeclaration","scope":195,"src":"2042:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint256","nodeType":"ElementaryTypeName","src":"2042:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2002:55:1"},"returnParameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"name":"success","nodeType":"VariableDeclaration","scope":195,"src":"2095:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"2095:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":173,"name":"returnValue","nodeType":"VariableDeclaration","scope":195,"src":"2109:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":172,"name":"bytes","nodeType":"ElementaryTypeName","src":"2109:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2094:40:1"},"scope":337,"src":"1982:343:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":219,"nodeType":"Block","src":"2634:107:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":209,"name":"_amountInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"2657:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":206,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"2644:3:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2644:12:1","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2644:26:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"2644:26:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":213,"name":"_amountInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"2695:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":214,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"2709:3:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":212,"name":"SendEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91,"src":"2685:9:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2685:28:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":216,"nodeType":"EmitStatement","src":"2680:33:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2730:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":205,"id":218,"nodeType":"Return","src":"2723:11:1"}]},"documentation":"@dev send ethers from the avatar's wallet\n@param _amountInWei amount to send in Wei units\n@param _to send the ethers to this address\n@return bool which represents success","id":220,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":202,"modifierName":{"argumentTypes":null,"id":201,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2610:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2610:9:1"}],"name":"sendEther","nodeType":"FunctionDefinition","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"name":"_amountInWei","nodeType":"VariableDeclaration","scope":220,"src":"2560:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2560:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":199,"name":"_to","nodeType":"VariableDeclaration","scope":220,"src":"2582:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"2582:15:1","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"2559:43:1"},"returnParameters":{"id":205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"name":"","nodeType":"VariableDeclaration","scope":220,"src":"2628:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":203,"name":"bool","nodeType":"ElementaryTypeName","src":"2628:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2627:6:1"},"scope":337,"src":"2541:200:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":251,"nodeType":"Block","src":"3104:161:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":237,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":238,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"3156:6:1","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":234,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"3122:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3114:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3114:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"3114:36:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3114:49:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"ExpressionStatement","src":"3114:49:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":243,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"3208:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3200:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3200:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":245,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"3225:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":246,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"3230:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":241,"name":"ExternalTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99,"src":"3178:21:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3178:59:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":248,"nodeType":"EmitStatement","src":"3173:64:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3254:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":232,"id":250,"nodeType":"Return","src":"3247:11:1"}]},"documentation":"@dev external token transfer\n@param _externalToken the token contract\n@param _to the destination address\n@param _value the amount of tokens to transfer\n@return bool which represents success","id":252,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":229,"modifierName":{"argumentTypes":null,"id":228,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3076:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3076:9:1"}],"name":"externalTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"name":"_externalToken","nodeType":"VariableDeclaration","scope":252,"src":"3013:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":221,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3013:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":224,"name":"_to","nodeType":"VariableDeclaration","scope":252,"src":"3036:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":223,"name":"address","nodeType":"ElementaryTypeName","src":"3036:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":226,"name":"_value","nodeType":"VariableDeclaration","scope":252,"src":"3049:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3012:52:1"},"returnParameters":{"id":232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":231,"name":"","nodeType":"VariableDeclaration","scope":252,"src":"3094:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":230,"name":"bool","nodeType":"ElementaryTypeName","src":"3094:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3093:6:1"},"scope":337,"src":"2982:283:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":287,"nodeType":"Block","src":"3760:183:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":271,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"3811:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":272,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3818:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":273,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3823:6: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,"arguments":[{"argumentTypes":null,"id":268,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"3778:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3770:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3770:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"3770:40:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3770:60:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":275,"nodeType":"ExpressionStatement","src":"3770:60:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":278,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"3879:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3871:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":280,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"3896:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":281,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3903:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":282,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3908:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":276,"name":"ExternalTokenTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"3845:25:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3845:70:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"EmitStatement","src":"3840:75:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3932:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":266,"id":286,"nodeType":"Return","src":"3925:11:1"}]},"documentation":"@dev external token transfer from a specific account\n@param _externalToken the token contract\n@param _from the account to spend token from\n@param _to the destination address\n@param _value the amount of tokens to transfer\n@return bool which represents success","id":288,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":263,"modifierName":{"argumentTypes":null,"id":262,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3732:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3732:9:1"}],"name":"externalTokenTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"name":"_externalToken","nodeType":"VariableDeclaration","scope":288,"src":"3625:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":253,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3625:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":256,"name":"_from","nodeType":"VariableDeclaration","scope":288,"src":"3656:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":255,"name":"address","nodeType":"ElementaryTypeName","src":"3656:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":258,"name":"_to","nodeType":"VariableDeclaration","scope":288,"src":"3679:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":257,"name":"address","nodeType":"ElementaryTypeName","src":"3679:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":260,"name":"_value","nodeType":"VariableDeclaration","scope":288,"src":"3700:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3700:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3615:105:1"},"returnParameters":{"id":266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":265,"name":"","nodeType":"VariableDeclaration","scope":288,"src":"3750:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":264,"name":"bool","nodeType":"ElementaryTypeName","src":"3750:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3749:6:1"},"scope":337,"src":"3581:362:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":319,"nodeType":"Block","src":"4449:170:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":305,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"4495:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":306,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"4505:6:1","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":302,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"4467:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4459:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"4459:35:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:53:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":308,"nodeType":"ExpressionStatement","src":"4459:53:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":311,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"4557:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4549:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4549:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":313,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"4574:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":314,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"4584:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":309,"name":"ExternalTokenApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"4527:21:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4527:64:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":316,"nodeType":"EmitStatement","src":"4522:69:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4608:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":300,"id":318,"nodeType":"Return","src":"4601:11:1"}]},"documentation":"@dev externalTokenApproval approve the spender address to spend a specified amount of tokens\n on behalf of msg.sender.\n@param _externalToken the address of the Token Contract\n@param _spender address\n@param _value the amount of ether (in Wei) which the approval is referring to.\n@return bool which represents a success","id":320,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":297,"modifierName":{"argumentTypes":null,"id":296,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4421:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4421:9:1"}],"name":"externalTokenApproval","nodeType":"FunctionDefinition","parameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":290,"name":"_externalToken","nodeType":"VariableDeclaration","scope":320,"src":"4353:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":289,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"4353:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":292,"name":"_spender","nodeType":"VariableDeclaration","scope":320,"src":"4376:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"4376:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":294,"name":"_value","nodeType":"VariableDeclaration","scope":320,"src":"4394:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":293,"name":"uint256","nodeType":"ElementaryTypeName","src":"4394:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4352:57:1"},"returnParameters":{"id":300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":299,"name":"","nodeType":"VariableDeclaration","scope":320,"src":"4439:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":298,"name":"bool","nodeType":"ElementaryTypeName","src":"4439:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4438:6:1"},"scope":337,"src":"4322:297:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":335,"nodeType":"Block","src":"4922:62:1","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":330,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":322,"src":"4946:9:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":329,"name":"MetaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127,"src":"4937:8:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4937:19:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":332,"nodeType":"EmitStatement","src":"4932:24:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4973:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":328,"id":334,"nodeType":"Return","src":"4966:11:1"}]},"documentation":"@dev metaData emits an event with a string, should contain the hash of some meta data.\n@param _metaData a string representing a hash of the meta data\n@return bool which represents a success","id":336,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":325,"modifierName":{"argumentTypes":null,"id":324,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4898:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4898:9:1"}],"name":"metaData","nodeType":"FunctionDefinition","parameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"name":"_metaData","nodeType":"VariableDeclaration","scope":336,"src":"4866:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":321,"name":"string","nodeType":"ElementaryTypeName","src":"4866:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4865:25:1"},"returnParameters":{"id":328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":327,"name":"","nodeType":"VariableDeclaration","scope":336,"src":"4916:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":326,"name":"bool","nodeType":"ElementaryTypeName","src":"4916:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4915:6:1"},"scope":337,"src":"4848:136:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":338,"src":"344:4644:1"}],"src":"0:4989:1"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","exportedSymbols":{"Avatar":[337]},"id":338,"nodeType":"SourceUnit","nodes":[{"id":59,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:1"},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"@daostack/infra/contracts/Reputation.sol","id":60,"nodeType":"ImportDirective","scope":338,"sourceUnit":15083,"src":"25:50:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","file":"./DAOToken.sol","id":61,"nodeType":"ImportDirective","scope":338,"sourceUnit":1874,"src":"76:24:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":62,"nodeType":"ImportDirective","scope":338,"sourceUnit":20510,"src":"101:63:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":63,"nodeType":"ImportDirective","scope":338,"sourceUnit":21018,"src":"165:64:1","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":64,"nodeType":"ImportDirective","scope":338,"sourceUnit":2258,"src":"230:31:1","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":65,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"363:7:1","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":66,"nodeType":"InheritanceSpecifier","src":"363:7:1"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title An Avatar holds tokens, reputation and ether for a controller","fullyImplemented":true,"id":337,"linearizedBaseContracts":[337,20509,20058],"name":"Avatar","nodeType":"ContractDefinition","nodes":[{"id":69,"libraryName":{"contractScope":null,"id":67,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"383:9:1","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"377:28:1","typeName":{"id":68,"name":"address","nodeType":"ElementaryTypeName","src":"397:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":71,"name":"orgName","nodeType":"VariableDeclaration","scope":337,"src":"411:21:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":70,"name":"string","nodeType":"ElementaryTypeName","src":"411:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":false,"id":73,"name":"nativeToken","nodeType":"VariableDeclaration","scope":337,"src":"438:27:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":72,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"438:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"public"},{"constant":false,"id":75,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":337,"src":"471:34:1","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":74,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"471:10:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":85,"name":"GenericCall","nodeType":"EventDefinition","parameters":{"id":84,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77,"indexed":true,"name":"_contract","nodeType":"VariableDeclaration","scope":85,"src":"530:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76,"name":"address","nodeType":"ElementaryTypeName","src":"530:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":79,"indexed":false,"name":"_data","nodeType":"VariableDeclaration","scope":85,"src":"557:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":78,"name":"bytes","nodeType":"ElementaryTypeName","src":"557:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":81,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":85,"src":"570:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80,"name":"uint","nodeType":"ElementaryTypeName","src":"570:4:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":83,"indexed":false,"name":"_success","nodeType":"VariableDeclaration","scope":85,"src":"583:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":82,"name":"bool","nodeType":"ElementaryTypeName","src":"583:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"529:68:1"},"src":"512:86:1"},{"anonymous":false,"documentation":null,"id":91,"name":"SendEther","nodeType":"EventDefinition","parameters":{"id":90,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"indexed":false,"name":"_amountInWei","nodeType":"VariableDeclaration","scope":91,"src":"619:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86,"name":"uint256","nodeType":"ElementaryTypeName","src":"619:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":89,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":91,"src":"641:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":88,"name":"address","nodeType":"ElementaryTypeName","src":"641:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"618:43:1"},"src":"603:59:1"},{"anonymous":false,"documentation":null,"id":99,"name":"ExternalTokenTransfer","nodeType":"EventDefinition","parameters":{"id":98,"nodeType":"ParameterList","parameters":[{"constant":false,"id":93,"indexed":true,"name":"_externalToken","nodeType":"VariableDeclaration","scope":99,"src":"695:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":92,"name":"address","nodeType":"ElementaryTypeName","src":"695:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":95,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":99,"src":"727:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":94,"name":"address","nodeType":"ElementaryTypeName","src":"727:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":97,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":99,"src":"748:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":96,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"694:69:1"},"src":"667:97:1"},{"anonymous":false,"documentation":null,"id":109,"name":"ExternalTokenTransferFrom","nodeType":"EventDefinition","parameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":101,"indexed":true,"name":"_externalToken","nodeType":"VariableDeclaration","scope":109,"src":"801:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100,"name":"address","nodeType":"ElementaryTypeName","src":"801:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":103,"indexed":false,"name":"_from","nodeType":"VariableDeclaration","scope":109,"src":"833:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102,"name":"address","nodeType":"ElementaryTypeName","src":"833:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":105,"indexed":false,"name":"_to","nodeType":"VariableDeclaration","scope":109,"src":"848:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":104,"name":"address","nodeType":"ElementaryTypeName","src":"848:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":107,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":109,"src":"861:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":106,"name":"uint256","nodeType":"ElementaryTypeName","src":"861:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"800:76:1"},"src":"769:108:1"},{"anonymous":false,"documentation":null,"id":117,"name":"ExternalTokenApproval","nodeType":"EventDefinition","parameters":{"id":116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":111,"indexed":true,"name":"_externalToken","nodeType":"VariableDeclaration","scope":117,"src":"910:30:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":110,"name":"address","nodeType":"ElementaryTypeName","src":"910:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":113,"indexed":false,"name":"_spender","nodeType":"VariableDeclaration","scope":117,"src":"942:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":112,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":115,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":117,"src":"960:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":114,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"909:66:1"},"src":"882:94:1"},{"anonymous":false,"documentation":null,"id":123,"name":"ReceiveEther","nodeType":"EventDefinition","parameters":{"id":122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":119,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":123,"src":"1000:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":118,"name":"address","nodeType":"ElementaryTypeName","src":"1000:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":121,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":123,"src":"1025:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":120,"name":"uint256","nodeType":"ElementaryTypeName","src":"1025:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"999:41:1"},"src":"981:60:1"},{"anonymous":false,"documentation":null,"id":127,"name":"MetaData","nodeType":"EventDefinition","parameters":{"id":126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":125,"indexed":false,"name":"_metaData","nodeType":"VariableDeclaration","scope":127,"src":"1061:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":124,"name":"string","nodeType":"ElementaryTypeName","src":"1061:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1060:18:1"},"src":"1046:33:1"},{"body":{"id":148,"nodeType":"Block","src":"1326:117:1","statements":[{"expression":{"argumentTypes":null,"id":138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":136,"name":"orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71,"src":"1336:7:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":137,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":129,"src":"1346:8:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"1336:18:1","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":139,"nodeType":"ExpressionStatement","src":"1336:18:1"},{"expression":{"argumentTypes":null,"id":142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":140,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"1364:11:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":141,"name":"_nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"1378:12:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"src":"1364:26:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":143,"nodeType":"ExpressionStatement","src":"1364:26:1"},{"expression":{"argumentTypes":null,"id":146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":144,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75,"src":"1400:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":145,"name":"_nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"1419:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"1400:36:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":147,"nodeType":"ExpressionStatement","src":"1400:36:1"}]},"documentation":"@dev the constructor takes organization name, native token and reputation system\nand creates an avatar for a controller","id":149,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":129,"name":"_orgName","nodeType":"VariableDeclaration","scope":149,"src":"1242:22:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":128,"name":"string","nodeType":"ElementaryTypeName","src":"1242:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":131,"name":"_nativeToken","nodeType":"VariableDeclaration","scope":149,"src":"1266:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":130,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"1266:8:1","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"internal"},{"constant":false,"id":133,"name":"_nativeReputation","nodeType":"VariableDeclaration","scope":149,"src":"1289:28:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":132,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"1289:10:1","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"}],"src":"1241:77:1"},"returnParameters":{"id":135,"nodeType":"ParameterList","parameters":[],"src":"1326:0:1"},"scope":337,"src":"1230:213:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":159,"nodeType":"Block","src":"1539:57:1","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":153,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1567:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1567:10:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1579:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1579:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":152,"name":"ReceiveEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":123,"src":"1554:12:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1554:35:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":158,"nodeType":"EmitStatement","src":"1549:40:1"}]},"documentation":"@dev enables an avatar to receive ethers","id":160,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":150,"nodeType":"ParameterList","parameters":[],"src":"1519:2:1"},"returnParameters":{"id":151,"nodeType":"ParameterList","parameters":[],"src":"1539:0:1"},"scope":337,"src":"1511:85:1","stateMutability":"payable","superFunction":null,"visibility":"external"},{"body":{"id":194,"nodeType":"Block","src":"2135:190:1","statements":[{"expression":{"argumentTypes":null,"id":185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":175,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2198:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":176,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"2207:11:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":177,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2197:22:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":183,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":164,"src":"2251:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"id":181,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2243:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":178,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"2222:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2222:14:1","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2222:20:1","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2222:28:1","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2222:35:1","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"2197:60:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":186,"nodeType":"ExpressionStatement","src":"2197:60:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":188,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":162,"src":"2284:9:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":189,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":164,"src":"2295:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":190,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2302:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":191,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"2310:7:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":187,"name":"GenericCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":85,"src":"2272:11:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,bytes memory,uint256,bool)"}},"id":192,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:46:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":193,"nodeType":"EmitStatement","src":"2267:51:1"}]},"documentation":"@dev perform a generic call to an arbitrary contract\n@param _contract the contract's address to call\n@param _data ABI-encoded contract call to call `_contract` address.\n@param _value value (ETH) to transfer with the transaction\n@return bool success or fail\n bytes - the return bytes of the called contract's function.","id":195,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":169,"modifierName":{"argumentTypes":null,"id":168,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2073:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2073:9:1"}],"name":"genericCall","nodeType":"FunctionDefinition","parameters":{"id":167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":162,"name":"_contract","nodeType":"VariableDeclaration","scope":195,"src":"2003:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":161,"name":"address","nodeType":"ElementaryTypeName","src":"2003:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":164,"name":"_data","nodeType":"VariableDeclaration","scope":195,"src":"2022:18:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":163,"name":"bytes","nodeType":"ElementaryTypeName","src":"2022:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":166,"name":"_value","nodeType":"VariableDeclaration","scope":195,"src":"2042:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":165,"name":"uint256","nodeType":"ElementaryTypeName","src":"2042:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2002:55:1"},"returnParameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"name":"success","nodeType":"VariableDeclaration","scope":195,"src":"2095:12:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"2095:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":173,"name":"returnValue","nodeType":"VariableDeclaration","scope":195,"src":"2109:24:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":172,"name":"bytes","nodeType":"ElementaryTypeName","src":"2109:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2094:40:1"},"scope":337,"src":"1982:343:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":219,"nodeType":"Block","src":"2634:107:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":209,"name":"_amountInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"2657:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":206,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"2644:3:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2644:12:1","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2644:26:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":211,"nodeType":"ExpressionStatement","src":"2644:26:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":213,"name":"_amountInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":197,"src":"2695:12:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":214,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"2709:3:1","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":212,"name":"SendEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91,"src":"2685:9:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,address)"}},"id":215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2685:28:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":216,"nodeType":"EmitStatement","src":"2680:33:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2730:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":205,"id":218,"nodeType":"Return","src":"2723:11:1"}]},"documentation":"@dev send ethers from the avatar's wallet\n@param _amountInWei amount to send in Wei units\n@param _to send the ethers to this address\n@return bool which represents success","id":220,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":202,"modifierName":{"argumentTypes":null,"id":201,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2610:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2610:9:1"}],"name":"sendEther","nodeType":"FunctionDefinition","parameters":{"id":200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"name":"_amountInWei","nodeType":"VariableDeclaration","scope":220,"src":"2560:20:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint256","nodeType":"ElementaryTypeName","src":"2560:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":199,"name":"_to","nodeType":"VariableDeclaration","scope":220,"src":"2582:19:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":198,"name":"address","nodeType":"ElementaryTypeName","src":"2582:15:1","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"2559:43:1"},"returnParameters":{"id":205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":204,"name":"","nodeType":"VariableDeclaration","scope":220,"src":"2628:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":203,"name":"bool","nodeType":"ElementaryTypeName","src":"2628:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2627:6:1"},"scope":337,"src":"2541:200:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":251,"nodeType":"Block","src":"3104:161:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":237,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"3151:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":238,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"3156:6:1","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":234,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"3122:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3114:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3114:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"3114:36:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3114:49:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":240,"nodeType":"ExpressionStatement","src":"3114:49:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":243,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":222,"src":"3208:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3200:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3200:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":245,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":224,"src":"3225:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":246,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":226,"src":"3230:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":241,"name":"ExternalTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99,"src":"3178:21:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3178:59:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":248,"nodeType":"EmitStatement","src":"3173:64:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3254:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":232,"id":250,"nodeType":"Return","src":"3247:11:1"}]},"documentation":"@dev external token transfer\n@param _externalToken the token contract\n@param _to the destination address\n@param _value the amount of tokens to transfer\n@return bool which represents success","id":252,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":229,"modifierName":{"argumentTypes":null,"id":228,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3076:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3076:9:1"}],"name":"externalTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":227,"nodeType":"ParameterList","parameters":[{"constant":false,"id":222,"name":"_externalToken","nodeType":"VariableDeclaration","scope":252,"src":"3013:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":221,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3013:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":224,"name":"_to","nodeType":"VariableDeclaration","scope":252,"src":"3036:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":223,"name":"address","nodeType":"ElementaryTypeName","src":"3036:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":226,"name":"_value","nodeType":"VariableDeclaration","scope":252,"src":"3049:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":225,"name":"uint256","nodeType":"ElementaryTypeName","src":"3049:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3012:52:1"},"returnParameters":{"id":232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":231,"name":"","nodeType":"VariableDeclaration","scope":252,"src":"3094:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":230,"name":"bool","nodeType":"ElementaryTypeName","src":"3094:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3093:6:1"},"scope":337,"src":"2982:283:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":287,"nodeType":"Block","src":"3760:183:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":271,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"3811:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":272,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3818:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":273,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3823:6: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,"arguments":[{"argumentTypes":null,"id":268,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"3778:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3770:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3770:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"3770:40:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3770:60:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":275,"nodeType":"ExpressionStatement","src":"3770:60:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":278,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":254,"src":"3879:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3871:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3871:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":280,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":256,"src":"3896:5:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":281,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":258,"src":"3903:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":282,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":260,"src":"3908:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":276,"name":"ExternalTokenTransferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":109,"src":"3845:25:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3845:70:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"EmitStatement","src":"3840:75:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3932:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":266,"id":286,"nodeType":"Return","src":"3925:11:1"}]},"documentation":"@dev external token transfer from a specific account\n@param _externalToken the token contract\n@param _from the account to spend token from\n@param _to the destination address\n@param _value the amount of tokens to transfer\n@return bool which represents success","id":288,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":263,"modifierName":{"argumentTypes":null,"id":262,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3732:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3732:9:1"}],"name":"externalTokenTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":254,"name":"_externalToken","nodeType":"VariableDeclaration","scope":288,"src":"3625:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":253,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3625:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":256,"name":"_from","nodeType":"VariableDeclaration","scope":288,"src":"3656:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":255,"name":"address","nodeType":"ElementaryTypeName","src":"3656:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":258,"name":"_to","nodeType":"VariableDeclaration","scope":288,"src":"3679:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":257,"name":"address","nodeType":"ElementaryTypeName","src":"3679:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":260,"name":"_value","nodeType":"VariableDeclaration","scope":288,"src":"3700:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":259,"name":"uint256","nodeType":"ElementaryTypeName","src":"3700:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3615:105:1"},"returnParameters":{"id":266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":265,"name":"","nodeType":"VariableDeclaration","scope":288,"src":"3750:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":264,"name":"bool","nodeType":"ElementaryTypeName","src":"3750:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3749:6:1"},"scope":337,"src":"3581:362:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":319,"nodeType":"Block","src":"4449:170:1","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":305,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"4495:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":306,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"4505:6:1","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":302,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"4467:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":301,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4459:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"4459:35:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4459:53:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":308,"nodeType":"ExpressionStatement","src":"4459:53:1"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":311,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":290,"src":"4557:14:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4549:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4549:23:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":313,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":292,"src":"4574:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":314,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":294,"src":"4584:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":309,"name":"ExternalTokenApproval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":117,"src":"4527:21:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4527:64:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":316,"nodeType":"EmitStatement","src":"4522:69:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4608:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":300,"id":318,"nodeType":"Return","src":"4601:11:1"}]},"documentation":"@dev externalTokenApproval approve the spender address to spend a specified amount of tokens\n on behalf of msg.sender.\n@param _externalToken the address of the Token Contract\n@param _spender address\n@param _value the amount of ether (in Wei) which the approval is referring to.\n@return bool which represents a success","id":320,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":297,"modifierName":{"argumentTypes":null,"id":296,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4421:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4421:9:1"}],"name":"externalTokenApproval","nodeType":"FunctionDefinition","parameters":{"id":295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":290,"name":"_externalToken","nodeType":"VariableDeclaration","scope":320,"src":"4353:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":289,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"4353:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":292,"name":"_spender","nodeType":"VariableDeclaration","scope":320,"src":"4376:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":291,"name":"address","nodeType":"ElementaryTypeName","src":"4376:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":294,"name":"_value","nodeType":"VariableDeclaration","scope":320,"src":"4394:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":293,"name":"uint256","nodeType":"ElementaryTypeName","src":"4394:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4352:57:1"},"returnParameters":{"id":300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":299,"name":"","nodeType":"VariableDeclaration","scope":320,"src":"4439:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":298,"name":"bool","nodeType":"ElementaryTypeName","src":"4439:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4438:6:1"},"scope":337,"src":"4322:297:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":335,"nodeType":"Block","src":"4922:62:1","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":330,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":322,"src":"4946:9:1","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":329,"name":"MetaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":127,"src":"4937:8:1","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4937:19:1","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":332,"nodeType":"EmitStatement","src":"4932:24:1"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4973:4:1","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":328,"id":334,"nodeType":"Return","src":"4966:11:1"}]},"documentation":"@dev metaData emits an event with a string, should contain the hash of some meta data.\n@param _metaData a string representing a hash of the meta data\n@return bool which represents a success","id":336,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":325,"modifierName":{"argumentTypes":null,"id":324,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4898:9:1","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4898:9:1"}],"name":"metaData","nodeType":"FunctionDefinition","parameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"name":"_metaData","nodeType":"VariableDeclaration","scope":336,"src":"4866:23:1","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":321,"name":"string","nodeType":"ElementaryTypeName","src":"4866:6:1","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4865:25:1"},"returnParameters":{"id":328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":327,"name":"","nodeType":"VariableDeclaration","scope":336,"src":"4916:4:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":326,"name":"bool","nodeType":"ElementaryTypeName","src":"4916:4:1","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4915:6:1"},"scope":337,"src":"4848:136:1","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":338,"src":"344:4644:1"}],"src":"0:4989:1"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.043Z","devdoc":{"methods":{"constructor":{"details":"the constructor takes organization name, native token and reputation system and creates an avatar for a controller"},"externalTokenApproval(address,address,uint256)":{"details":"externalTokenApproval approve the spender address to spend a specified amount of tokens on behalf of msg.sender.","params":{"_externalToken":"the address of the Token Contract","_spender":"address","_value":"the amount of ether (in Wei) which the approval is referring to."},"return":"bool which represents a success"},"externalTokenTransfer(address,address,uint256)":{"details":"external token transfer","params":{"_externalToken":"the token contract","_to":"the destination address","_value":"the amount of tokens to transfer"},"return":"bool which represents success"},"externalTokenTransferFrom(address,address,address,uint256)":{"details":"external token transfer from a specific account","params":{"_externalToken":"the token contract","_from":"the account to spend token from","_to":"the destination address","_value":"the amount of tokens to transfer"},"return":"bool which represents success"},"genericCall(address,bytes,uint256)":{"details":"perform a generic call to an arbitrary contract","params":{"_contract":"the contract's address to call","_data":"ABI-encoded contract call to call `_contract` address.","_value":"value (ETH) to transfer with the transaction"},"return":"bool success or fail bytes - the return bytes of the called contract's function."},"isOwner()":{"details":"Returns true if the caller is the current owner."},"metaData(string)":{"details":"metaData emits an event with a string, should contain the hash of some meta data.","params":{"_metaData":"a string representing a hash of the meta data"},"return":"bool which represents a success"},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"sendEther(uint256,address)":{"details":"send ethers from the avatar's wallet","params":{"_amountInWei":"amount to send in Wei units","_to":"send the ethers to this address"},"return":"bool which represents success"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"An Avatar holds tokens, reputation and ether for a controller"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/BadERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/BadERC20.json new file mode 100644 index 00000000..432eca2e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/BadERC20.json @@ -0,0 +1 @@ +{"contractName":"BadERC20","abi":[{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"balances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/BadERC20.sol\":\"BadERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/BadERC20.sol\":{\"keccak256\":\"0xe2fef0e26f062cbda1665222f48077a628800ed4ced9c8d3e8694309dbdf8e7e\",\"urls\":[\"bzz-raw://75cc9db0bcc322cfe89c1aa24175fc2875570dc7f2fa283ffa03aa7a019330f5\",\"dweb:/ipfs/QmbHV625rtQvYkALGN7imxknP9JVyEp6Me2EnmHRHAZcqa\"]}},\"version\":1}","sourceMap":"151:477:28:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;151:477:28;;;;;;;","deployedSourceMap":"151:477:28:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;151:477:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;510:115;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;510:115:28;;;;;;;;:::i;:::-;;397:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;397:107:28;;;;;;;;;;;;;;;;;:::i;176:43::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;176:43:28;-1:-1:-1;;;;;176:43:28;;:::i;:::-;;;;;;;;;;;;;;;;298:93;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;298:93:28;;;;;;;;:::i;225:66::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;225:66:28;;;;;;;;;;:::i;510:115::-;588:10;578:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;578:31:28;;;;;;;;;;;;;:40;510:115::o;397:107::-;-1:-1:-1;;;;;474:13:28;;;:8;:13;;;;;;;;;;:23;;;;;;;-1:-1:-1;397:107:28:o;176:43::-;;;;;;;;;;;;;;:::o;298:93::-;-1:-1:-1;;;;;362:13:28;;;:8;:13;;;;;;;;;;:22;298:93::o;225:66::-;;;;;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\n//this is a mock to simulate bad ERC20 token implementation as describe at\n//https://github.com/ethereum/solidity/issues/4116\ncontract BadERC20 {\n\n mapping(address => uint256) public balances;\n mapping (address => mapping (address => uint256)) public allowance;\n\n function transfer(address _to, uint256 _value) public {\n balances[_to] = _value;\n }\n\n function transferFrom(address, address _to, uint256 _value) public {\n balances[_to] += _value;\n }\n\n function approve(address _spender, uint256 _value) public {\n allowance[msg.sender][_spender] = _value;\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/BadERC20.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/BadERC20.sol","exportedSymbols":{"BadERC20":[8910]},"id":8911,"nodeType":"SourceUnit","nodes":[{"id":8852,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:28"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8910,"linearizedBaseContracts":[8910],"name":"BadERC20","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8856,"name":"balances","nodeType":"VariableDeclaration","scope":8910,"src":"176:43:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8855,"keyType":{"id":8853,"name":"address","nodeType":"ElementaryTypeName","src":"184:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"176:27:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8854,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":8862,"name":"allowance","nodeType":"VariableDeclaration","scope":8910,"src":"225:66:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":8861,"keyType":{"id":8857,"name":"address","nodeType":"ElementaryTypeName","src":"234:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"225:49:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":8860,"keyType":{"id":8858,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"245:28:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8859,"name":"uint256","nodeType":"ElementaryTypeName","src":"265:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"body":{"id":8875,"nodeType":"Block","src":"352:39:28","statements":[{"expression":{"argumentTypes":null,"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8869,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8856,"src":"362:8:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8871,"indexExpression":{"argumentTypes":null,"id":8870,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8864,"src":"371:3:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"362:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8872,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8866,"src":"378:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"362:22:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8874,"nodeType":"ExpressionStatement","src":"362:22:28"}]},"documentation":null,"id":8876,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8864,"name":"_to","nodeType":"VariableDeclaration","scope":8876,"src":"316:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8863,"name":"address","nodeType":"ElementaryTypeName","src":"316:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8866,"name":"_value","nodeType":"VariableDeclaration","scope":8876,"src":"329:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8865,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"315:29:28"},"returnParameters":{"id":8868,"nodeType":"ParameterList","parameters":[],"src":"352:0:28"},"scope":8910,"src":"298:93:28","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8891,"nodeType":"Block","src":"464:40:28","statements":[{"expression":{"argumentTypes":null,"id":8889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8885,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8856,"src":"474:8:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8887,"indexExpression":{"argumentTypes":null,"id":8886,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"483:3:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"474:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"id":8888,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"491:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"474:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8890,"nodeType":"ExpressionStatement","src":"474:23:28"}]},"documentation":null,"id":8892,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":8883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8878,"name":"","nodeType":"VariableDeclaration","scope":8892,"src":"419:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8877,"name":"address","nodeType":"ElementaryTypeName","src":"419:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8880,"name":"_to","nodeType":"VariableDeclaration","scope":8892,"src":"428:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8879,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8882,"name":"_value","nodeType":"VariableDeclaration","scope":8892,"src":"441:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8881,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"418:38:28"},"returnParameters":{"id":8884,"nodeType":"ParameterList","parameters":[],"src":"464:0:28"},"scope":8910,"src":"397:107:28","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8908,"nodeType":"Block","src":"568:57:28","statements":[{"expression":{"argumentTypes":null,"id":8906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8899,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8862,"src":"578:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":8903,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8900,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"588:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"588:10:28","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"578:21:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8904,"indexExpression":{"argumentTypes":null,"id":8902,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8894,"src":"600:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"578:31:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8905,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8896,"src":"612:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"578:40:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8907,"nodeType":"ExpressionStatement","src":"578:40:28"}]},"documentation":null,"id":8909,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":8897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8894,"name":"_spender","nodeType":"VariableDeclaration","scope":8909,"src":"527:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8893,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8896,"name":"_value","nodeType":"VariableDeclaration","scope":8909,"src":"545:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8895,"name":"uint256","nodeType":"ElementaryTypeName","src":"545:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"526:34:28"},"returnParameters":{"id":8898,"nodeType":"ParameterList","parameters":[],"src":"568:0:28"},"scope":8910,"src":"510:115:28","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":8911,"src":"151:477:28"}],"src":"0:629:28"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/BadERC20.sol","exportedSymbols":{"BadERC20":[8910]},"id":8911,"nodeType":"SourceUnit","nodes":[{"id":8852,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:28"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8910,"linearizedBaseContracts":[8910],"name":"BadERC20","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8856,"name":"balances","nodeType":"VariableDeclaration","scope":8910,"src":"176:43:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8855,"keyType":{"id":8853,"name":"address","nodeType":"ElementaryTypeName","src":"184:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"176:27:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8854,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":8862,"name":"allowance","nodeType":"VariableDeclaration","scope":8910,"src":"225:66:28","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":8861,"keyType":{"id":8857,"name":"address","nodeType":"ElementaryTypeName","src":"234:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"225:49:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":8860,"keyType":{"id":8858,"name":"address","nodeType":"ElementaryTypeName","src":"254:7:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"245:28:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8859,"name":"uint256","nodeType":"ElementaryTypeName","src":"265:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"body":{"id":8875,"nodeType":"Block","src":"352:39:28","statements":[{"expression":{"argumentTypes":null,"id":8873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8869,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8856,"src":"362:8:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8871,"indexExpression":{"argumentTypes":null,"id":8870,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8864,"src":"371:3:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"362:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8872,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8866,"src":"378:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"362:22:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8874,"nodeType":"ExpressionStatement","src":"362:22:28"}]},"documentation":null,"id":8876,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":8867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8864,"name":"_to","nodeType":"VariableDeclaration","scope":8876,"src":"316:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8863,"name":"address","nodeType":"ElementaryTypeName","src":"316:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8866,"name":"_value","nodeType":"VariableDeclaration","scope":8876,"src":"329:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8865,"name":"uint256","nodeType":"ElementaryTypeName","src":"329:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"315:29:28"},"returnParameters":{"id":8868,"nodeType":"ParameterList","parameters":[],"src":"352:0:28"},"scope":8910,"src":"298:93:28","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8891,"nodeType":"Block","src":"464:40:28","statements":[{"expression":{"argumentTypes":null,"id":8889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8885,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8856,"src":"474:8:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8887,"indexExpression":{"argumentTypes":null,"id":8886,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8880,"src":"483:3:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"474:13:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"argumentTypes":null,"id":8888,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8882,"src":"491:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"474:23:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8890,"nodeType":"ExpressionStatement","src":"474:23:28"}]},"documentation":null,"id":8892,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":8883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8878,"name":"","nodeType":"VariableDeclaration","scope":8892,"src":"419:7:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8877,"name":"address","nodeType":"ElementaryTypeName","src":"419:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8880,"name":"_to","nodeType":"VariableDeclaration","scope":8892,"src":"428:11:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8879,"name":"address","nodeType":"ElementaryTypeName","src":"428:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8882,"name":"_value","nodeType":"VariableDeclaration","scope":8892,"src":"441:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8881,"name":"uint256","nodeType":"ElementaryTypeName","src":"441:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"418:38:28"},"returnParameters":{"id":8884,"nodeType":"ParameterList","parameters":[],"src":"464:0:28"},"scope":8910,"src":"397:107:28","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8908,"nodeType":"Block","src":"568:57:28","statements":[{"expression":{"argumentTypes":null,"id":8906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8899,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8862,"src":"578:9:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":8903,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8900,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"588:3:28","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"588:10:28","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"578:21:28","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8904,"indexExpression":{"argumentTypes":null,"id":8902,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8894,"src":"600:8:28","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"578:31:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8905,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8896,"src":"612:6:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"578:40:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8907,"nodeType":"ExpressionStatement","src":"578:40:28"}]},"documentation":null,"id":8909,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":8897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8894,"name":"_spender","nodeType":"VariableDeclaration","scope":8909,"src":"527:16:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8893,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:28","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8896,"name":"_value","nodeType":"VariableDeclaration","scope":8909,"src":"545:14:28","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8895,"name":"uint256","nodeType":"ElementaryTypeName","src":"545:7:28","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"526:34:28"},"returnParameters":{"id":8898,"nodeType":"ParameterList","parameters":[],"src":"568:0:28"},"scope":8910,"src":"510:115:28","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":8911,"src":"151:477:28"}],"src":"0:629:28"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.144Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Competition.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Competition.json new file mode 100644 index 00000000..684041b8 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Competition.json @@ -0,0 +1 @@ +{"contractName":"Competition","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_numberOfWinners","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"_rewardSplit","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"_startTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_votingStartTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_suggestionsEndTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_endTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_maxNumberOfVotesPerVoter","type":"uint256"},{"indexed":false,"internalType":"address payable","name":"_contributionRewardExt","type":"address"},{"indexed":false,"internalType":"address","name":"_admin","type":"address"}],"name":"NewCompetitionProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"_suggestionId","type":"uint256"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"},{"indexed":true,"internalType":"address payable","name":"_beneficiary","type":"address"}],"name":"NewSuggestion","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"_suggestionId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"NewVote","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"_suggestionId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_rewardPercentage","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_snapshotBlock","type":"uint256"}],"name":"SnapshotBlock","type":"event"},{"constant":true,"inputs":[],"name":"MAX_NUMBER_OF_WINNERS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"contributionRewardExt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"uint256","name":"numberOfWinners","type":"uint256"},{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"votingStartTime","type":"uint256"},{"internalType":"uint256","name":"suggestionsEndTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"maxNumberOfVotesPerVoter","type":"uint256"},{"internalType":"address payable","name":"contributionRewardExt","type":"address"},{"internalType":"uint256","name":"snapshotBlock","type":"uint256"},{"internalType":"uint256","name":"reputationReward","type":"uint256"},{"internalType":"uint256","name":"ethReward","type":"uint256"},{"internalType":"uint256","name":"nativeTokenReward","type":"uint256"},{"internalType":"uint256","name":"externalTokenReward","type":"uint256"},{"internalType":"address","name":"admin","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"suggestions","outputs":[{"internalType":"uint256","name":"totalVotes","type":"uint256"},{"internalType":"bytes32","name":"proposalId","type":"bytes32"},{"internalType":"address payable","name":"beneficiary","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"suggestionsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_contributionRewardExt","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_descriptionHash","type":"string"},{"internalType":"int256","name":"_reputationChange","type":"int256"},{"internalType":"uint256[3]","name":"_rewards","type":"uint256[3]"},{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"uint256[]","name":"_rewardSplit","type":"uint256[]"},{"internalType":"uint256[5]","name":"_competitionParams","type":"uint256[5]"},{"internalType":"bool","name":"_proposerIsAdmin","type":"bool"}],"name":"proposeCompetition","outputs":[{"internalType":"bytes32","name":"proposalId","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"string","name":"_descriptionHash","type":"string"},{"internalType":"address payable","name":"_beneficiary","type":"address"}],"name":"suggest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_suggestionId","type":"uint256"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"setSnapshotBlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"sendLeftOverFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_suggestionId","type":"uint256"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_suggestionId","type":"uint256"}],"name":"getOrderedIndexOfSuggestion","outputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numberOfWinners\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"_rewardSplit\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_startTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_votingStartTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_suggestionsEndTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_endTime\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_maxNumberOfVotesPerVoter\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"_contributionRewardExt\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"NewCompetitionProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_suggestionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"NewSuggestion\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_suggestionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"NewVote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_suggestionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_rewardPercentage\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_snapshotBlock\",\"type\":\"uint256\"}],\"name\":\"SnapshotBlock\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_NUMBER_OF_WINNERS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contributionRewardExt\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_suggestionId\",\"type\":\"uint256\"}],\"name\":\"getOrderedIndexOfSuggestion\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_contributionRewardExt\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numberOfWinners\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votingStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"suggestionsEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxNumberOfVotesPerVoter\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"contributionRewardExt\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"snapshotBlock\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"nativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"_reputationChange\",\"type\":\"int256\"},{\"internalType\":\"uint256[3]\",\"name\":\"_rewards\",\"type\":\"uint256[3]\"},{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_rewardSplit\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[5]\",\"name\":\"_competitionParams\",\"type\":\"uint256[5]\"},{\"internalType\":\"bool\",\"name\":\"_proposerIsAdmin\",\"type\":\"bool\"}],\"name\":\"proposeCompetition\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"proposalId\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_suggestionId\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"sendLeftOverFunds\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"setSnapshotBlock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"suggest\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"suggestions\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"suggestionsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_suggestionId\",\"type\":\"uint256\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getOrderedIndexOfSuggestion(uint256)\":{\"details\":\"getOrderedIndexOfSuggestion return the index of specific suggestion in the winners list. for the case when the suggestion is NOT in the winners list, this method will return topSuggestions.length\",\"params\":{\"_suggestionId\":\"suggestion id\"}},\"initialize(address)\":{\"details\":\"initialize\",\"params\":{\"_contributionRewardExt\":\"the contributionRewardExt scheme which manage and allocate the rewards for the competition.\"}},\"proposeCompetition(string,int256,uint256[3],address,uint256[],uint256[5],bool)\":{\"details\":\"Submit a competion proposal\",\"params\":{\"_competitionParams\":\"competition parameters : _competitionParams[0] - competition startTime _competitionParams[1] - _votingStartTime competition voting start time _competitionParams[2] - _endTime competition end time _competitionParams[3] - _maxNumberOfVotesPerVoter on how many suggestions a voter can vote _competitionParams[4] - _suggestionsEndTime suggestion submission end time _proposerIsAdmin - true - proposer is an admin. false no admin. if admin is set, so only admin can suggest on this proposal.\",\"_descriptionHash\":\"A hash of the proposal's description\",\"_externalToken\":\"Address of external token, if reward is requested there\",\"_reputationChange\":\"- Amount of reputation change requested.\",\"_rewardSplit\":\"an array of precentages which specify how to split the rewards between the winning suggestions\",\"_rewards\":\"rewards array: rewards[0] - Amount of tokens requested per period rewards[1] - Amount of ETH requested per period rewards[2] - Amount of external tokens requested per period\"},\"return\":\"proposalId the proposal id.\"},\"redeem(uint256)\":{\"details\":\"redeem a winning suggestion reward\",\"params\":{\"_suggestionId\":\"suggestionId\"}},\"sendLeftOverFunds(bytes32)\":{\"details\":\"sendLeftOverFund send leftover funds back to the dao.\",\"params\":{\"_proposalId\":\"the proposal id\"}},\"setSnapshotBlock(bytes32)\":{\"details\":\"setSnapshotBlock set the block for the reputaion snapshot this function is public in order to externaly set snapshot block regardless of the first voting event.\",\"params\":{\"_proposalId\":\"the proposal id\"}},\"suggest(bytes32,string,address)\":{\"details\":\"submit a competion suggestion\",\"params\":{\"_beneficiary\":\"the beneficiary of this suggestion.\",\"_descriptionHash\":\"a descriptionHash of the suggestion.\",\"_proposalId\":\"the proposal id this suggestion is referring to.\"},\"return\":\"suggestionId the suggestionId.\"},\"vote(uint256)\":{\"details\":\"vote on a suggestion\",\"params\":{\"_suggestionId\":\"suggestionId\"},\"return\":\"bool\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/Competition.sol\":\"Competition\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Competition.sol\":{\"keccak256\":\"0x0232eb7fd466d3a9e048edecbc4867a9cc1ad625eeaf960f064d3e91b4f86949\",\"urls\":[\"bzz-raw://07d9060474d98815d8638e049e5c972b145b33930bd1e5d9e81b12e47cfbf2b1\",\"dweb:/ipfs/QmUwLiZwoJRNTVZTM4EB8xFjGhTnxut5VEpt2websbn6TK\"]},\"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol\":{\"keccak256\":\"0x271a840a4b3f4f1edd032d6954e2db0f59a4336abd3ed29cc72dd99b56b35e1a\",\"urls\":[\"bzz-raw://6954d78cf36f562668500408d210610239d03c76e70947c0e24d8abc9f3b3c8a\",\"dweb:/ipfs/QmNqAyf47Z7CM28xWbkPZAQV5XyasUsnkW71idmi1D8wmp\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"65:18734:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;65:18734:9;;;;;;;","deployedSourceMap":"65:18734:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;65:18734:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9344:1668;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9344:1668:9;;:::i;:::-;;;;;;;;;;;;;;;;;;2286:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2286:47:9;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;2286:47:9;;;;;;;;;;;;;;2191:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2191:43:9;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2191:43:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4311:3461;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;4311:3461:9;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4311:3461:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4311:3461:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4311:3461:9;;;;;;;;;;;-1:-1:-1;;;;;4311:3461:9;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4311:3461:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4311:3461:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4311:3461:9;;-1:-1:-1;4311:3461:9;-1:-1:-1;4311:3461:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2378:44;;;:::i;:::-;;;;-1:-1:-1;;;;;2378:44:9;;;;;;;;;;;;;;16536:615;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16536:615:9;;:::i;11878:1365::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11878:1365:9;;:::i;:::-;;8082:1150;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8082:1150:9;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;8082:1150:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8082:1150:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;8082:1150:9;;-1:-1:-1;8082:1150:9;-1:-1:-1;8082:1150:9;-1:-1:-1;;;;;8082:1150:9;;:::i;2653:312::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2653:312:9;-1:-1:-1;;;;;2653:312:9;;:::i;2339:33::-;;;:::i;125:51::-;;;:::i;13350:2905::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13350:2905:9;;:::i;11252:499::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11252:499:9;;:::i;9344:1668::-;9406:4;9447:26;;;:11;:26;;;;;;;:37;;9502:24;9494:62;;;;;-1:-1:-1;;;9494:62:9;;;;;;;;;;;;-1:-1:-1;;;9494:62:9;;;;;;;;;;;;;;;9566:28;9583:10;9566:16;:28::i;:::-;9642:21;;9620:53;;;-1:-1:-1;;;9620:53:9;;;;9604:13;;-1:-1:-1;;;;;9642:21:9;;9620:51;;:53;;;;;;;;;;;;;;9642:21;9620:53;;;5:2:-1;;;;30:1;27;20:12;5:2;9620:53:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9620:53:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9620:53:9;9704:25;;;-1:-1:-1;;;9704:25:9;;;;9620:53;;-1:-1:-1;9683:18:9;;-1:-1:-1;;;;;9704:23:9;;;;;:25;;;;;9620:53;;9704:25;;;;;;;:23;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;9704:25:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9704:25:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9704:25:9;9754:9;:21;;;9704:25;9754:21;;;;;;;;:35;;;9704:86;;-1:-1:-1;;;9704:86:9;;9742:10;9704:86;;;;;;;;;;;;;-1:-1:-1;;;;;9704:37:9;;;;;;:86;;;;;:25;:86;;;;;;:37;:86;;;5:2:-1;;;;30:1;27;20:12;5:2;9704:86:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9704:86:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9704:86:9;;-1:-1:-1;9808:14:9;9800:74;;;;-1:-1:-1;;;9800:74:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9884:25;9912:21;;;;;;;;;;10005:16;;;;10024:3;-1:-1:-1;9997:52:9;;;;;-1:-1:-1;;;9997:52:9;;;;;;;;;;;;-1:-1:-1;;;9997:52:9;;;;;;;;;;;;;;;10059:29;10091:26;;;:11;:26;;;;;;;;10152:10;10135:28;;:16;;;:28;;;;;;;:33;10127:78;;;;;-1:-1:-1;;;10127:78:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10260:33;;;;10246:10;10223:34;;;;:22;;;:34;;;;;;:70;10215:121;;;;;-1:-1:-1;;;10215:121:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;10406:10;10383:34;;;;:22;;;:34;;;;;;:41;;10422:1;10383:41;:38;:41;:::i;:::-;10369:10;10346:34;;;;:22;;;:34;;;;;:78;10438:21;;:25;10434:178;;10572:21;;10544:50;;;;:27;;;:50;;;;;;:57;;10599:1;10544:57;:54;:57;:::i;:::-;10507:21;;10479:50;;;;:27;;;:50;;;;;:122;10434:178;10645:21;;:37;;10671:10;10645:37;:25;:37;:::i;:::-;10621:61;;;:21;10745:50;;;:27;;;:50;;;;;;:57;;10800:1;10745:57;:54;:57;:::i;:::-;10720:21;;10692:50;;;;:27;;;:50;;;;;;;;:110;;;;10829:10;10812:28;;:16;;;:28;;;:41;;;10863:48;10885:10;10897:13;10863:21;:48::i;:::-;10926:58;;;;;;;;10961:10;;10946:13;;10934:10;;10926:58;;;;;;;;;;-1:-1:-1;11001:4:9;;9344:1668;-1:-1:-1;;;;;;9344:1668:9:o;2286:47::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2286:47:9;;:::o;2191:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2191:43:9;;;;;;;;;;;;;;;:::o;4311:3461::-;4712:18;4768:12;4817:21;;;4848:116;;-1:-1:-1;4950:3:9;4848:116;5048:3;5035:9;:16;;5027:76;;;;-1:-1:-1;;;5027:76:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;173:3;5121:15;:40;;5113:95;;;;-1:-1:-1;;;5113:95:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5250:21;;;;;5226;;;:45;5218:97;;;;-1:-1:-1;;;5218:97:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5333:21;;;;:34;-1:-1:-1;5333:34:9;5325:88;;;;-1:-1:-1;;;5325:88:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5431:21;;;;5423:87;;;;-1:-1:-1;;;5423:87:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5553:21;;;;5528;;;;:46;;5520:126;;;;-1:-1:-1;;;5520:126:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5664:21;;;;:33;-1:-1:-1;5656:105:9;;;;-1:-1:-1;;;5656:105:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5775:11;;;;:15;5771:113;;-1:-1:-1;;;;;5814:26:9;;5806:67;;;;;-1:-1:-1;;;5806:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;5922:1;5901:17;:22;;5893:94;;;;-1:-1:-1;;;5893:94:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5997:24;;6031:127;6055:15;6051:1;:19;6031:127;;;6110:37;6131:12;;6144:1;6131:15;;;;;;;;;;;;;6110:16;:20;;:37;;;;:::i;:::-;6091:56;-1:-1:-1;6072:3:9;;6031:127;;;;6175:16;6195:3;6175:23;6167:67;;;;;-1:-1:-1;;;6167:67:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;6279:21;;6257:185;;-1:-1:-1;;;6257:185:9;;;;;;;;-1:-1:-1;;;;;6279:21:9;;;;6257:70;;6345:16;;;;6363:17;;6382:8;;6392:14;;6279:21;;6431:10;;6257:185;;;;;;;;6382:8;6257:185;;6382:8;6257:185;1:33:-1;99:1;81:16;;;74:27;-1:-1;;;;;6257:185:9;;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;6257:185:9;;;;;;;;;;;;;;;;;-1:-1:-1;6257:185:9;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;6257:185:9;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6257:185:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6257:185:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6257:185:9;6452:9;:21;;;6257:185;6452:21;;;;;;:55;;;6257:185;;-1:-1:-1;6517:48:9;;:33;;6553:12;;6517:48;:::i;:::-;-1:-1:-1;6575:9:9;:21;;;;;;;;;;;:31;;;:43;;;6668:21;;;;6628:37;;;:61;6731:21;;;;6699:29;;;:53;6811:21;;;;6762:46;;;:70;6885:21;;;;6904:1;6842:40;;:64;6916:38;;;:67;;;7035:11;;6993:39;;;:53;7090:11;;;;7056:31;;;:45;7155:11;;;7111:41;;;:55;7176:35;;:39;7225:87;;;;7261:9;:21;;;;;;;;;;:27;;:40;;-1:-1:-1;;;;;;7261:40:9;7291:10;7261:40;;;7225:87;7415:9;:21;;;;;;;;;;;;7485:37;;;;;7536:40;;;;7590:29;;;;7633:46;;;;7693:21;;7728:27;;;;7326:439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7693:21:9;;;7326:439;;;;;;7728:27;;7693:21;7326:439;;;;;;;;;;;;7415:33;;;;7326:439;;;;;;;;7362:10;;7326:439;;7386:15;;7415:33;;7462:9;;7485:37;7536:40;7590:29;7633:46;;7693:21;;7728:27;;7326:439;;;;;7415:33;;7326:439;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4311:3461;;;;;;;;;;;;;;:::o;2378:44::-;;;-1:-1:-1;;;;;2378:44:9;;:::o;16536:615::-;16628:13;16674:26;;;:11;:26;;;;;;;:37;;16729:24;16721:62;;;;;-1:-1:-1;;;16721:62:9;;;;;;;;;;;;-1:-1:-1;;;16721:62:9;;;;;;;;;;;;;;;16827:9;:21;;;;;;;;;;;;:36;;16793:70;;;;;;;;;;;;;;;;;:31;;:70;;;16827:36;16793:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16793:70:9;;-1:-1:-1;16947:9:9;;-1:-1:-1;;;;16942:203:9;16966:14;:21;16962:1;:25;16942:203;;;17056:26;;;;:11;:26;;;;;;;:37;17024:17;;17056:37;;:26;17024:14;;17039:1;;17024:17;;;;;;;;;;;;17012:30;;;;;;;;;;;:41;;;:81;17008:127;;;17113:7;;;;;17008:127;16989:3;;16942:203;;;;16536:615;;;;;:::o;11878:1365::-;12005:9;:22;;;;;;;;;;:30;;;12038:3;-1:-1:-1;11997:72:9;;;;;-1:-1:-1;;;11997:72:9;;;;;;;;;;;;-1:-1:-1;;;11997:72:9;;;;;;;;;;;;;;;12137:1;12087:22;;;;;;;;;;:47;;;12079:87;;;;;-1:-1:-1;;;12079:87:9;;;;;;;;;;;;-1:-1:-1;;;12079:87:9;;;;;;;;;;;;;;;12184:25;12176:56;;;;;-1:-1:-1;;;12176:56:9;;;;;;;;;;;;-1:-1:-1;;;12176:56:9;;;;;;;;;;;;;;;12276:9;:22;;;;;;;;;;;;:37;;12242:71;;;;;;;;;;;;;;;;;:31;;:71;;;12276:37;12242:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12242:71:9;;-1:-1:-1;12328:9:9;;-1:-1:-1;;;;12323:182:9;12347:14;:21;12343:1;:25;12323:182;;;12451:1;-1:-1:-1;;;;;12397:56:9;:11;:30;12409:14;12424:1;12409:17;;;;;;;;;;;;;;;;;;;12397:30;;;;;;;;;;-1:-1:-1;12397:30:9;:42;;;-1:-1:-1;;;;;12397:42:9;:56;12389:105;;;;-1:-1:-1;;;12389:105:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12370:3;;12323:182;;;-1:-1:-1;12674:21:9;;12652:79;;;-1:-1:-1;;;12652:79:9;;;;;;;;;;12536:29;;;;;;-1:-1:-1;;;;;12674:21:9;;;;12652:66;;:79;;;;;;;;;;;;;;;12674:21;12652:79;;;5:2:-1;;;;30:1;27;20:12;5:2;12652:79:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12652:79:9;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;12652:79:9;;;;;;;;;;;;;12780:21;;12652:79;12758:53;;-1:-1:-1;;;12758:53:9;;;;12652:79;;-1:-1:-1;12652:79:9;;-1:-1:-1;12652:79:9;;-1:-1:-1;12742:13:9;;-1:-1:-1;;;;;12780:21:9;;;;12758:51;;:53;;;;;12652:79;;12758:53;;;;;;;;12780:21;12758:53;;;5:2:-1;;;;30:1;27;20:12;5:2;12758:53:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12758:53:9;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12758:53:9;12844:21;;12822:138;;;-1:-1:-1;;;12822:138:9;;;;;;;;-1:-1:-1;;;;;12822:138:9;;;;;;;;;;;;;;;12758:53;;-1:-1:-1;12844:21:9;;;12822:74;;:138;;;;;12844:21;;12822:138;;;;;;;;12844:21;;12822:138;;;5:2:-1;;;;30:1;27;20:12;5:2;12822:138:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;12993:21:9;;12971:120;;;-1:-1:-1;;;12971:120:9;;;;;;;;-1:-1:-1;;;;;12971:120:9;;;;;;;;;;;;;;;12993:21;;;;;-1:-1:-1;12971:66:9;;-1:-1:-1;12971:120:9;;;;;12993:21;;12971:120;;;;;;;12993:21;;12971:120;;;5:2:-1;;;;30:1;27;20:12;5:2;12971:120:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;13124:21:9;;13102:134;;;-1:-1:-1;;;13102:134:9;;;;;;;;-1:-1:-1;;;;;13102:134:9;;;;;;;;;;;;;;;13124:21;;;;;-1:-1:-1;13102:72:9;;-1:-1:-1;13102:134:9;;;;;13124:21;;13102:134;;;;;;;13124:21;;13102:134;;;5:2:-1;;;;30:1;27;20:12;5:2;13102:134:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13102:134:9;;;;11878:1365;;;;;;:::o;8082:1150::-;8251:7;8278:22;;;;;;;;;;:28;;;-1:-1:-1;;;;;8278:28:9;:42;8274:150;;8344:9;:22;;;;;;;;;;:28;;;-1:-1:-1;;;;;8344:28:9;8376:10;8344:42;8336:77;;;;;-1:-1:-1;;;8336:77:9;;;;;;;;;;;;-1:-1:-1;;;8336:77:9;;;;;;;;;;;;;;;8495:9;:22;;;;;;;;;;:32;;;8531:3;-1:-1:-1;8495:39:9;8487:79;;;;;-1:-1:-1;;;8487:79:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;8638:9;:22;;;;;;;;;;:41;;;8682:3;-1:-1:-1;8630:95:9;;;;-1:-1:-1;;;8630:95:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8756:18;;:25;;8779:1;8756:25;:22;:25;:::i;:::-;8735:18;:46;;;8791:31;;;;:11;:31;;;;;;;:42;:56;;;-1:-1:-1;;;;;8898:26:9;;8894:138;;-1:-1:-1;8954:10:9;8894:138;;;-1:-1:-1;9009:12:9;8894:138;9053:18;;;9041:31;;;;:11;:31;;;;;;;;;:43;;:57;;-1:-1:-1;;;;;;9041:57:9;-1:-1:-1;;;;;9041:57:9;;;;;;;;9140:18;;9113:77;;;;;;;;;;;9140:18;9127:11;;9113:77;;9160:16;;9113:77;;;;;;9160:16;9113:77;;9160:16;9113:77;1:33:-1;99:1;81:16;;;74:27;9113:77:9;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;9113:77:9;;;;-1:-1:-1;9113:77:9;;-1:-1:-1;;;;9113:77:9;-1:-1:-1;;9207:18:9;;8082:1150;;;;;;:::o;2653:312::-;2740:21;;-1:-1:-1;;;;;2740:21:9;:35;2732:75;;;;;-1:-1:-1;;;2732:75:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2825:36:9;;2817:85;;;;-1:-1:-1;;;2817:85:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2912:21;:46;;-1:-1:-1;;;;;;2912:46:9;-1:-1:-1;;;;;2912:46:9;;;;;;;;;;2653:312::o;2339:33::-;;;;:::o;125:51::-;173:3;125:51;:::o;13350:2905::-;13406:18;13427:26;;;:11;:26;;;;;;;;:37;;13482:24;13474:55;;;;;-1:-1:-1;;;13474:55:9;;;;;;;;;;;;-1:-1:-1;;;13474:55:9;;;;;;;;;;;;;;;13539:25;13567:21;;;;;;;;;;13606:17;13598:50;;;;;-1:-1:-1;;;13598:50:9;;;;;;;;;;;;-1:-1:-1;;;13598:50:9;;;;;;;;;;;;;;;13739:3;13720:8;:16;;;:22;13712:58;;;;;-1:-1:-1;;;13712:58:9;;;;;;;;;;;;-1:-1:-1;;;13712:58:9;;;;;;;;;;;;;;;13824:1;13788:8;:33;;;:37;13780:73;;;;;-1:-1:-1;;;13780:73:9;;;;;;;;;;;;-1:-1:-1;;;13780:73:9;;;;;;;;;;;;;;;13921:1;13871:26;;;:11;:26;;;;;:38;;;-1:-1:-1;;;;;13871:38:9;13863:104;;;;;-1:-1:-1;;;13863:104:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;13977:27;14007:26;;;:11;:26;;;;;:38;;;-1:-1:-1;;;;;14007:38:9;;14076:42;14019:13;14076:27;:42::i;:::-;14149:23;;;:30;14055:63;;-1:-1:-1;14136:43:9;;14128:89;;;;-1:-1:-1;;;14128:89:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14276:1;14227:26;;;:11;:26;;;;;;;;:38;;;:51;;-1:-1:-1;;;;;;14227:51:9;;;14387:37;14359:66;;:27;;;:66;;;;;;14520:10;14511:188;14548:22;14537:10;:33;14532:1;:39;:71;;;;-1:-1:-1;14579:24:9;;14575:28;;14532:71;14511:188;;;14643:45;14664:8;:20;;14685:1;14664:23;;;;;;;;;;;;;;;;14643:16;:20;;:45;;;;:::i;:::-;14624:64;-1:-1:-1;14605:3:9;;14511:188;;;14727:44;:16;14748:22;14727:44;:20;:44;:::i;:::-;14860:24;;14827:23;;;:30;14708:63;;-1:-1:-1;14781:28:9;;14827:57;14823:545;;;15063:23;;;:30;;-1:-1:-1;15054:181:9;15099:24;;15095:28;;15054:181;;;15171:49;15196:8;:20;;15217:1;15196:23;;;;;;;;;;;;;;;;15171:20;:24;;:49;;;;:::i;:::-;15125:3;;;;;15148:72;-1:-1:-1;15054:181:9;;;15325:23;;;:30;15279:78;;15300:56;;:20;;:56;:24;:56;:::i;:::-;15279:16;;:78;:20;:78;:::i;:::-;15248:109;;14823:545;15377:14;15410:59;15465:3;15410:50;15443:16;15410:8;:28;;;:32;;:50;;;;:::i;:::-;:54;:59;:54;:59;:::i;:::-;15501:21;;15479:116;;;-1:-1:-1;;;15479:116:9;;;;;;;;-1:-1:-1;;;;;15479:116:9;;;;;;;;;;;;;;;15401:68;;-1:-1:-1;15501:21:9;;;15479:74;;:116;;;;;15501:21;;15479:116;;;;;;;;15501:21;;15479:116;;;5:2:-1;;;;30:1;27;20:12;5:2;15479:116:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15479:116:9;;;;15615:56;15667:3;15615:47;15645:16;15615:8;:25;;;:29;;:47;;;;:::i;:56::-;15703:21;;15681:113;;;-1:-1:-1;;;15681:113:9;;;;;;;;-1:-1:-1;;;;;15681:113:9;;;;;;;;;;;;;;;15606:65;;-1:-1:-1;15703:21:9;;;15681:71;;:113;;;;;15703:21;;15681:113;;;;;;;;15703:21;;15681:113;;;5:2:-1;;;;30:1;27;20:12;5:2;15681:113:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15681:113:9;;;;15814:49;15859:3;15814:40;15837:16;15814:8;:18;;;:22;;:40;;;;:::i;:49::-;15895:21;;15873:108;;;-1:-1:-1;;;15873:108:9;;;;;;;;-1:-1:-1;;;;;15873:108:9;;;;;;;;;;;;;;;15805:58;;-1:-1:-1;15895:21:9;;;15873:66;;:108;;;;;15895:21;;15873:108;;;;;;;;15895:21;;15873:108;;;5:2:-1;;;;30:1;27;20:12;5:2;15873:108:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15873:108:9;;;;16001:57;16054:3;16001:48;16032:16;16001:8;:26;;;:30;;:48;;;;:::i;:57::-;16090:21;;16068:114;;;-1:-1:-1;;;16068:114:9;;;;;;;;-1:-1:-1;;;;;16068:114:9;;;;;;;;;;;;;;;15992:66;;-1:-1:-1;16090:21:9;;;16068:72;;:114;;;;;16090:21;;16068:114;;;;;;;;16090:21;;16068:114;;;5:2:-1;;;;30:1;27;20:12;5:2;16068:114:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;16197:51:9;;;;;;;;16216:13;;-1:-1:-1;16204:10:9;;-1:-1:-1;16197:51:9;;;;;;;;;13350:2905;;;;;;;;;;:::o;11252:499::-;11378:9;:22;;;;;;;;;;:38;;;11419:3;-1:-1:-1;11370:86:9;;;;;-1:-1:-1;;;11370:86:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;11524:1;11474:22;;;;;;;;;;:47;;;11466:87;;;;;-1:-1:-1;;;11466:87:9;;;;;;;;;;;;-1:-1:-1;;;11466:87:9;;;;;;;;;;;;;;;11567:9;:22;;;;;;;;;;:36;;;11563:182;;11624:9;:22;;;;;;;;;;;;11663:12;11624:36;;;;:51;;;11694:40;;;;;;;11634:11;;11694:40;;;;;;;;;11563:182;11252:499;:::o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;-1:-1:-1;834:176:66;;;;;:::o;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;17503:1293:9:-;17596:32;17631:22;;;;;;;;;;:37;;;17709:21;;17786:38;;17631:37;;17596:32;17763:61;;17759:1031;;;-1:-1:-1;17849:1:9;17840:162;17856:20;17852:1;:24;17840:162;;;17926:13;17905:14;17920:1;17905:17;;;;;;;;;;;;;;;;:34;17901:87;;;17963:7;;;;;17901:87;17878:3;;17840:162;;;27:10:-1;;39:1;23:18;;45:23;;-1:-1;18015:34:9;;;;;;;;;;17759:1031;;;-1:-1:-1;18135:16:9;;18169:430;18185:9;:22;;;;;;;;;;:38;18181:42;;18169:430;;;18316:11;:37;18328:14;18343:8;18328:24;;;;;;;;;;;;;;;;18316:37;;;;;;;;;;;:48;;;18252:11;:30;18264:14;18279:1;18264:17;;;;;;;;;;;;;;;;18252:30;;;;;;;;;;;:41;;;:112;18248:337;;;-1:-1:-1;18399:1:9;18248:337;;;18450:13;18429:14;18444:1;18429:17;;;;;;;;;;;;;;;;:34;18425:160;;;18560:7;;;;;;18425:160;18225:3;;;;;18169:430;;;18668:26;;;;:11;:26;;;;;;;:37;18629:24;;18668:37;;:26;18629:14;;18644:8;;18629:24;;;;;;;;;;;;;;18617:37;;;;;;;;;;;:48;;;:88;18613:167;;;18752:13;18725:14;18740:8;18725:24;;;;;;;;;;;;;;;;;:40;18613:167;17759:1031;;17503:1293;;;;;;:::o;3073:130:66:-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;2159:459::-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1732:187;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;3718:338::-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;3889:28:66;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;65:18734:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;65:18734:9;;;-1:-1:-1;65:18734:9;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"./ContributionRewardExt.sol\";\n\n\ncontract Competition {\n using SafeMath for uint256;\n\n uint256 constant public MAX_NUMBER_OF_WINNERS = 100;\n\n event NewCompetitionProposal(\n bytes32 indexed _proposalId,\n uint256 _numberOfWinners,\n uint256[] _rewardSplit,\n uint256 _startTime,\n uint256 _votingStartTime,\n uint256 _suggestionsEndTime,\n uint256 _endTime,\n uint256 _maxNumberOfVotesPerVoter,\n address payable _contributionRewardExt, //address of the contract to redeem from.\n address _admin\n );\n\n event Redeem(\n bytes32 indexed _proposalId,\n uint256 indexed _suggestionId,\n uint256 _rewardPercentage\n );\n\n event NewSuggestion(\n bytes32 indexed _proposalId,\n uint256 indexed _suggestionId,\n string _descriptionHash,\n address payable indexed _beneficiary\n );\n\n event NewVote(\n bytes32 indexed _proposalId,\n uint256 indexed _suggestionId,\n address indexed _voter,\n uint256 _reputation\n );\n\n event SnapshotBlock(\n bytes32 indexed _proposalId,\n uint256 _snapshotBlock\n );\n\n // A struct holding the data for a competition proposal\n struct Proposal {\n uint256 numberOfWinners;\n uint256[] rewardSplit;\n uint256 startTime;\n uint256 votingStartTime;\n uint256 suggestionsEndTime;\n uint256 endTime;\n uint256 maxNumberOfVotesPerVoter;\n address payable contributionRewardExt;\n uint256 snapshotBlock;\n uint256 reputationReward;\n uint256 ethReward;\n uint256 nativeTokenReward;\n uint256 externalTokenReward;\n uint256[] topSuggestions;\n address admin;\n //mapping from suggestions totalVotes to the number of suggestions with the same totalVotes.\n mapping(uint256=>uint256) suggestionsPerVote;\n mapping(address=>uint256) votesPerVoter;\n }\n\n struct Suggestion {\n uint256 totalVotes;\n bytes32 proposalId;\n address payable beneficiary;\n mapping(address=>uint256) votes;\n }\n\n //mapping from proposalID to Proposal\n mapping(bytes32=>Proposal) public proposals;\n //mapping from suggestionId to Suggestion\n mapping(uint256=>Suggestion) public suggestions;\n uint256 public suggestionsCounter;\n address payable public contributionRewardExt; //address of the contract to redeem from.\n\n /**\n * @dev initialize\n * @param _contributionRewardExt the contributionRewardExt scheme which\n * manage and allocate the rewards for the competition.\n */\n function initialize(address payable _contributionRewardExt) external {\n require(contributionRewardExt == address(0), \"can be called only one time\");\n require(_contributionRewardExt != address(0), \"contributionRewardExt cannot be zero\");\n contributionRewardExt = _contributionRewardExt;\n }\n\n /**\n * @dev Submit a competion proposal\n * @param _descriptionHash A hash of the proposal's description\n * @param _reputationChange - Amount of reputation change requested.\n * @param _rewards rewards array:\n * rewards[0] - Amount of tokens requested per period\n * rewards[1] - Amount of ETH requested per period\n * rewards[2] - Amount of external tokens requested per period\n * @param _externalToken Address of external token, if reward is requested there\n * @param _rewardSplit an array of precentages which specify how to split the rewards\n * between the winning suggestions\n * @param _competitionParams competition parameters :\n * _competitionParams[0] - competition startTime\n * _competitionParams[1] - _votingStartTime competition voting start time\n * _competitionParams[2] - _endTime competition end time\n * _competitionParams[3] - _maxNumberOfVotesPerVoter on how many suggestions a voter can vote\n * _competitionParams[4] - _suggestionsEndTime suggestion submission end time\n * _proposerIsAdmin -\n * true - proposer is an admin.\n * false no admin.\n * if admin is set, so only admin can suggest on this proposal.\n * @return proposalId the proposal id.\n */\n function proposeCompetition(\n string calldata _descriptionHash,\n int256 _reputationChange,\n uint[3] calldata _rewards,\n IERC20 _externalToken,\n uint256[] calldata _rewardSplit,\n uint256[5] calldata _competitionParams,\n bool _proposerIsAdmin\n )\n external\n // solhint-disable-next-line function-max-lines\n returns(bytes32 proposalId) {\n uint256 numberOfWinners = _rewardSplit.length;\n uint256 startTime = _competitionParams[0];\n if (startTime == 0) {\n // solhint-disable-next-line not-rely-on-time\n startTime = now;\n }\n // solhint-disable-next-line not-rely-on-time\n require(startTime >= now, \"startTime should be greater than proposing time\");\n require(numberOfWinners <= MAX_NUMBER_OF_WINNERS, \"number of winners greater than max allowed\");\n require(_competitionParams[1] < _competitionParams[2], \"voting start time greater than end time\");\n require(_competitionParams[1] >= startTime, \"voting start time smaller than start time\");\n require(_competitionParams[3] > 0, \"maxNumberOfVotesPerVoter should be greater than 0\");\n require(_competitionParams[4] <= _competitionParams[2],\n \"suggestionsEndTime should be earlier than proposal end time\");\n require(_competitionParams[4] > startTime, \"suggestionsEndTime should be later than proposal start time\");\n if (_rewards[2] > 0) {\n require(_externalToken != ERC20(0), \"extenal token cannot be zero\");\n }\n require(_reputationChange >= 0, \"negative reputation change is not allowed for a competition\");\n uint256 totalRewardSplit;\n for (uint256 i = 0; i < numberOfWinners; i++) {\n totalRewardSplit = totalRewardSplit.add(_rewardSplit[i]);\n }\n require(totalRewardSplit == 100, \"total rewards split is not 100%\");\n proposalId = ContributionRewardExt(contributionRewardExt).proposeContributionReward(\n _descriptionHash, _reputationChange, _rewards, _externalToken, contributionRewardExt, msg.sender);\n proposals[proposalId].numberOfWinners = numberOfWinners;\n proposals[proposalId].rewardSplit = _rewardSplit;\n proposals[proposalId].startTime = startTime;\n proposals[proposalId].votingStartTime = _competitionParams[1];\n proposals[proposalId].endTime = _competitionParams[2];\n proposals[proposalId].maxNumberOfVotesPerVoter = _competitionParams[3];\n proposals[proposalId].suggestionsEndTime = _competitionParams[4];\n proposals[proposalId].reputationReward = uint256(_reputationChange);\n proposals[proposalId].nativeTokenReward = _rewards[0];\n proposals[proposalId].ethReward = _rewards[1];\n proposals[proposalId].externalTokenReward = _rewards[2];\n proposals[proposalId].snapshotBlock = 0;\n if (_proposerIsAdmin) {\n proposals[proposalId].admin = msg.sender;\n }\n emit NewCompetitionProposal(\n proposalId,\n numberOfWinners,\n proposals[proposalId].rewardSplit,\n startTime,\n proposals[proposalId].votingStartTime,\n proposals[proposalId].suggestionsEndTime,\n proposals[proposalId].endTime,\n proposals[proposalId].maxNumberOfVotesPerVoter,\n contributionRewardExt,\n proposals[proposalId].admin\n );\n }\n\n /**\n * @dev submit a competion suggestion\n * @param _proposalId the proposal id this suggestion is referring to.\n * @param _descriptionHash a descriptionHash of the suggestion.\n * @param _beneficiary the beneficiary of this suggestion.\n * @return suggestionId the suggestionId.\n */\n function suggest(\n bytes32 _proposalId,\n string calldata _descriptionHash,\n address payable _beneficiary\n )\n external\n returns(uint256)\n {\n if (proposals[_proposalId].admin != address(0)) {\n require(proposals[_proposalId].admin == msg.sender, \"only admin can suggest\");\n }\n // solhint-disable-next-line not-rely-on-time\n require(proposals[_proposalId].startTime <= now, \"competition not started yet\");\n // solhint-disable-next-line not-rely-on-time\n require(proposals[_proposalId].suggestionsEndTime > now, \"suggestions submission time is over\");\n suggestionsCounter = suggestionsCounter.add(1);\n suggestions[suggestionsCounter].proposalId = _proposalId;\n address payable beneficiary;\n if (_beneficiary == address(0)) {\n beneficiary = msg.sender;\n } else {\n beneficiary = _beneficiary;\n }\n suggestions[suggestionsCounter].beneficiary = beneficiary;\n emit NewSuggestion(_proposalId, suggestionsCounter, _descriptionHash, beneficiary);\n return suggestionsCounter;\n }\n\n /**\n * @dev vote on a suggestion\n * @param _suggestionId suggestionId\n * @return bool\n */\n function vote(uint256 _suggestionId)\n external\n returns(bool)\n {\n bytes32 proposalId = suggestions[_suggestionId].proposalId;\n require(proposalId != bytes32(0), \"suggestion does not exist\");\n setSnapshotBlock(proposalId);\n Avatar avatar = ContributionRewardExt(contributionRewardExt).avatar();\n uint256 reputation = avatar.nativeReputation().balanceOfAt(msg.sender, proposals[proposalId].snapshotBlock);\n require(reputation > 0, \"voter had no reputation when snapshot was taken\");\n Proposal storage proposal = proposals[proposalId];\n // solhint-disable-next-line not-rely-on-time\n require(proposal.endTime > now, \"competition ended\");\n Suggestion storage suggestion = suggestions[_suggestionId];\n require(suggestion.votes[msg.sender] == 0, \"already voted on this suggestion\");\n require(proposal.votesPerVoter[msg.sender] < proposal.maxNumberOfVotesPerVoter,\n \"exceed number of votes allowed\");\n proposal.votesPerVoter[msg.sender] = proposal.votesPerVoter[msg.sender].add(1);\n if (suggestion.totalVotes > 0) {\n proposal.suggestionsPerVote[suggestion.totalVotes] =\n proposal.suggestionsPerVote[suggestion.totalVotes].sub(1);\n }\n suggestion.totalVotes = suggestion.totalVotes.add(reputation);\n proposal.suggestionsPerVote[suggestion.totalVotes] = proposal.suggestionsPerVote[suggestion.totalVotes].add(1);\n suggestion.votes[msg.sender] = reputation;\n refreshTopSuggestions(proposalId, _suggestionId);\n emit NewVote(proposalId, _suggestionId, msg.sender, reputation);\n return true;\n }\n\n /**\n * @dev setSnapshotBlock set the block for the reputaion snapshot\n * this function is public in order to externaly set snapshot block regardless of the first voting event.\n * @param _proposalId the proposal id\n */\n function setSnapshotBlock(bytes32 _proposalId) public {\n // solhint-disable-next-line not-rely-on-time\n require(proposals[_proposalId].votingStartTime < now, \"voting period not started yet\");\n require(proposals[_proposalId].maxNumberOfVotesPerVoter > 0, \"proposal does not exist\");\n if (proposals[_proposalId].snapshotBlock == 0) {\n proposals[_proposalId].snapshotBlock = block.number;\n emit SnapshotBlock(_proposalId, block.number);\n }\n }\n\n /**\n * @dev sendLeftOverFund send leftover funds back to the dao.\n * @param _proposalId the proposal id\n */\n function sendLeftOverFunds(bytes32 _proposalId) public {\n // solhint-disable-next-line not-rely-on-time\n require(proposals[_proposalId].endTime < now, \"competition is still on\");\n require(proposals[_proposalId].maxNumberOfVotesPerVoter > 0, \"proposal does not exist\");\n require(_proposalId != bytes32(0), \"proposalId is zero\");\n uint256[] memory topSuggestions = proposals[_proposalId].topSuggestions;\n for (uint256 i = 0; i < topSuggestions.length; i++) {\n require(suggestions[topSuggestions[i]].beneficiary == address(0), \"not all winning suggestions redeemed\");\n }\n\n (, , , , , ,\n uint256 nativeTokenRewardLeft, ,\n uint256 ethRewardLeft,\n uint256 externalTokenRewardLeft,)\n = ContributionRewardExt(contributionRewardExt).organizationProposals(_proposalId);\n\n Avatar avatar = ContributionRewardExt(contributionRewardExt).avatar();\n\n ContributionRewardExt(contributionRewardExt).redeemExternalTokenByRewarder(\n _proposalId, address(avatar), externalTokenRewardLeft);\n\n ContributionRewardExt(contributionRewardExt).redeemEtherByRewarder(\n _proposalId, address(avatar), ethRewardLeft);\n\n ContributionRewardExt(contributionRewardExt).redeemNativeTokenByRewarder(\n _proposalId, address(avatar), nativeTokenRewardLeft);\n }\n\n /**\n * @dev redeem a winning suggestion reward\n * @param _suggestionId suggestionId\n */\n function redeem(uint256 _suggestionId) public {\n bytes32 proposalId = suggestions[_suggestionId].proposalId;\n require(proposalId != bytes32(0), \"proposalId is zero\");\n Proposal storage proposal = proposals[proposalId];\n require(_suggestionId > 0, \"suggestionId is zero\");\n // solhint-disable-next-line not-rely-on-time\n require(proposal.endTime < now, \"competition is still on\");\n require(proposal.maxNumberOfVotesPerVoter > 0, \"proposal does not exist\");\n require(suggestions[_suggestionId].beneficiary != address(0),\n \"suggestion was already redeemed\");\n address payable beneficiary = suggestions[_suggestionId].beneficiary;\n uint256 orderIndex = getOrderedIndexOfSuggestion(_suggestionId);\n require(orderIndex < proposal.topSuggestions.length, \"suggestion is not in winners list\");\n suggestions[_suggestionId].beneficiary = address(0);\n uint256 rewardPercentage = 0;\n uint256 numberOfTieSuggestions = proposal.suggestionsPerVote[suggestions[_suggestionId].totalVotes];\n uint256 j;\n //calc the reward percentage for this suggestion\n for (j = orderIndex; j < (orderIndex+numberOfTieSuggestions) && j < proposal.numberOfWinners; j++) {\n rewardPercentage = rewardPercentage.add(proposal.rewardSplit[j]);\n }\n rewardPercentage = rewardPercentage.div(numberOfTieSuggestions);\n uint256 rewardPercentageLeft = 0;\n if (proposal.topSuggestions.length < proposal.numberOfWinners) {\n //if there are less winners than the proposal number of winners so divide the pre allocated\n //left reward equally between the winners\n for (j = proposal.topSuggestions.length; j < proposal.numberOfWinners; j++) {\n rewardPercentageLeft = rewardPercentageLeft.add(proposal.rewardSplit[j]);\n }\n rewardPercentage =\n rewardPercentage.add(rewardPercentageLeft.div(proposal.topSuggestions.length));\n }\n uint256 amount;\n amount = proposal.externalTokenReward.mul(rewardPercentage).div(100);\n ContributionRewardExt(contributionRewardExt).redeemExternalTokenByRewarder(\n proposalId, beneficiary, amount);\n\n amount = proposal.reputationReward.mul(rewardPercentage).div(100);\n ContributionRewardExt(contributionRewardExt).redeemReputationByRewarder(\n proposalId, beneficiary, amount);\n\n amount = proposal.ethReward.mul(rewardPercentage).div(100);\n ContributionRewardExt(contributionRewardExt).redeemEtherByRewarder(\n proposalId, beneficiary, amount);\n\n amount = proposal.nativeTokenReward.mul(rewardPercentage).div(100);\n ContributionRewardExt(contributionRewardExt).redeemNativeTokenByRewarder(\n proposalId, beneficiary, amount);\n emit Redeem(proposalId, _suggestionId, rewardPercentage);\n }\n\n /**\n * @dev getOrderedIndexOfSuggestion return the index of specific suggestion in the winners list.\n * for the case when the suggestion is NOT in the winners list,\n * this method will return topSuggestions.length\n * @param _suggestionId suggestion id\n */\n function getOrderedIndexOfSuggestion(uint256 _suggestionId)\n public\n view\n returns(uint256 index) {\n bytes32 proposalId = suggestions[_suggestionId].proposalId;\n require(proposalId != bytes32(0), \"suggestion does not exist\");\n uint256[] memory topSuggestions = proposals[proposalId].topSuggestions;\n /** get how many elements are greater than a given element*/\n for (uint256 i = 0; i < topSuggestions.length; i++) {\n if (suggestions[topSuggestions[i]].totalVotes > suggestions[_suggestionId].totalVotes) {\n index++;\n }\n }\n }\n\n /**\n * @dev refreshTopSuggestions this function maintain a winners list array.\n * it will check if the given suggestion is among the top suggestions, and if so,\n * update the list of top suggestions\n * @param _proposalId proposal id\n * @param _suggestionId suggestion id\n */\n // solhint-disable-next-line code-complexity\n function refreshTopSuggestions(bytes32 _proposalId, uint256 _suggestionId) private {\n uint256[] storage topSuggestions = proposals[_proposalId].topSuggestions;\n uint256 topSuggestionsLength = topSuggestions.length;\n uint256 i;\n if (topSuggestionsLength < proposals[_proposalId].numberOfWinners) {\n for (i = 0; i < topSuggestionsLength; i++) {\n if (topSuggestions[i] == _suggestionId) {\n return;\n }\n }\n topSuggestions.push(_suggestionId);\n } else {\n /** get the index of the smallest element **/\n uint256 smallest = 0;\n for (i = 0; i < proposals[_proposalId].numberOfWinners; i++) {\n if (suggestions[topSuggestions[i]].totalVotes <\n suggestions[topSuggestions[smallest]].totalVotes) {\n smallest = i;\n } else if (topSuggestions[i] == _suggestionId) {\n //the suggestion is already in the topSuggestions list\n return;\n }\n }\n\n if (suggestions[topSuggestions[smallest]].totalVotes < suggestions[_suggestionId].totalVotes) {\n topSuggestions[smallest] = _suggestionId;\n }\n }\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/Competition.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Competition.sol","exportedSymbols":{"Competition":[4131]},"id":4132,"nodeType":"SourceUnit","nodes":[{"id":2718,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:9"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","file":"./ContributionRewardExt.sol","id":2719,"nodeType":"ImportDirective","scope":4132,"sourceUnit":6294,"src":"25:37:9","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":4131,"linearizedBaseContracts":[4131],"name":"Competition","nodeType":"ContractDefinition","nodes":[{"id":2722,"libraryName":{"contractScope":null,"id":2720,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"98:8:9","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"92:27:9","typeName":{"id":2721,"name":"uint256","nodeType":"ElementaryTypeName","src":"111:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":2725,"name":"MAX_NUMBER_OF_WINNERS","nodeType":"VariableDeclaration","scope":4131,"src":"125:51:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2723,"name":"uint256","nodeType":"ElementaryTypeName","src":"125:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313030","id":2724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"173:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"public"},{"anonymous":false,"documentation":null,"id":2748,"name":"NewCompetitionProposal","nodeType":"EventDefinition","parameters":{"id":2747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2748,"src":"221:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2729,"indexed":false,"name":"_numberOfWinners","nodeType":"VariableDeclaration","scope":2748,"src":"258:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"258:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2732,"indexed":false,"name":"_rewardSplit","nodeType":"VariableDeclaration","scope":2748,"src":"292:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2730,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2731,"length":null,"nodeType":"ArrayTypeName","src":"292:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2734,"indexed":false,"name":"_startTime","nodeType":"VariableDeclaration","scope":2748,"src":"324:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2733,"name":"uint256","nodeType":"ElementaryTypeName","src":"324:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2736,"indexed":false,"name":"_votingStartTime","nodeType":"VariableDeclaration","scope":2748,"src":"352:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2735,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2738,"indexed":false,"name":"_suggestionsEndTime","nodeType":"VariableDeclaration","scope":2748,"src":"386:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2737,"name":"uint256","nodeType":"ElementaryTypeName","src":"386:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2740,"indexed":false,"name":"_endTime","nodeType":"VariableDeclaration","scope":2748,"src":"423:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2739,"name":"uint256","nodeType":"ElementaryTypeName","src":"423:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2742,"indexed":false,"name":"_maxNumberOfVotesPerVoter","nodeType":"VariableDeclaration","scope":2748,"src":"449:33:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2741,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2744,"indexed":false,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":2748,"src":"492:38:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2743,"name":"address","nodeType":"ElementaryTypeName","src":"492:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":2746,"indexed":false,"name":"_admin","nodeType":"VariableDeclaration","scope":2748,"src":"582:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2745,"name":"address","nodeType":"ElementaryTypeName","src":"582:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"211:391:9"},"src":"183:420:9"},{"anonymous":false,"documentation":null,"id":2756,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":2755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2750,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2756,"src":"631:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"631:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2752,"indexed":true,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":2756,"src":"668:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2751,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2754,"indexed":false,"name":"_rewardPercentage","nodeType":"VariableDeclaration","scope":2756,"src":"707:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2753,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"621:117:9"},"src":"609:130:9"},{"anonymous":false,"documentation":null,"id":2766,"name":"NewSuggestion","nodeType":"EventDefinition","parameters":{"id":2765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2766,"src":"774:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"774:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2760,"indexed":true,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":2766,"src":"811:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2759,"name":"uint256","nodeType":"ElementaryTypeName","src":"811:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2762,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":2766,"src":"850:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2761,"name":"string","nodeType":"ElementaryTypeName","src":"850:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2764,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":2766,"src":"883:36:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2763,"name":"address","nodeType":"ElementaryTypeName","src":"883:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"764:161:9"},"src":"745:181:9"},{"anonymous":false,"documentation":null,"id":2776,"name":"NewVote","nodeType":"EventDefinition","parameters":{"id":2775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2768,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2776,"src":"955:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"955:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2770,"indexed":true,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":2776,"src":"992:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2769,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2772,"indexed":true,"name":"_voter","nodeType":"VariableDeclaration","scope":2776,"src":"1031:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2771,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2774,"indexed":false,"name":"_reputation","nodeType":"VariableDeclaration","scope":2776,"src":"1063:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2773,"name":"uint256","nodeType":"ElementaryTypeName","src":"1063:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"945:143:9"},"src":"932:157:9"},{"anonymous":false,"documentation":null,"id":2782,"name":"SnapshotBlock","nodeType":"EventDefinition","parameters":{"id":2781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2778,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2782,"src":"1124:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1124:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2780,"indexed":false,"name":"_snapshotBlock","nodeType":"VariableDeclaration","scope":2782,"src":"1161:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2779,"name":"uint256","nodeType":"ElementaryTypeName","src":"1161:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1114:75:9"},"src":"1095:95:9"},{"canonicalName":"Competition.Proposal","id":2823,"members":[{"constant":false,"id":2784,"name":"numberOfWinners","nodeType":"VariableDeclaration","scope":2823,"src":"1282:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2783,"name":"uint256","nodeType":"ElementaryTypeName","src":"1282:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2787,"name":"rewardSplit","nodeType":"VariableDeclaration","scope":2823,"src":"1315:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1315:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2786,"length":null,"nodeType":"ArrayTypeName","src":"1315:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2789,"name":"startTime","nodeType":"VariableDeclaration","scope":2823,"src":"1346:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2788,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2791,"name":"votingStartTime","nodeType":"VariableDeclaration","scope":2823,"src":"1373:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2790,"name":"uint256","nodeType":"ElementaryTypeName","src":"1373:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2793,"name":"suggestionsEndTime","nodeType":"VariableDeclaration","scope":2823,"src":"1406:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2795,"name":"endTime","nodeType":"VariableDeclaration","scope":2823,"src":"1442:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2794,"name":"uint256","nodeType":"ElementaryTypeName","src":"1442:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2797,"name":"maxNumberOfVotesPerVoter","nodeType":"VariableDeclaration","scope":2823,"src":"1467:32:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2796,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2799,"name":"contributionRewardExt","nodeType":"VariableDeclaration","scope":2823,"src":"1509:37:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2798,"name":"address","nodeType":"ElementaryTypeName","src":"1509:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":2801,"name":"snapshotBlock","nodeType":"VariableDeclaration","scope":2823,"src":"1556:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2800,"name":"uint256","nodeType":"ElementaryTypeName","src":"1556:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2803,"name":"reputationReward","nodeType":"VariableDeclaration","scope":2823,"src":"1587:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1587:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2805,"name":"ethReward","nodeType":"VariableDeclaration","scope":2823,"src":"1621:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2804,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2807,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":2823,"src":"1648:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2809,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":2823,"src":"1683:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2808,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2812,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":2823,"src":"1720:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2810,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2811,"length":null,"nodeType":"ArrayTypeName","src":"1720:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2814,"name":"admin","nodeType":"VariableDeclaration","scope":2823,"src":"1754:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2813,"name":"address","nodeType":"ElementaryTypeName","src":"1754:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2818,"name":"suggestionsPerVote","nodeType":"VariableDeclaration","scope":2823,"src":"1878:44:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":2817,"keyType":{"id":2815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1878:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":2816,"name":"uint256","nodeType":"ElementaryTypeName","src":"1895:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":2822,"name":"votesPerVoter","nodeType":"VariableDeclaration","scope":2823,"src":"1932:39:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2821,"keyType":{"id":2819,"name":"address","nodeType":"ElementaryTypeName","src":"1940:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1932:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2820,"name":"uint256","nodeType":"ElementaryTypeName","src":"1949:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":4131,"src":"1256:722:9","visibility":"public"},{"canonicalName":"Competition.Suggestion","id":2834,"members":[{"constant":false,"id":2825,"name":"totalVotes","nodeType":"VariableDeclaration","scope":2834,"src":"2012:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2824,"name":"uint256","nodeType":"ElementaryTypeName","src":"2012:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2827,"name":"proposalId","nodeType":"VariableDeclaration","scope":2834,"src":"2040:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2040:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2829,"name":"beneficiary","nodeType":"VariableDeclaration","scope":2834,"src":"2068:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2828,"name":"address","nodeType":"ElementaryTypeName","src":"2068:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":2833,"name":"votes","nodeType":"VariableDeclaration","scope":2834,"src":"2105:31:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2832,"keyType":{"id":2830,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2105:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2831,"name":"uint256","nodeType":"ElementaryTypeName","src":"2122:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Suggestion","nodeType":"StructDefinition","scope":4131,"src":"1984:159:9","visibility":"public"},{"constant":false,"id":2838,"name":"proposals","nodeType":"VariableDeclaration","scope":4131,"src":"2191:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal)"},"typeName":{"id":2837,"keyType":{"id":2835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2199:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2191:26:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal)"},"valueType":{"contractScope":null,"id":2836,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":2823,"src":"2208:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":2842,"name":"suggestions","nodeType":"VariableDeclaration","scope":4131,"src":"2286:47:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion)"},"typeName":{"id":2841,"keyType":{"id":2839,"name":"uint256","nodeType":"ElementaryTypeName","src":"2294:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2286:28:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion)"},"valueType":{"contractScope":null,"id":2840,"name":"Suggestion","nodeType":"UserDefinedTypeName","referencedDeclaration":2834,"src":"2303:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion"}}},"value":null,"visibility":"public"},{"constant":false,"id":2844,"name":"suggestionsCounter","nodeType":"VariableDeclaration","scope":4131,"src":"2339:33:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2843,"name":"uint256","nodeType":"ElementaryTypeName","src":"2339:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2846,"name":"contributionRewardExt","nodeType":"VariableDeclaration","scope":4131,"src":"2378:44:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2845,"name":"address","nodeType":"ElementaryTypeName","src":"2378:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"public"},{"body":{"id":2873,"nodeType":"Block","src":"2722:243:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2852,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"2740:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2773: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":2853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2765:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2740:35:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":2857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2777:29:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":2851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2732:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2732:75:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2859,"nodeType":"ExpressionStatement","src":"2732:75:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":2865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2861,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"2825:22:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859: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":2862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2851:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2851:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2825:36:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6e747269627574696f6e5265776172644578742063616e6e6f74206265207a65726f","id":2866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:38:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3417a3a1ced797359a4bbcd2aed4868bfebf46c91c98fa145293f48181771933","typeString":"literal_string \"contributionRewardExt cannot be zero\""},"value":"contributionRewardExt cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3417a3a1ced797359a4bbcd2aed4868bfebf46c91c98fa145293f48181771933","typeString":"literal_string \"contributionRewardExt cannot be zero\""}],"id":2860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2817:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2817:85:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2868,"nodeType":"ExpressionStatement","src":"2817:85:9"},{"expression":{"argumentTypes":null,"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2869,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"2912:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2870,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"2936:22:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2912:46:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2872,"nodeType":"ExpressionStatement","src":"2912:46:9"}]},"documentation":"@dev initialize\n@param _contributionRewardExt the contributionRewardExt scheme which\n manage and allocate the rewards for the competition.","id":2874,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":2849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2848,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":2874,"src":"2673:38:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2847,"name":"address","nodeType":"ElementaryTypeName","src":"2673:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"2672:40:9"},"returnParameters":{"id":2850,"nodeType":"ParameterList","parameters":[],"src":"2722:0:9"},"scope":4131,"src":"2653:312:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3192,"nodeType":"Block","src":"4732:3040:9","statements":[{"assignments":[2899],"declarations":[{"constant":false,"id":2899,"name":"numberOfWinners","nodeType":"VariableDeclaration","scope":3192,"src":"4742:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2898,"name":"uint256","nodeType":"ElementaryTypeName","src":"4742:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2902,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2900,"name":"_rewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2887,"src":"4768:12:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4768:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4742:45:9"},{"assignments":[2904],"declarations":[{"constant":false,"id":2904,"name":"startTime","nodeType":"VariableDeclaration","scope":3192,"src":"4797:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2903,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2908,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2905,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"4817:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2907,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4836:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4817:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4797:41:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2909,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"4852:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4865:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4852:14:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2917,"nodeType":"IfStatement","src":"4848:116:9","trueBody":{"id":2916,"nodeType":"Block","src":"4868:96:9","statements":[{"expression":{"argumentTypes":null,"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2912,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"4938:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2913,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"4950:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4938:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2915,"nodeType":"ExpressionStatement","src":"4938:15:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2919,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"5035:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2920,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5048:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5035:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"737461727454696d652073686f756c642062652067726561746572207468616e2070726f706f73696e672074696d65","id":2922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5053:49:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_36ef746d2ffcd64a94f472f94e0c07b61430514657fb03f9f8ab83fe4e515587","typeString":"literal_string \"startTime should be greater than proposing time\""},"value":"startTime should be greater than proposing time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36ef746d2ffcd64a94f472f94e0c07b61430514657fb03f9f8ab83fe4e515587","typeString":"literal_string \"startTime should be greater than proposing time\""}],"id":2918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5027:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5027:76:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2924,"nodeType":"ExpressionStatement","src":"5027:76:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2926,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"5121:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2927,"name":"MAX_NUMBER_OF_WINNERS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2725,"src":"5140:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5121:40:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d626572206f662077696e6e6572732067726561746572207468616e206d617820616c6c6f776564","id":2929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5163:44:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ed6b70ac582911fefdd0460ed40f755a457f2a09a0c29d07282178e301468356","typeString":"literal_string \"number of winners greater than max allowed\""},"value":"number of winners greater than max allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ed6b70ac582911fefdd0460ed40f755a457f2a09a0c29d07282178e301468356","typeString":"literal_string \"number of winners greater than max allowed\""}],"id":2925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5113:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5113:95:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2931,"nodeType":"ExpressionStatement","src":"5113:95:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2933,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5226:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2935,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5245:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5226:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2936,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5250:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2938,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5269:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5250:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5226:45:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e672073746172742074696d652067726561746572207468616e20656e642074696d65","id":2940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5273:41:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9167d4332fa929204dea83a957c77ebc759c73f0592eb86e907e38fbf753df8e","typeString":"literal_string \"voting start time greater than end time\""},"value":"voting start time greater than end time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9167d4332fa929204dea83a957c77ebc759c73f0592eb86e907e38fbf753df8e","typeString":"literal_string \"voting start time greater than end time\""}],"id":2932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5218:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5218:97:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2942,"nodeType":"ExpressionStatement","src":"5218:97:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2944,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5333:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2946,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5352:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5333:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2947,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"5358:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5333:34:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e672073746172742074696d6520736d616c6c6572207468616e2073746172742074696d65","id":2949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5369:43:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d0b63f330c6528a605505692486427ca335c1fe11bc6b6cab8d268d025f7c33c","typeString":"literal_string \"voting start time smaller than start time\""},"value":"voting start time smaller than start time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0b63f330c6528a605505692486427ca335c1fe11bc6b6cab8d268d025f7c33c","typeString":"literal_string \"voting start time smaller than start time\""}],"id":2943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5325:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:88:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2951,"nodeType":"ExpressionStatement","src":"5325:88:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2953,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5431:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2955,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":2954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5450:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5431:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5431:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d61784e756d6265724f66566f746573506572566f7465722073686f756c642062652067726561746572207468616e2030","id":2958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5458:51:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_07fd2020c7173c53cb88555029bd3fa032ec0d6ac13bcf45ade119699cd0df58","typeString":"literal_string \"maxNumberOfVotesPerVoter should be greater than 0\""},"value":"maxNumberOfVotesPerVoter should be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07fd2020c7173c53cb88555029bd3fa032ec0d6ac13bcf45ade119699cd0df58","typeString":"literal_string \"maxNumberOfVotesPerVoter should be greater than 0\""}],"id":2952,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5423:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5423:87:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2960,"nodeType":"ExpressionStatement","src":"5423:87:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2962,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5528:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2964,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":2963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5547:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5528:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2965,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5553:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2967,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":2966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5572:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5553:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5528:46:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e73456e6454696d652073686f756c64206265206561726c696572207468616e2070726f706f73616c20656e642074696d65","id":2969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5584:61:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e421409ac1d76dc70572a314f85c6fc319a0a63ce601bed02bc7fb260fa81d30","typeString":"literal_string \"suggestionsEndTime should be earlier than proposal end time\""},"value":"suggestionsEndTime should be earlier than proposal end time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e421409ac1d76dc70572a314f85c6fc319a0a63ce601bed02bc7fb260fa81d30","typeString":"literal_string \"suggestionsEndTime should be earlier than proposal end time\""}],"id":2961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5520:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:126:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2971,"nodeType":"ExpressionStatement","src":"5520:126:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2973,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5664:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2975,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":2974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5683:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5664:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2976,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"5688:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5664:33:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e73456e6454696d652073686f756c64206265206c61746572207468616e2070726f706f73616c2073746172742074696d65","id":2978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5699:61:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8d8869cfe9a89c8e636def05c34db933b99dac87836693aa32940dafc3a19177","typeString":"literal_string \"suggestionsEndTime should be later than proposal start time\""},"value":"suggestionsEndTime should be later than proposal start time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d8869cfe9a89c8e636def05c34db933b99dac87836693aa32940dafc3a19177","typeString":"literal_string \"suggestionsEndTime should be later than proposal start time\""}],"id":2972,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5656:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5656:105:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2980,"nodeType":"ExpressionStatement","src":"5656:105:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2981,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"5775:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":2983,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":2982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5784:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5775:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5789:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5775:15:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2996,"nodeType":"IfStatement","src":"5771:113:9","trueBody":{"id":2995,"nodeType":"Block","src":"5792:92:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2987,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2884,"src":"5814:14:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5838: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":2988,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20914,"src":"5832:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$20914_$","typeString":"type(contract ERC20)"}},"id":2990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5832:8:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"src":"5814:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"657874656e616c20746f6b656e2063616e6e6f74206265207a65726f","id":2992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:30:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_060405811f4a0be5a277024b5c0d977e1da5cc3d39fa6608d1ae9cb79c28c4f1","typeString":"literal_string \"extenal token cannot be zero\""},"value":"extenal token cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_060405811f4a0be5a277024b5c0d977e1da5cc3d39fa6608d1ae9cb79c28c4f1","typeString":"literal_string \"extenal token cannot be zero\""}],"id":2986,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5806:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:67:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2994,"nodeType":"ExpressionStatement","src":"5806:67:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2998,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2878,"src":"5901:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5922:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5901:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e656761746976652072657075746174696f6e206368616e6765206973206e6f7420616c6c6f77656420666f72206120636f6d7065746974696f6e","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5925:61:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_317ee00b6d35662467f27436c13cc4d83954c2f6947c0252ba7206999e1d6271","typeString":"literal_string \"negative reputation change is not allowed for a competition\""},"value":"negative reputation change is not allowed for a competition"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_317ee00b6d35662467f27436c13cc4d83954c2f6947c0252ba7206999e1d6271","typeString":"literal_string \"negative reputation change is not allowed for a competition\""}],"id":2997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5893:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5893:94:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3003,"nodeType":"ExpressionStatement","src":"5893:94:9"},{"assignments":[3005],"declarations":[{"constant":false,"id":3005,"name":"totalRewardSplit","nodeType":"VariableDeclaration","scope":3192,"src":"5997:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3004,"name":"uint256","nodeType":"ElementaryTypeName","src":"5997:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3006,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5997:24:9"},{"body":{"id":3026,"nodeType":"Block","src":"6077:81:9","statements":[{"expression":{"argumentTypes":null,"id":3024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3017,"name":"totalRewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"6091:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3020,"name":"_rewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2887,"src":"6131:12:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":3022,"indexExpression":{"argumentTypes":null,"id":3021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"6144:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6131:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3018,"name":"totalRewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"6110:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6110:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6110:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6091:56:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3025,"nodeType":"ExpressionStatement","src":"6091:56:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3011,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"6051:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3012,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"6055:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6051:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3027,"initializationExpression":{"assignments":[3008],"declarations":[{"constant":false,"id":3008,"name":"i","nodeType":"VariableDeclaration","scope":3027,"src":"6036:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3007,"name":"uint256","nodeType":"ElementaryTypeName","src":"6036:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3010,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6048:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6036:13:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6072:3:9","subExpression":{"argumentTypes":null,"id":3014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"6072:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3016,"nodeType":"ExpressionStatement","src":"6072:3:9"},"nodeType":"ForStatement","src":"6031:127:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3029,"name":"totalRewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"6175:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6195:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"6175:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f74616c20726577617264732073706c6974206973206e6f742031303025","id":3032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6200:33:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_498d052b2a82a9161dc9d66a8037c6202bf8912c30b52a818229531581926ff8","typeString":"literal_string \"total rewards split is not 100%\""},"value":"total rewards split is not 100%"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_498d052b2a82a9161dc9d66a8037c6202bf8912c30b52a818229531581926ff8","typeString":"literal_string \"total rewards split is not 100%\""}],"id":3028,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6167:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6167:67:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3034,"nodeType":"ExpressionStatement","src":"6167:67:9"},{"expression":{"argumentTypes":null,"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3035,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6244:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3040,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"6345:16:9","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":3041,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2878,"src":"6363:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":3042,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"6382:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},{"argumentTypes":null,"id":3043,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2884,"src":"6392:14:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":3044,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"6408:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3045,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6431:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6431:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3037,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"6279:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3036,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"6257:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6257:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposeContributionReward","nodeType":"MemberAccess","referencedDeclaration":5523,"src":"6257:70:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_array$_t_uint256_$3_memory_ptr_$_t_contract$_IERC20_$21017_$_t_address_payable_$_t_address_$returns$_t_bytes32_$","typeString":"function (string memory,int256,uint256[3] memory,contract IERC20,address payable,address) external returns (bytes32)"}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6257:185:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6244:198:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3049,"nodeType":"ExpressionStatement","src":"6244:198:9"},{"expression":{"argumentTypes":null,"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3050,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6452:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3052,"indexExpression":{"argumentTypes":null,"id":3051,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6462:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6452:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"6452:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3054,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"6492:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6452:55:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3056,"nodeType":"ExpressionStatement","src":"6452:55:9"},{"expression":{"argumentTypes":null,"id":3062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3057,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6517:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3059,"indexExpression":{"argumentTypes":null,"id":3058,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6527:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6517:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"6517:33:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3061,"name":"_rewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2887,"src":"6553:12:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"src":"6517:48:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3063,"nodeType":"ExpressionStatement","src":"6517:48:9"},{"expression":{"argumentTypes":null,"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3064,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6575:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3066,"indexExpression":{"argumentTypes":null,"id":3065,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6585:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6575:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":2789,"src":"6575:31:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3068,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"6609:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6575:43:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3070,"nodeType":"ExpressionStatement","src":"6575:43:9"},{"expression":{"argumentTypes":null,"id":3078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3071,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6628:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3073,"indexExpression":{"argumentTypes":null,"id":3072,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6638:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6628:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votingStartTime","nodeType":"MemberAccess","referencedDeclaration":2791,"src":"6628:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3075,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6668:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3077,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":3076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6687:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6668:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6628:61:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3079,"nodeType":"ExpressionStatement","src":"6628:61:9"},{"expression":{"argumentTypes":null,"id":3087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3080,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6699:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3082,"indexExpression":{"argumentTypes":null,"id":3081,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6709:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6699:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"6699:29:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3084,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6731:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3086,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6750:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6731:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6699:53:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3088,"nodeType":"ExpressionStatement","src":"6699:53:9"},{"expression":{"argumentTypes":null,"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3089,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6762:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3091,"indexExpression":{"argumentTypes":null,"id":3090,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6772:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6762:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"6762:46:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3093,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6811:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3095,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6830:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6811:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6762:70:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3097,"nodeType":"ExpressionStatement","src":"6762:70:9"},{"expression":{"argumentTypes":null,"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3098,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6842:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3100,"indexExpression":{"argumentTypes":null,"id":3099,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6852:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6842:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"suggestionsEndTime","nodeType":"MemberAccess","referencedDeclaration":2793,"src":"6842:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3102,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6885:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3104,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6904:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6885:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6842:64:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3106,"nodeType":"ExpressionStatement","src":"6842:64:9"},{"expression":{"argumentTypes":null,"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3107,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6916:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3109,"indexExpression":{"argumentTypes":null,"id":3108,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6926:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6916:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationReward","nodeType":"MemberAccess","referencedDeclaration":2803,"src":"6916:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3112,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2878,"src":"6965:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6957:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6957:26:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6916:67:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3115,"nodeType":"ExpressionStatement","src":"6916:67:9"},{"expression":{"argumentTypes":null,"id":3123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3116,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6993:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3118,"indexExpression":{"argumentTypes":null,"id":3117,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7003:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6993:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":2807,"src":"6993:39:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3120,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"7035:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":3122,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":3121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7044:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7035:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6993:53:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3124,"nodeType":"ExpressionStatement","src":"6993:53:9"},{"expression":{"argumentTypes":null,"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3125,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7056:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3127,"indexExpression":{"argumentTypes":null,"id":3126,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7066:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7056:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":2805,"src":"7056:31:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3129,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"7090:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":3131,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7099:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7090:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7056:45:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3133,"nodeType":"ExpressionStatement","src":"7056:45:9"},{"expression":{"argumentTypes":null,"id":3141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3134,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7111:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3136,"indexExpression":{"argumentTypes":null,"id":3135,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7121:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":2809,"src":"7111:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3138,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"7155:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":3140,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7164:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7155:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:55:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3142,"nodeType":"ExpressionStatement","src":"7111:55:9"},{"expression":{"argumentTypes":null,"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3143,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7176:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3145,"indexExpression":{"argumentTypes":null,"id":3144,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7186:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7176:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"7176:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7214:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7176:39:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3149,"nodeType":"ExpressionStatement","src":"7176:39:9"},{"condition":{"argumentTypes":null,"id":3150,"name":"_proposerIsAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2893,"src":"7229:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3160,"nodeType":"IfStatement","src":"7225:87:9","trueBody":{"id":3159,"nodeType":"Block","src":"7247:65:9","statements":[{"expression":{"argumentTypes":null,"id":3157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3151,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7261:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3153,"indexExpression":{"argumentTypes":null,"id":3152,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7271:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7261:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"7261:27:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7291:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7291:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7261:40:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3158,"nodeType":"ExpressionStatement","src":"7261:40:9"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3162,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7362:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3163,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"7386:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3164,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7415:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3166,"indexExpression":{"argumentTypes":null,"id":3165,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7425:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7415:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"7415:33:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},{"argumentTypes":null,"id":3168,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"7462:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3169,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7485:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3171,"indexExpression":{"argumentTypes":null,"id":3170,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7495:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7485:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingStartTime","nodeType":"MemberAccess","referencedDeclaration":2791,"src":"7485:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3173,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7536:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3175,"indexExpression":{"argumentTypes":null,"id":3174,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7546:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7536:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsEndTime","nodeType":"MemberAccess","referencedDeclaration":2793,"src":"7536:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3177,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7590:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3179,"indexExpression":{"argumentTypes":null,"id":3178,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7600:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7590:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"7590:29:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3181,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7633:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3183,"indexExpression":{"argumentTypes":null,"id":3182,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7643:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7633:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"7633:46:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3185,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"7693:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3186,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7728:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3188,"indexExpression":{"argumentTypes":null,"id":3187,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7738:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7728:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"7728:27:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"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"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3161,"name":"NewCompetitionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"7326:22:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,uint256[] memory,uint256,uint256,uint256,uint256,uint256,address payable,address)"}},"id":3190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7326:439:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3191,"nodeType":"EmitStatement","src":"7321:444:9"}]},"documentation":"@dev Submit a competion proposal\n@param _descriptionHash A hash of the proposal's description\n@param _reputationChange - Amount of reputation change requested.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested per period\n rewards[1] - Amount of ETH requested per period\n rewards[2] - Amount of external tokens requested per period\n@param _externalToken Address of external token, if reward is requested there\n@param _rewardSplit an array of precentages which specify how to split the rewards\n between the winning suggestions\n@param _competitionParams competition parameters :\n _competitionParams[0] - competition startTime\n _competitionParams[1] - _votingStartTime competition voting start time\n _competitionParams[2] - _endTime competition end time\n _competitionParams[3] - _maxNumberOfVotesPerVoter on how many suggestions a voter can vote\n _competitionParams[4] - _suggestionsEndTime suggestion submission end time\n _proposerIsAdmin -\n true - proposer is an admin.\n false no admin.\n if admin is set, so only admin can suggest on this proposal.\n@return proposalId the proposal id.","id":3193,"implemented":true,"kind":"function","modifiers":[],"name":"proposeCompetition","nodeType":"FunctionDefinition","parameters":{"id":2894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2876,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":3193,"src":"4352:32:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2875,"name":"string","nodeType":"ElementaryTypeName","src":"4352:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2878,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":3193,"src":"4398:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2877,"name":"int256","nodeType":"ElementaryTypeName","src":"4398:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2882,"name":"_rewards","nodeType":"VariableDeclaration","scope":3193,"src":"4436:25:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":2879,"name":"uint","nodeType":"ElementaryTypeName","src":"4436:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2881,"length":{"argumentTypes":null,"hexValue":"33","id":2880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4441:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"4436:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2884,"name":"_externalToken","nodeType":"VariableDeclaration","scope":3193,"src":"4475:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":2883,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"4475:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":2887,"name":"_rewardSplit","nodeType":"VariableDeclaration","scope":3193,"src":"4510:31:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2885,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2886,"length":null,"nodeType":"ArrayTypeName","src":"4510:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2891,"name":"_competitionParams","nodeType":"VariableDeclaration","scope":3193,"src":"4555:38:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":2888,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2890,"length":{"argumentTypes":null,"hexValue":"35","id":2889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4563:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"4555:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2893,"name":"_proposerIsAdmin","nodeType":"VariableDeclaration","scope":3193,"src":"4607:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2892,"name":"bool","nodeType":"ElementaryTypeName","src":"4607:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4338:296:9"},"returnParameters":{"id":2897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2896,"name":"proposalId","nodeType":"VariableDeclaration","scope":3193,"src":"4712:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4712:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4711:20:9"},"scope":4131,"src":"4311:3461:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3295,"nodeType":"Block","src":"8264:968:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3204,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8278:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3206,"indexExpression":{"argumentTypes":null,"id":3205,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8288:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8278:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"8278:28:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8318: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":3208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8310:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8310:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8278:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3224,"nodeType":"IfStatement","src":"8274:150:9","trueBody":{"id":3223,"nodeType":"Block","src":"8322:102:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3213,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8344:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3215,"indexExpression":{"argumentTypes":null,"id":3214,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8354:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8344:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"8344:28:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3217,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8376:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8376:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8344:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6f6e6c792061646d696e2063616e2073756767657374","id":3220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8388:24:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0ce033aeb209789fabb74c603e427a5123fc36439427d72c81e575b6b3c137ad","typeString":"literal_string \"only admin can suggest\""},"value":"only admin can suggest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ce033aeb209789fabb74c603e427a5123fc36439427d72c81e575b6b3c137ad","typeString":"literal_string \"only admin can suggest\""}],"id":3212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8336:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8336:77:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3222,"nodeType":"ExpressionStatement","src":"8336:77:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3226,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8495:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3228,"indexExpression":{"argumentTypes":null,"id":3227,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8505:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8495:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":2789,"src":"8495:32:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3230,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8531:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8495:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e206e6f74207374617274656420796574","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8536:29:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_abfe8784f774b4aee675990286145fedbc1e2465a1ec3060d5a1f5f9fa516a65","typeString":"literal_string \"competition not started yet\""},"value":"competition not started yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abfe8784f774b4aee675990286145fedbc1e2465a1ec3060d5a1f5f9fa516a65","typeString":"literal_string \"competition not started yet\""}],"id":3225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8487:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8487:79:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3234,"nodeType":"ExpressionStatement","src":"8487:79:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3236,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8638:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3238,"indexExpression":{"argumentTypes":null,"id":3237,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8648:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8638:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsEndTime","nodeType":"MemberAccess","referencedDeclaration":2793,"src":"8638:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":3240,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8682:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8638:47:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e73207375626d697373696f6e2074696d65206973206f766572","id":3242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8687:37:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb339df8e9357f8d1191d75a4f9fbeadfdade6dc51f1c003a3d794cd1255e16","typeString":"literal_string \"suggestions submission time is over\""},"value":"suggestions submission time is over"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fdb339df8e9357f8d1191d75a4f9fbeadfdade6dc51f1c003a3d794cd1255e16","typeString":"literal_string \"suggestions submission time is over\""}],"id":3235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8630:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8630:95:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3244,"nodeType":"ExpressionStatement","src":"8630:95:9"},{"expression":{"argumentTypes":null,"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3245,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"8735:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8779:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":3246,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"8756:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8756:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8756:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8735:46:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3251,"nodeType":"ExpressionStatement","src":"8735:46:9"},{"expression":{"argumentTypes":null,"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3252,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"8791:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3254,"indexExpression":{"argumentTypes":null,"id":3253,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"8803:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8791:31:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"8791:42:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3256,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8836:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8791:56:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3258,"nodeType":"ExpressionStatement","src":"8791:56:9"},{"assignments":[3260],"declarations":[{"constant":false,"id":3260,"name":"beneficiary","nodeType":"VariableDeclaration","scope":3295,"src":"8857:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3259,"name":"address","nodeType":"ElementaryTypeName","src":"8857:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":3261,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"8857:27:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3262,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"8898:12:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8922: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":3263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8914:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8914:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8898:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3277,"nodeType":"Block","src":"8981:51:9","statements":[{"expression":{"argumentTypes":null,"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3273,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"8995:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3274,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"9009:12:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8995:26:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3276,"nodeType":"ExpressionStatement","src":"8995:26:9"}]},"id":3278,"nodeType":"IfStatement","src":"8894:138:9","trueBody":{"id":3272,"nodeType":"Block","src":"8926:49:9","statements":[{"expression":{"argumentTypes":null,"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3267,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"8940:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8954:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8954:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8940:24:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3271,"nodeType":"ExpressionStatement","src":"8940:24:9"}]}},{"expression":{"argumentTypes":null,"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3279,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9041:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3281,"indexExpression":{"argumentTypes":null,"id":3280,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"9053:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9041:31:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"9041:43:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3283,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"9087:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"9041:57:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3285,"nodeType":"ExpressionStatement","src":"9041:57:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3287,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"9127:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3288,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"9140:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3289,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"9160:16:9","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":3290,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"9178:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3286,"name":"NewSuggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2766,"src":"9113:13:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$_t_address_payable_$returns$__$","typeString":"function (bytes32,uint256,string memory,address payable)"}},"id":3291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9113:77:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3292,"nodeType":"EmitStatement","src":"9108:82:9"},{"expression":{"argumentTypes":null,"id":3293,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"9207:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3203,"id":3294,"nodeType":"Return","src":"9200:25:9"}]},"documentation":"@dev submit a competion suggestion\n@param _proposalId the proposal id this suggestion is referring to.\n@param _descriptionHash a descriptionHash of the suggestion.\n@param _beneficiary the beneficiary of this suggestion.\n@return suggestionId the suggestionId.","id":3296,"implemented":true,"kind":"function","modifiers":[],"name":"suggest","nodeType":"FunctionDefinition","parameters":{"id":3200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3195,"name":"_proposalId","nodeType":"VariableDeclaration","scope":3296,"src":"8112:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8112:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":3197,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":3296,"src":"8145:32:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3196,"name":"string","nodeType":"ElementaryTypeName","src":"8145:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":3199,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":3296,"src":"8191:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3198,"name":"address","nodeType":"ElementaryTypeName","src":"8191:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"8098:127:9"},"returnParameters":{"id":3203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3202,"name":"","nodeType":"VariableDeclaration","scope":3296,"src":"8251:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3201,"name":"uint256","nodeType":"ElementaryTypeName","src":"8251:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8250:9:9"},"scope":4131,"src":"8082:1150:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3483,"nodeType":"Block","src":"9416:1596:9","statements":[{"assignments":[3304],"declarations":[{"constant":false,"id":3304,"name":"proposalId","nodeType":"VariableDeclaration","scope":3483,"src":"9426:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9426:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3309,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3305,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9447:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3307,"indexExpression":{"argumentTypes":null,"id":3306,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"9459:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"9447:37:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9426:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3311,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9502:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524: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":3312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9502:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e20646f6573206e6f74206578697374","id":3316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:27:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""},"value":"suggestion does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""}],"id":3310,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9494:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9494:62:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3318,"nodeType":"ExpressionStatement","src":"9494:62:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3320,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9583:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3319,"name":"setSnapshotBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3532,"src":"9566:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9566:28:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3322,"nodeType":"ExpressionStatement","src":"9566:28:9"},{"assignments":[3324],"declarations":[{"constant":false,"id":3324,"name":"avatar","nodeType":"VariableDeclaration","scope":3483,"src":"9604:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":3323,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"9604:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":3330,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3326,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"9642:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3325,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"9620:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9620:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"9620:51:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9620:53:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"9604:69:9"},{"assignments":[3332],"declarations":[{"constant":false,"id":3332,"name":"reputation","nodeType":"VariableDeclaration","scope":3483,"src":"9683:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3331,"name":"uint256","nodeType":"ElementaryTypeName","src":"9683:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3344,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9742:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9742:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3339,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9754:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3341,"indexExpression":{"argumentTypes":null,"id":3340,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9764:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9754:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"9754:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":3333,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3324,"src":"9704:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"9704:23:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9704:25:9","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":3336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"9704:37:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9704:86:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9683:107:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3346,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"9808:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9821:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9808:14:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74657220686164206e6f2072657075746174696f6e207768656e20736e617073686f74207761732074616b656e","id":3349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9824:49:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0f4f9cd6c54bc7b98171621faa27875d1adcdde15df503e8997fa7a31d7619df","typeString":"literal_string \"voter had no reputation when snapshot was taken\""},"value":"voter had no reputation when snapshot was taken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f4f9cd6c54bc7b98171621faa27875d1adcdde15df503e8997fa7a31d7619df","typeString":"literal_string \"voter had no reputation when snapshot was taken\""}],"id":3345,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9800:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9800:74:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3351,"nodeType":"ExpressionStatement","src":"9800:74:9"},{"assignments":[3353],"declarations":[{"constant":false,"id":3353,"name":"proposal","nodeType":"VariableDeclaration","scope":3483,"src":"9884:25:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"},"typeName":{"contractScope":null,"id":3352,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":2823,"src":"9884:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"}},"value":null,"visibility":"internal"}],"id":3357,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3354,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9912:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3356,"indexExpression":{"argumentTypes":null,"id":3355,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9922:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9912:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9884:49:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3359,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10005:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"10005:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":3361,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"10024:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e20656e646564","id":3363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10029:19:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f87530bd7c7541277f1082b98df509e0e19735f64e79bf9b6cb4b67f8820a99c","typeString":"literal_string \"competition ended\""},"value":"competition ended"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f87530bd7c7541277f1082b98df509e0e19735f64e79bf9b6cb4b67f8820a99c","typeString":"literal_string \"competition ended\""}],"id":3358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9997:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9997:52:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3365,"nodeType":"ExpressionStatement","src":"9997:52:9"},{"assignments":[3367],"declarations":[{"constant":false,"id":3367,"name":"suggestion","nodeType":"VariableDeclaration","scope":3483,"src":"10059:29:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion"},"typeName":{"contractScope":null,"id":3366,"name":"Suggestion","nodeType":"UserDefinedTypeName","referencedDeclaration":2834,"src":"10059:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion"}},"value":null,"visibility":"internal"}],"id":3371,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3368,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"10091:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3370,"indexExpression":{"argumentTypes":null,"id":3369,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"10103:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10091:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10059:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3373,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10135:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":2833,"src":"10135:16:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3377,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3375,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10152:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10152:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10135:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10135:33:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"616c726561647920766f746564206f6e20746869732073756767657374696f6e","id":3380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10170:34:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_31b3d9c5ada54bea83344950a8013bb292ab17a2c892ed46c29565fb08f40018","typeString":"literal_string \"already voted on this suggestion\""},"value":"already voted on this suggestion"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31b3d9c5ada54bea83344950a8013bb292ab17a2c892ed46c29565fb08f40018","typeString":"literal_string \"already voted on this suggestion\""}],"id":3372,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10127:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10127:78:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3382,"nodeType":"ExpressionStatement","src":"10127:78:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3384,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10223:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2822,"src":"10223:22:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3388,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10246:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10246:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10223:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3389,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10260:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"10260:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10223:70:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"657863656564206e756d626572206f6620766f74657320616c6c6f776564","id":3392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10303:32:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_db6e03ac06733b4c3a16d510da9e6a3e0f881f893f393c22c659be08e9422c4d","typeString":"literal_string \"exceed number of votes allowed\""},"value":"exceed number of votes allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db6e03ac06733b4c3a16d510da9e6a3e0f881f893f393c22c659be08e9422c4d","typeString":"literal_string \"exceed number of votes allowed\""}],"id":3383,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10215:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10215:121:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3394,"nodeType":"ExpressionStatement","src":"10215:121:9"},{"expression":{"argumentTypes":null,"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3395,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10346:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2822,"src":"10346:22:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3400,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3397,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10369:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10369:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10346:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10422:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10383:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2822,"src":"10383:22:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3405,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10406:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10406:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10383:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10383:38:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10383:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10346:78:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3410,"nodeType":"ExpressionStatement","src":"10346:78:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3411,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10438:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10438:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10462:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10438:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3432,"nodeType":"IfStatement","src":"10434:178:9","trueBody":{"id":3431,"nodeType":"Block","src":"10465:147:9","statements":[{"expression":{"argumentTypes":null,"id":3429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3415,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10479:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10479:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3420,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3417,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10507:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10507:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10479:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10599:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3421,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10544:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10544:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3425,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3423,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10572:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10572:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10544:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10544:54:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10544:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10479:122:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3430,"nodeType":"ExpressionStatement","src":"10479:122:9"}]}},{"expression":{"argumentTypes":null,"id":3441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3433,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10621:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10621:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3439,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10671:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3436,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10645:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10645:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10645:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10645:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10621:61:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3442,"nodeType":"ExpressionStatement","src":"10621:61:9"},{"expression":{"argumentTypes":null,"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3443,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10692:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10692:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3448,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3445,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10720:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10720:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10692:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10800:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3449,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10745:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10745:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3453,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3451,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10773:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10773:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10745:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10745:54:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10745:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10692:110:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3458,"nodeType":"ExpressionStatement","src":"10692:110:9"},{"expression":{"argumentTypes":null,"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3459,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10812:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":2833,"src":"10812:16:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3464,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3461,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10829:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10829:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10812:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3465,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10843:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10812:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3467,"nodeType":"ExpressionStatement","src":"10812:41:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3469,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"10885:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3470,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"10897:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3468,"name":"refreshTopSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"10863:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":3471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10863:48:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3472,"nodeType":"ExpressionStatement","src":"10863:48:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3474,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"10934:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3475,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"10946:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10961:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10961:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3478,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10973:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3473,"name":"NewVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"10926:7:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256)"}},"id":3479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10926:58:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3480,"nodeType":"EmitStatement","src":"10921:63:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11001:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3302,"id":3482,"nodeType":"Return","src":"10994:11:9"}]},"documentation":"@dev vote on a suggestion\n@param _suggestionId suggestionId\n@return bool","id":3484,"implemented":true,"kind":"function","modifiers":[],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":3299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3298,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":3484,"src":"9358:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3297,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9357:23:9"},"returnParameters":{"id":3302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3301,"name":"","nodeType":"VariableDeclaration","scope":3484,"src":"9406:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3300,"name":"bool","nodeType":"ElementaryTypeName","src":"9406:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9405:6:9"},"scope":4131,"src":"9344:1668:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3531,"nodeType":"Block","src":"11306:445:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3490,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11378:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3492,"indexExpression":{"argumentTypes":null,"id":3491,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11388:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11378:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingStartTime","nodeType":"MemberAccess","referencedDeclaration":2791,"src":"11378:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3494,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"11419:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11378:44:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e6720706572696f64206e6f74207374617274656420796574","id":3496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11424:31:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fe4db9f73616103208f9a0c43166b30a59718acda8a9c9c7dd519d7f68782c8e","typeString":"literal_string \"voting period not started yet\""},"value":"voting period not started yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe4db9f73616103208f9a0c43166b30a59718acda8a9c9c7dd519d7f68782c8e","typeString":"literal_string \"voting period not started yet\""}],"id":3489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11370:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11370:86:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3498,"nodeType":"ExpressionStatement","src":"11370:86:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3500,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11474:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3502,"indexExpression":{"argumentTypes":null,"id":3501,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11484:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11474:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"11474:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11524:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11474:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20646f6573206e6f74206578697374","id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11527:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""},"value":"proposal does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""}],"id":3499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11466:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11466:87:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3508,"nodeType":"ExpressionStatement","src":"11466:87:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3509,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11567:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3511,"indexExpression":{"argumentTypes":null,"id":3510,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11577:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11567:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"11567:36:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11607:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11567:41:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3530,"nodeType":"IfStatement","src":"11563:182:9","trueBody":{"id":3529,"nodeType":"Block","src":"11610:135:9","statements":[{"expression":{"argumentTypes":null,"id":3521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3515,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11624:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3517,"indexExpression":{"argumentTypes":null,"id":3516,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11634:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11624:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"11624:36:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3519,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"11663:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11663:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11624:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3522,"nodeType":"ExpressionStatement","src":"11624:51:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3524,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11708:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3525,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"11721:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11721:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3523,"name":"SnapshotBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"11694:13:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":3527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11694:40:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3528,"nodeType":"EmitStatement","src":"11689:45:9"}]}}]},"documentation":"@dev setSnapshotBlock set the block for the reputaion snapshot\nthis function is public in order to externaly set snapshot block regardless of the first voting event.\n@param _proposalId the proposal id","id":3532,"implemented":true,"kind":"function","modifiers":[],"name":"setSnapshotBlock","nodeType":"FunctionDefinition","parameters":{"id":3487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3486,"name":"_proposalId","nodeType":"VariableDeclaration","scope":3532,"src":"11278:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11278:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11277:21:9"},"returnParameters":{"id":3488,"nodeType":"ParameterList","parameters":[],"src":"11306:0:9"},"scope":4131,"src":"11252:499:9","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":3656,"nodeType":"Block","src":"11933:1310:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3538,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12005:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3540,"indexExpression":{"argumentTypes":null,"id":3539,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12015:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12005:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"12005:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3542,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"12038:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12005:36:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e206973207374696c6c206f6e","id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12043:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""},"value":"competition is still on"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""}],"id":3537,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11997:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11997:72:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3546,"nodeType":"ExpressionStatement","src":"11997:72:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3548,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12087:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3550,"indexExpression":{"argumentTypes":null,"id":3549,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12097:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12087:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"12087:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12137:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12087:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20646f6573206e6f74206578697374","id":3554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12140:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""},"value":"proposal does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""}],"id":3547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12079:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12079:87:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3556,"nodeType":"ExpressionStatement","src":"12079:87:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3558,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12184:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12207: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":3559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12199:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12199:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12184:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c4964206973207a65726f","id":3563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12211:20:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""},"value":"proposalId is zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""}],"id":3557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12176:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12176:56:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3565,"nodeType":"ExpressionStatement","src":"12176:56:9"},{"assignments":[3569],"declarations":[{"constant":false,"id":3569,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":3656,"src":"12242:31:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3567,"name":"uint256","nodeType":"ElementaryTypeName","src":"12242:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3568,"length":null,"nodeType":"ArrayTypeName","src":"12242:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":3574,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3570,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12276:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3572,"indexExpression":{"argumentTypes":null,"id":3571,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12286:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12276:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"12276:37:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12242:71:9"},{"body":{"id":3600,"nodeType":"Block","src":"12375:130:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3587,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"12397:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3591,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3588,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"12409:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3590,"indexExpression":{"argumentTypes":null,"id":3589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"12424:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12409:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12397:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"12397:42:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451: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":3593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12443:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12443:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"12397:56:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f7420616c6c2077696e6e696e672073756767657374696f6e732072656465656d6564","id":3597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12455:38:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_56dd05396943dd2b41fd186ed9e3918694635b357b5b61a2888daceb75f0688b","typeString":"literal_string \"not all winning suggestions redeemed\""},"value":"not all winning suggestions redeemed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_56dd05396943dd2b41fd186ed9e3918694635b357b5b61a2888daceb75f0688b","typeString":"literal_string \"not all winning suggestions redeemed\""}],"id":3586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12389:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12389:105:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3599,"nodeType":"ExpressionStatement","src":"12389:105:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3579,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"12343:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3580,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"12347:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12347:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12343:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3601,"initializationExpression":{"assignments":[3576],"declarations":[{"constant":false,"id":3576,"name":"i","nodeType":"VariableDeclaration","scope":3601,"src":"12328:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3575,"name":"uint256","nodeType":"ElementaryTypeName","src":"12328:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3578,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12340:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12328:13:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12370:3:9","subExpression":{"argumentTypes":null,"id":3583,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"12370:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3585,"nodeType":"ExpressionStatement","src":"12370:3:9"},"nodeType":"ForStatement","src":"12323:182:9"},{"assignments":[null,null,null,null,null,null,3603,null,3605,3607,null],"declarations":[null,null,null,null,null,null,{"constant":false,"id":3603,"name":"nativeTokenRewardLeft","nodeType":"VariableDeclaration","scope":3656,"src":"12536:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3602,"name":"uint256","nodeType":"ElementaryTypeName","src":"12536:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},null,{"constant":false,"id":3605,"name":"ethRewardLeft","nodeType":"VariableDeclaration","scope":3656,"src":"12577:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"12577:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3607,"name":"externalTokenRewardLeft","nodeType":"VariableDeclaration","scope":3656,"src":"12608:31:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3606,"name":"uint256","nodeType":"ElementaryTypeName","src":"12608:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},null],"id":3614,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3612,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12719:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3609,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12674:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3608,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12652:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12652:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"organizationProposals","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"12652:66:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$_t_int256_$_t_uint256_$_t_contract$_IERC20_$21017_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$","typeString":"function (bytes32) view external returns (uint256,int256,uint256,contract IERC20,uint256,address payable,uint256,uint256,uint256,uint256,bool)"}},"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12652:79:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_int256_$_t_uint256_$_t_contract$_IERC20_$21017_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,int256,uint256,contract IERC20,uint256,address payable,uint256,uint256,uint256,uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"12515:216:9"},{"assignments":[3616],"declarations":[{"constant":false,"id":3616,"name":"avatar","nodeType":"VariableDeclaration","scope":3656,"src":"12742:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":3615,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"12742:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":3622,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3618,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12780:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3617,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12758:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12758:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"12758:51:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12758:53:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"12742:69:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3627,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12906:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3629,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"12927:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12919:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12919:15:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3631,"name":"externalTokenRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"12936:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3624,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12844:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3623,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12822:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12822:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemExternalTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6150,"src":"12822:74:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12822:138:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3633,"nodeType":"ExpressionStatement","src":"12822:138:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3638,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"13047:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3640,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"13068:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":3639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13060:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13060:15:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3642,"name":"ethRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"13077:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3635,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12993:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3634,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12971:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12971:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemEtherByRewarder","nodeType":"MemberAccess","referencedDeclaration":6084,"src":"12971:66:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (bytes32,address payable,uint256) external"}},"id":3643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12971:120:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3644,"nodeType":"ExpressionStatement","src":"12971:120:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3649,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"13184:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3651,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"13205:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":3650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13197:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13197:15:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3653,"name":"nativeTokenRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"13214:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3646,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"13124:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3645,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"13102:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13102:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemNativeTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6029,"src":"13102:72:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13102:134:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3655,"nodeType":"ExpressionStatement","src":"13102:134:9"}]},"documentation":"@dev sendLeftOverFund send leftover funds back to the dao.\n@param _proposalId the proposal id","id":3657,"implemented":true,"kind":"function","modifiers":[],"name":"sendLeftOverFunds","nodeType":"FunctionDefinition","parameters":{"id":3535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3534,"name":"_proposalId","nodeType":"VariableDeclaration","scope":3657,"src":"11905:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11905:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11904:21:9"},"returnParameters":{"id":3536,"nodeType":"ParameterList","parameters":[],"src":"11933:0:9"},"scope":4131,"src":"11878:1365:9","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":3942,"nodeType":"Block","src":"13396:2859:9","statements":[{"assignments":[3663],"declarations":[{"constant":false,"id":3663,"name":"proposalId","nodeType":"VariableDeclaration","scope":3942,"src":"13406:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13406:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3668,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3664,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"13427:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3666,"indexExpression":{"argumentTypes":null,"id":3665,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"13439:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13427:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"13427:37:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13406:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3670,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13482:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13504: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":3671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13496:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13496:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13482:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c4964206973207a65726f","id":3675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13508:20:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""},"value":"proposalId is zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""}],"id":3669,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13474:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13474:55:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3677,"nodeType":"ExpressionStatement","src":"13474:55:9"},{"assignments":[3679],"declarations":[{"constant":false,"id":3679,"name":"proposal","nodeType":"VariableDeclaration","scope":3942,"src":"13539:25:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"},"typeName":{"contractScope":null,"id":3678,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":2823,"src":"13539:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"}},"value":null,"visibility":"internal"}],"id":3683,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3680,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"13567:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3682,"indexExpression":{"argumentTypes":null,"id":3681,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13577:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13567:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13539:49:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3685,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"13606:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13622:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13606:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e4964206973207a65726f","id":3688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13625:22:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d5a66b2bc3987fc7da6b9e870345fd963d658adeafd4cd271ebb95fc984deec5","typeString":"literal_string \"suggestionId is zero\""},"value":"suggestionId is zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5a66b2bc3987fc7da6b9e870345fd963d658adeafd4cd271ebb95fc984deec5","typeString":"literal_string \"suggestionId is zero\""}],"id":3684,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13598:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13598:50:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3690,"nodeType":"ExpressionStatement","src":"13598:50:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3692,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"13720:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"13720:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3694,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"13739:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13720:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e206973207374696c6c206f6e","id":3696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13744:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""},"value":"competition is still on"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""}],"id":3691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13712:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13712:58:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3698,"nodeType":"ExpressionStatement","src":"13712:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3700,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"13788:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"13788:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13824:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13788:37:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20646f6573206e6f74206578697374","id":3704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13827:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""},"value":"proposal does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""}],"id":3699,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13780:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13780:73:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3706,"nodeType":"ExpressionStatement","src":"13780:73:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3708,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"13871:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3710,"indexExpression":{"argumentTypes":null,"id":3709,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"13883:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"13871:38:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13921: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":3712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13913:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13913:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"13871:52:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e2077617320616c72656164792072656465656d6564","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13933:33:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7c5b854a4119be39f51d7bcf92cc8bc7f1e47eaa06dc20fa9f2e817ddf3f5540","typeString":"literal_string \"suggestion was already redeemed\""},"value":"suggestion was already redeemed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c5b854a4119be39f51d7bcf92cc8bc7f1e47eaa06dc20fa9f2e817ddf3f5540","typeString":"literal_string \"suggestion was already redeemed\""}],"id":3707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13863:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13863:104:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3718,"nodeType":"ExpressionStatement","src":"13863:104:9"},{"assignments":[3720],"declarations":[{"constant":false,"id":3720,"name":"beneficiary","nodeType":"VariableDeclaration","scope":3942,"src":"13977:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3719,"name":"address","nodeType":"ElementaryTypeName","src":"13977:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":3725,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3721,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"14007:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3723,"indexExpression":{"argumentTypes":null,"id":3722,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14019:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14007:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"14007:38:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"13977:68:9"},{"assignments":[3727],"declarations":[{"constant":false,"id":3727,"name":"orderIndex","nodeType":"VariableDeclaration","scope":3942,"src":"14055:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3726,"name":"uint256","nodeType":"ElementaryTypeName","src":"14055:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3731,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3729,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14104:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3728,"name":"getOrderedIndexOfSuggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"14076:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":3730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14076:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14055:63:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3733,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"14136:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3734,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14149:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"14149:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14149:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14136:43:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e206973206e6f7420696e2077696e6e657273206c697374","id":3738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14181:35:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0de69b350f2418161c08b4cef3193ac906bb0027a2810131b3a80119f8fe23f6","typeString":"literal_string \"suggestion is not in winners list\""},"value":"suggestion is not in winners list"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0de69b350f2418161c08b4cef3193ac906bb0027a2810131b3a80119f8fe23f6","typeString":"literal_string \"suggestion is not in winners list\""}],"id":3732,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"14128:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14128:89:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3740,"nodeType":"ExpressionStatement","src":"14128:89:9"},{"expression":{"argumentTypes":null,"id":3748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3741,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"14227:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3743,"indexExpression":{"argumentTypes":null,"id":3742,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14239:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14227:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"14227:38:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14276: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":3745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14268:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14268:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"14227:51:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3749,"nodeType":"ExpressionStatement","src":"14227:51:9"},{"assignments":[3751],"declarations":[{"constant":false,"id":3751,"name":"rewardPercentage","nodeType":"VariableDeclaration","scope":3942,"src":"14288:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3750,"name":"uint256","nodeType":"ElementaryTypeName","src":"14288:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3753,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14315:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14288:28:9"},{"assignments":[3755],"declarations":[{"constant":false,"id":3755,"name":"numberOfTieSuggestions","nodeType":"VariableDeclaration","scope":3942,"src":"14326:30:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3754,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3763,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3756,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14359:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"14359:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3762,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3758,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"14387:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3760,"indexExpression":{"argumentTypes":null,"id":3759,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14399:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14387:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"14387:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14359:66:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14326:99:9"},{"assignments":[3765],"declarations":[{"constant":false,"id":3765,"name":"j","nodeType":"VariableDeclaration","scope":3942,"src":"14435:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3764,"name":"uint256","nodeType":"ElementaryTypeName","src":"14435:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3766,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14435:9:9"},{"body":{"id":3795,"nodeType":"Block","src":"14610:89:9","statements":[{"expression":{"argumentTypes":null,"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3785,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14624:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3788,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14664:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"14664:20:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3791,"indexExpression":{"argumentTypes":null,"id":3790,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14685:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14664:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3786,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14643:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"14643:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14643:45:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14624:64:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3794,"nodeType":"ExpressionStatement","src":"14624:64:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3771,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14532:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3772,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"14537:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":3773,"name":"numberOfTieSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"14548:22:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14537:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14536:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14532:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3777,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14575:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3778,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14579:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"14579:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14575:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14532:71:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3796,"initializationExpression":{"expression":{"argumentTypes":null,"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3767,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14516:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3768,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"14520:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14516:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3770,"nodeType":"ExpressionStatement","src":"14516:14:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14605:3:9","subExpression":{"argumentTypes":null,"id":3782,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14605:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3784,"nodeType":"ExpressionStatement","src":"14605:3:9"},"nodeType":"ForStatement","src":"14511:188:9"},{"expression":{"argumentTypes":null,"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3797,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14708:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3800,"name":"numberOfTieSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"14748:22:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3798,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14727:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"14727:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14727:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14708:63:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3803,"nodeType":"ExpressionStatement","src":"14708:63:9"},{"assignments":[3805],"declarations":[{"constant":false,"id":3805,"name":"rewardPercentageLeft","nodeType":"VariableDeclaration","scope":3942,"src":"14781:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3804,"name":"uint256","nodeType":"ElementaryTypeName","src":"14781:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3807,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14812:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14781:32:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3808,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14827:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"14827:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14827:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3811,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14860:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"14860:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14827:57:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3852,"nodeType":"IfStatement","src":"14823:545:9","trueBody":{"id":3851,"nodeType":"Block","src":"14886:482:9","statements":[{"body":{"id":3837,"nodeType":"Block","src":"15130:105:9","statements":[{"expression":{"argumentTypes":null,"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3827,"name":"rewardPercentageLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"15148:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3830,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15196:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"15196:20:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3833,"indexExpression":{"argumentTypes":null,"id":3832,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15217:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15196:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3828,"name":"rewardPercentageLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"15171:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"15171:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15171:49:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15148:72:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3836,"nodeType":"ExpressionStatement","src":"15148:72:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3820,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15095:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3821,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15099:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"15099:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15095:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3838,"initializationExpression":{"expression":{"argumentTypes":null,"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3814,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15059:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3815,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15063:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"15063:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15063:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15059:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3819,"nodeType":"ExpressionStatement","src":"15059:34:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15125:3:9","subExpression":{"argumentTypes":null,"id":3824,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15125:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3826,"nodeType":"ExpressionStatement","src":"15125:3:9"},"nodeType":"ForStatement","src":"15054:181:9"},{"expression":{"argumentTypes":null,"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3839,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15248:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3844,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15325:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"15325:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15325:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3842,"name":"rewardPercentageLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"15300:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15300:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15300:56:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3840,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15279:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"15279:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15279:78:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15248:109:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3850,"nodeType":"ExpressionStatement","src":"15248:109:9"}]}},{"assignments":[3854],"declarations":[{"constant":false,"id":3854,"name":"amount","nodeType":"VariableDeclaration","scope":3942,"src":"15377:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3853,"name":"uint256","nodeType":"ElementaryTypeName","src":"15377:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3855,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"15377:14:9"},{"expression":{"argumentTypes":null,"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3856,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15401:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15465:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3860,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15443:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3857,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15410:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":2809,"src":"15410:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15410:32:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15410:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15410:54:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15410:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3866,"nodeType":"ExpressionStatement","src":"15401:68:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3871,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15563:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3872,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"15575:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3873,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15588:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3868,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"15501:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3867,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"15479:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15479:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemExternalTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6150,"src":"15479:74:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15479:116:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3875,"nodeType":"ExpressionStatement","src":"15479:116:9"},{"expression":{"argumentTypes":null,"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3876,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15606:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15667:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3880,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15645:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3877,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15615:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationReward","nodeType":"MemberAccess","referencedDeclaration":2803,"src":"15615:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15615:29:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15615:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15615:51:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15615:56:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15606:65:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3886,"nodeType":"ExpressionStatement","src":"15606:65:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3891,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15762:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3892,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"15774:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3893,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15787:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3888,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"15703:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3887,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"15681:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15681:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemReputationByRewarder","nodeType":"MemberAccess","referencedDeclaration":5970,"src":"15681:71:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15681:113:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3895,"nodeType":"ExpressionStatement","src":"15681:113:9"},{"expression":{"argumentTypes":null,"id":3905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15805:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15859:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3900,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15837:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3897,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15814:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":2805,"src":"15814:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15814:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15814:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15814:44:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15814:49:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15805:58:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3906,"nodeType":"ExpressionStatement","src":"15805:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3911,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15949:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3912,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"15961:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3913,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15974:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3908,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"15895:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3907,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"15873:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15873:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemEtherByRewarder","nodeType":"MemberAccess","referencedDeclaration":6084,"src":"15873:66:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (bytes32,address payable,uint256) external"}},"id":3914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15873:108:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3915,"nodeType":"ExpressionStatement","src":"15873:108:9"},{"expression":{"argumentTypes":null,"id":3925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15992:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16054:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3920,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"16032:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3917,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"16001:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":2807,"src":"16001:26:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16001:30:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16001:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"16001:52:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16001:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15992:66:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3926,"nodeType":"ExpressionStatement","src":"15992:66:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3931,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"16150:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3932,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"16162:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3933,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"16175:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3928,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"16090:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3927,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"16068:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16068:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemNativeTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6029,"src":"16068:72:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16068:114:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3935,"nodeType":"ExpressionStatement","src":"16068:114:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3937,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"16204:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3938,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"16216:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3939,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"16231:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3936,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2756,"src":"16197:6:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16197:51:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3941,"nodeType":"EmitStatement","src":"16192:56:9"}]},"documentation":"@dev redeem a winning suggestion reward\n@param _suggestionId suggestionId","id":3943,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":3660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3659,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":3943,"src":"13366:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3658,"name":"uint256","nodeType":"ElementaryTypeName","src":"13366:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13365:23:9"},"returnParameters":{"id":3661,"nodeType":"ParameterList","parameters":[],"src":"13396:0:9"},"scope":4131,"src":"13350:2905:9","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4004,"nodeType":"Block","src":"16643:508:9","statements":[{"assignments":[3951],"declarations":[{"constant":false,"id":3951,"name":"proposalId","nodeType":"VariableDeclaration","scope":4004,"src":"16653:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16653:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3956,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3952,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"16674:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3954,"indexExpression":{"argumentTypes":null,"id":3953,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"16686:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16674:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"16674:37:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16653:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3958,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"16729:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16751: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":3959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16743:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16743:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16729:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e20646f6573206e6f74206578697374","id":3963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16755:27:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""},"value":"suggestion does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""}],"id":3957,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"16721:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16721:62:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3965,"nodeType":"ExpressionStatement","src":"16721:62:9"},{"assignments":[3969],"declarations":[{"constant":false,"id":3969,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":4004,"src":"16793:31:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3967,"name":"uint256","nodeType":"ElementaryTypeName","src":"16793:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3968,"length":null,"nodeType":"ArrayTypeName","src":"16793:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":3974,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3970,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"16827:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3972,"indexExpression":{"argumentTypes":null,"id":3971,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"16837:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16827:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"16827:36:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16793:70:9"},{"body":{"id":4002,"nodeType":"Block","src":"16994:151:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3986,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"17012:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3990,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3987,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"17024:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3989,"indexExpression":{"argumentTypes":null,"id":3988,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"17039:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17024:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17012:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"17012:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3992,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"17056:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3994,"indexExpression":{"argumentTypes":null,"id":3993,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"17068:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17056:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"17056:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17012:81:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4001,"nodeType":"IfStatement","src":"17008:127:9","trueBody":{"id":4000,"nodeType":"Block","src":"17095:40:9","statements":[{"expression":{"argumentTypes":null,"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17113:7:9","subExpression":{"argumentTypes":null,"id":3997,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3948,"src":"17113:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3999,"nodeType":"ExpressionStatement","src":"17113:7:9"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"16962:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3980,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"16966:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16966:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16962:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4003,"initializationExpression":{"assignments":[3976],"declarations":[{"constant":false,"id":3976,"name":"i","nodeType":"VariableDeclaration","scope":4003,"src":"16947:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3975,"name":"uint256","nodeType":"ElementaryTypeName","src":"16947:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3978,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16959:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16947:13:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16989:3:9","subExpression":{"argumentTypes":null,"id":3983,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"16989:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3985,"nodeType":"ExpressionStatement","src":"16989:3:9"},"nodeType":"ForStatement","src":"16942:203:9"}]},"documentation":"@dev getOrderedIndexOfSuggestion return the index of specific suggestion in the winners list.\nfor the case when the suggestion is NOT in the winners list,\nthis method will return topSuggestions.length\n@param _suggestionId suggestion id","id":4005,"implemented":true,"kind":"function","modifiers":[],"name":"getOrderedIndexOfSuggestion","nodeType":"FunctionDefinition","parameters":{"id":3946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3945,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":4005,"src":"16573:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3944,"name":"uint256","nodeType":"ElementaryTypeName","src":"16573:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16572:23:9"},"returnParameters":{"id":3949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3948,"name":"index","nodeType":"VariableDeclaration","scope":4005,"src":"16628:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3947,"name":"uint256","nodeType":"ElementaryTypeName","src":"16628:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16627:15:9"},"scope":4131,"src":"16536:615:9","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":4129,"nodeType":"Block","src":"17586:1210:9","statements":[{"assignments":[4015],"declarations":[{"constant":false,"id":4015,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":4129,"src":"17596:32:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4013,"name":"uint256","nodeType":"ElementaryTypeName","src":"17596:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4014,"length":null,"nodeType":"ArrayTypeName","src":"17596:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":4020,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4016,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"17631:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":4018,"indexExpression":{"argumentTypes":null,"id":4017,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"17641:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17631:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":4019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"17631:37:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17596:72:9"},{"assignments":[4022],"declarations":[{"constant":false,"id":4022,"name":"topSuggestionsLength","nodeType":"VariableDeclaration","scope":4129,"src":"17678:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4021,"name":"uint256","nodeType":"ElementaryTypeName","src":"17678:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4025,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4023,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"17709:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17709:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17678:52:9"},{"assignments":[4027],"declarations":[{"constant":false,"id":4027,"name":"i","nodeType":"VariableDeclaration","scope":4129,"src":"17740:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4026,"name":"uint256","nodeType":"ElementaryTypeName","src":"17740:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4028,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"17740:9:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4029,"name":"topSuggestionsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4022,"src":"17763:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4030,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"17786:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":4032,"indexExpression":{"argumentTypes":null,"id":4031,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"17796:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17786:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":4033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"17786:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17763:61:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4127,"nodeType":"Block","src":"18066:724:9","statements":[{"assignments":[4063],"declarations":[{"constant":false,"id":4063,"name":"smallest","nodeType":"VariableDeclaration","scope":4127,"src":"18135:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4062,"name":"uint256","nodeType":"ElementaryTypeName","src":"18135:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4065,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18154:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18135:20:9"},{"body":{"id":4106,"nodeType":"Block","src":"18230:369:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4079,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18252:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4083,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4080,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18264:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4082,"indexExpression":{"argumentTypes":null,"id":4081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18279:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18264:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18252:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18252:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4085,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18316:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4089,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4086,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18328:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4088,"indexExpression":{"argumentTypes":null,"id":4087,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18343:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18328:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18316:37:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18316:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18252:112:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4097,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18429:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4099,"indexExpression":{"argumentTypes":null,"id":4098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18444:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18429:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4100,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18450:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18429:34:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4104,"nodeType":"IfStatement","src":"18425:160:9","trueBody":{"id":4103,"nodeType":"Block","src":"18465:120:9","statements":[{"expression":null,"functionReturnParameters":4011,"id":4102,"nodeType":"Return","src":"18560:7:9"}]}},"id":4105,"nodeType":"IfStatement","src":"18248:337:9","trueBody":{"id":4096,"nodeType":"Block","src":"18366:53:9","statements":[{"expression":{"argumentTypes":null,"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4092,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18388:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4093,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18399:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18388:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4095,"nodeType":"ExpressionStatement","src":"18388:12:9"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18181:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4071,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"18185:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":4073,"indexExpression":{"argumentTypes":null,"id":4072,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"18195:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18185:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":4074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"18185:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18181:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4107,"initializationExpression":{"expression":{"argumentTypes":null,"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18174:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18178:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18174:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4069,"nodeType":"ExpressionStatement","src":"18174:5:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18225:3:9","subExpression":{"argumentTypes":null,"id":4076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18225:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4078,"nodeType":"ExpressionStatement","src":"18225:3:9"},"nodeType":"ForStatement","src":"18169:430:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4108,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18617:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4112,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4109,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18629:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4111,"indexExpression":{"argumentTypes":null,"id":4110,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18644:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18629:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18617:37:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18617:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4114,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18668:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4116,"indexExpression":{"argumentTypes":null,"id":4115,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18680:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18668:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18668:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18617:88:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4126,"nodeType":"IfStatement","src":"18613:167:9","trueBody":{"id":4125,"nodeType":"Block","src":"18707:73:9","statements":[{"expression":{"argumentTypes":null,"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4119,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18725:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4121,"indexExpression":{"argumentTypes":null,"id":4120,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18740:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18725:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4122,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18752:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18725:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4124,"nodeType":"ExpressionStatement","src":"18725:40:9"}]}}]},"id":4128,"nodeType":"IfStatement","src":"17759:1031:9","trueBody":{"id":4061,"nodeType":"Block","src":"17826:234:9","statements":[{"body":{"id":4053,"nodeType":"Block","src":"17883:119:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4045,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"17905:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4047,"indexExpression":{"argumentTypes":null,"id":4046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17920:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17905:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4048,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"17926:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17905:34:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4052,"nodeType":"IfStatement","src":"17901:87:9","trueBody":{"id":4051,"nodeType":"Block","src":"17941:47:9","statements":[{"expression":null,"functionReturnParameters":4011,"id":4050,"nodeType":"Return","src":"17963:7:9"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17852:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4040,"name":"topSuggestionsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4022,"src":"17856:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17852:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4054,"initializationExpression":{"expression":{"argumentTypes":null,"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17845:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17849:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17845:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4038,"nodeType":"ExpressionStatement","src":"17845:5:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":4043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17878:3:9","subExpression":{"argumentTypes":null,"id":4042,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17878:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4044,"nodeType":"ExpressionStatement","src":"17878:3:9"},"nodeType":"ForStatement","src":"17840:162:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4058,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18035:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4055,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18015:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18015:19:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18015:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4060,"nodeType":"ExpressionStatement","src":"18015:34:9"}]}}]},"documentation":"@dev refreshTopSuggestions this function maintain a winners list array.\nit will check if the given suggestion is among the top suggestions, and if so,\nupdate the list of top suggestions\n@param _proposalId proposal id\n@param _suggestionId suggestion id","id":4130,"implemented":true,"kind":"function","modifiers":[],"name":"refreshTopSuggestions","nodeType":"FunctionDefinition","parameters":{"id":4010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4007,"name":"_proposalId","nodeType":"VariableDeclaration","scope":4130,"src":"17534:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17534:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4009,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":4130,"src":"17555:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4008,"name":"uint256","nodeType":"ElementaryTypeName","src":"17555:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17533:44:9"},"returnParameters":{"id":4011,"nodeType":"ParameterList","parameters":[],"src":"17586:0:9"},"scope":4131,"src":"17503:1293:9","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":4132,"src":"65:18734:9"}],"src":"0:18800:9"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Competition.sol","exportedSymbols":{"Competition":[4131]},"id":4132,"nodeType":"SourceUnit","nodes":[{"id":2718,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:9"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","file":"./ContributionRewardExt.sol","id":2719,"nodeType":"ImportDirective","scope":4132,"sourceUnit":6294,"src":"25:37:9","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":4131,"linearizedBaseContracts":[4131],"name":"Competition","nodeType":"ContractDefinition","nodes":[{"id":2722,"libraryName":{"contractScope":null,"id":2720,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"98:8:9","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"92:27:9","typeName":{"id":2721,"name":"uint256","nodeType":"ElementaryTypeName","src":"111:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":true,"id":2725,"name":"MAX_NUMBER_OF_WINNERS","nodeType":"VariableDeclaration","scope":4131,"src":"125:51:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2723,"name":"uint256","nodeType":"ElementaryTypeName","src":"125:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313030","id":2724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"173:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"public"},{"anonymous":false,"documentation":null,"id":2748,"name":"NewCompetitionProposal","nodeType":"EventDefinition","parameters":{"id":2747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2748,"src":"221:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2726,"name":"bytes32","nodeType":"ElementaryTypeName","src":"221:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2729,"indexed":false,"name":"_numberOfWinners","nodeType":"VariableDeclaration","scope":2748,"src":"258:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2728,"name":"uint256","nodeType":"ElementaryTypeName","src":"258:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2732,"indexed":false,"name":"_rewardSplit","nodeType":"VariableDeclaration","scope":2748,"src":"292:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2730,"name":"uint256","nodeType":"ElementaryTypeName","src":"292:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2731,"length":null,"nodeType":"ArrayTypeName","src":"292:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2734,"indexed":false,"name":"_startTime","nodeType":"VariableDeclaration","scope":2748,"src":"324:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2733,"name":"uint256","nodeType":"ElementaryTypeName","src":"324:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2736,"indexed":false,"name":"_votingStartTime","nodeType":"VariableDeclaration","scope":2748,"src":"352:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2735,"name":"uint256","nodeType":"ElementaryTypeName","src":"352:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2738,"indexed":false,"name":"_suggestionsEndTime","nodeType":"VariableDeclaration","scope":2748,"src":"386:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2737,"name":"uint256","nodeType":"ElementaryTypeName","src":"386:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2740,"indexed":false,"name":"_endTime","nodeType":"VariableDeclaration","scope":2748,"src":"423:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2739,"name":"uint256","nodeType":"ElementaryTypeName","src":"423:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2742,"indexed":false,"name":"_maxNumberOfVotesPerVoter","nodeType":"VariableDeclaration","scope":2748,"src":"449:33:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2741,"name":"uint256","nodeType":"ElementaryTypeName","src":"449:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2744,"indexed":false,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":2748,"src":"492:38:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2743,"name":"address","nodeType":"ElementaryTypeName","src":"492:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":2746,"indexed":false,"name":"_admin","nodeType":"VariableDeclaration","scope":2748,"src":"582:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2745,"name":"address","nodeType":"ElementaryTypeName","src":"582:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"211:391:9"},"src":"183:420:9"},{"anonymous":false,"documentation":null,"id":2756,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":2755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2750,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2756,"src":"631:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"631:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2752,"indexed":true,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":2756,"src":"668:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2751,"name":"uint256","nodeType":"ElementaryTypeName","src":"668:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2754,"indexed":false,"name":"_rewardPercentage","nodeType":"VariableDeclaration","scope":2756,"src":"707:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2753,"name":"uint256","nodeType":"ElementaryTypeName","src":"707:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"621:117:9"},"src":"609:130:9"},{"anonymous":false,"documentation":null,"id":2766,"name":"NewSuggestion","nodeType":"EventDefinition","parameters":{"id":2765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2758,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2766,"src":"774:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2757,"name":"bytes32","nodeType":"ElementaryTypeName","src":"774:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2760,"indexed":true,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":2766,"src":"811:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2759,"name":"uint256","nodeType":"ElementaryTypeName","src":"811:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2762,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":2766,"src":"850:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2761,"name":"string","nodeType":"ElementaryTypeName","src":"850:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2764,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":2766,"src":"883:36:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2763,"name":"address","nodeType":"ElementaryTypeName","src":"883:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"764:161:9"},"src":"745:181:9"},{"anonymous":false,"documentation":null,"id":2776,"name":"NewVote","nodeType":"EventDefinition","parameters":{"id":2775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2768,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2776,"src":"955:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2767,"name":"bytes32","nodeType":"ElementaryTypeName","src":"955:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2770,"indexed":true,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":2776,"src":"992:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2769,"name":"uint256","nodeType":"ElementaryTypeName","src":"992:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2772,"indexed":true,"name":"_voter","nodeType":"VariableDeclaration","scope":2776,"src":"1031:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2771,"name":"address","nodeType":"ElementaryTypeName","src":"1031:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2774,"indexed":false,"name":"_reputation","nodeType":"VariableDeclaration","scope":2776,"src":"1063:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2773,"name":"uint256","nodeType":"ElementaryTypeName","src":"1063:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"945:143:9"},"src":"932:157:9"},{"anonymous":false,"documentation":null,"id":2782,"name":"SnapshotBlock","nodeType":"EventDefinition","parameters":{"id":2781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2778,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":2782,"src":"1124:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1124:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2780,"indexed":false,"name":"_snapshotBlock","nodeType":"VariableDeclaration","scope":2782,"src":"1161:22:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2779,"name":"uint256","nodeType":"ElementaryTypeName","src":"1161:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1114:75:9"},"src":"1095:95:9"},{"canonicalName":"Competition.Proposal","id":2823,"members":[{"constant":false,"id":2784,"name":"numberOfWinners","nodeType":"VariableDeclaration","scope":2823,"src":"1282:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2783,"name":"uint256","nodeType":"ElementaryTypeName","src":"1282:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2787,"name":"rewardSplit","nodeType":"VariableDeclaration","scope":2823,"src":"1315:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2785,"name":"uint256","nodeType":"ElementaryTypeName","src":"1315:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2786,"length":null,"nodeType":"ArrayTypeName","src":"1315:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2789,"name":"startTime","nodeType":"VariableDeclaration","scope":2823,"src":"1346:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2788,"name":"uint256","nodeType":"ElementaryTypeName","src":"1346:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2791,"name":"votingStartTime","nodeType":"VariableDeclaration","scope":2823,"src":"1373:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2790,"name":"uint256","nodeType":"ElementaryTypeName","src":"1373:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2793,"name":"suggestionsEndTime","nodeType":"VariableDeclaration","scope":2823,"src":"1406:26:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2792,"name":"uint256","nodeType":"ElementaryTypeName","src":"1406:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2795,"name":"endTime","nodeType":"VariableDeclaration","scope":2823,"src":"1442:15:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2794,"name":"uint256","nodeType":"ElementaryTypeName","src":"1442:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2797,"name":"maxNumberOfVotesPerVoter","nodeType":"VariableDeclaration","scope":2823,"src":"1467:32:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2796,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2799,"name":"contributionRewardExt","nodeType":"VariableDeclaration","scope":2823,"src":"1509:37:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2798,"name":"address","nodeType":"ElementaryTypeName","src":"1509:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":2801,"name":"snapshotBlock","nodeType":"VariableDeclaration","scope":2823,"src":"1556:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2800,"name":"uint256","nodeType":"ElementaryTypeName","src":"1556:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2803,"name":"reputationReward","nodeType":"VariableDeclaration","scope":2823,"src":"1587:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2802,"name":"uint256","nodeType":"ElementaryTypeName","src":"1587:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2805,"name":"ethReward","nodeType":"VariableDeclaration","scope":2823,"src":"1621:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2804,"name":"uint256","nodeType":"ElementaryTypeName","src":"1621:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2807,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":2823,"src":"1648:25:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2809,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":2823,"src":"1683:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2808,"name":"uint256","nodeType":"ElementaryTypeName","src":"1683:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2812,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":2823,"src":"1720:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2810,"name":"uint256","nodeType":"ElementaryTypeName","src":"1720:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2811,"length":null,"nodeType":"ArrayTypeName","src":"1720:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2814,"name":"admin","nodeType":"VariableDeclaration","scope":2823,"src":"1754:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2813,"name":"address","nodeType":"ElementaryTypeName","src":"1754:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2818,"name":"suggestionsPerVote","nodeType":"VariableDeclaration","scope":2823,"src":"1878:44:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":2817,"keyType":{"id":2815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1886:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1878:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":2816,"name":"uint256","nodeType":"ElementaryTypeName","src":"1895:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":2822,"name":"votesPerVoter","nodeType":"VariableDeclaration","scope":2823,"src":"1932:39:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2821,"keyType":{"id":2819,"name":"address","nodeType":"ElementaryTypeName","src":"1940:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1932:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2820,"name":"uint256","nodeType":"ElementaryTypeName","src":"1949:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":4131,"src":"1256:722:9","visibility":"public"},{"canonicalName":"Competition.Suggestion","id":2834,"members":[{"constant":false,"id":2825,"name":"totalVotes","nodeType":"VariableDeclaration","scope":2834,"src":"2012:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2824,"name":"uint256","nodeType":"ElementaryTypeName","src":"2012:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2827,"name":"proposalId","nodeType":"VariableDeclaration","scope":2834,"src":"2040:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2826,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2040:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":2829,"name":"beneficiary","nodeType":"VariableDeclaration","scope":2834,"src":"2068:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2828,"name":"address","nodeType":"ElementaryTypeName","src":"2068:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":2833,"name":"votes","nodeType":"VariableDeclaration","scope":2834,"src":"2105:31:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":2832,"keyType":{"id":2830,"name":"address","nodeType":"ElementaryTypeName","src":"2113:7:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2105:25:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":2831,"name":"uint256","nodeType":"ElementaryTypeName","src":"2122:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Suggestion","nodeType":"StructDefinition","scope":4131,"src":"1984:159:9","visibility":"public"},{"constant":false,"id":2838,"name":"proposals","nodeType":"VariableDeclaration","scope":4131,"src":"2191:43:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal)"},"typeName":{"id":2837,"keyType":{"id":2835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2199:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2191:26:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal)"},"valueType":{"contractScope":null,"id":2836,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":2823,"src":"2208:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":2842,"name":"suggestions","nodeType":"VariableDeclaration","scope":4131,"src":"2286:47:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion)"},"typeName":{"id":2841,"keyType":{"id":2839,"name":"uint256","nodeType":"ElementaryTypeName","src":"2294:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2286:28:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion)"},"valueType":{"contractScope":null,"id":2840,"name":"Suggestion","nodeType":"UserDefinedTypeName","referencedDeclaration":2834,"src":"2303:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion"}}},"value":null,"visibility":"public"},{"constant":false,"id":2844,"name":"suggestionsCounter","nodeType":"VariableDeclaration","scope":4131,"src":"2339:33:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2843,"name":"uint256","nodeType":"ElementaryTypeName","src":"2339:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":2846,"name":"contributionRewardExt","nodeType":"VariableDeclaration","scope":4131,"src":"2378:44:9","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2845,"name":"address","nodeType":"ElementaryTypeName","src":"2378:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"public"},{"body":{"id":2873,"nodeType":"Block","src":"2722:243:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":2856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2852,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"2740:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2773: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":2853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2765:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2765:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2740:35:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":2857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2777:29:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":2851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2732:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2732:75:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2859,"nodeType":"ExpressionStatement","src":"2732:75:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":2865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2861,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"2825:22:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2859: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":2862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2851:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2851:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2825:36:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6e747269627574696f6e5265776172644578742063616e6e6f74206265207a65726f","id":2866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2863:38:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3417a3a1ced797359a4bbcd2aed4868bfebf46c91c98fa145293f48181771933","typeString":"literal_string \"contributionRewardExt cannot be zero\""},"value":"contributionRewardExt cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3417a3a1ced797359a4bbcd2aed4868bfebf46c91c98fa145293f48181771933","typeString":"literal_string \"contributionRewardExt cannot be zero\""}],"id":2860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2817:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2817:85:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2868,"nodeType":"ExpressionStatement","src":"2817:85:9"},{"expression":{"argumentTypes":null,"id":2871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2869,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"2912:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2870,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2848,"src":"2936:22:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2912:46:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":2872,"nodeType":"ExpressionStatement","src":"2912:46:9"}]},"documentation":"@dev initialize\n@param _contributionRewardExt the contributionRewardExt scheme which\n manage and allocate the rewards for the competition.","id":2874,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":2849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2848,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":2874,"src":"2673:38:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2847,"name":"address","nodeType":"ElementaryTypeName","src":"2673:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"2672:40:9"},"returnParameters":{"id":2850,"nodeType":"ParameterList","parameters":[],"src":"2722:0:9"},"scope":4131,"src":"2653:312:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3192,"nodeType":"Block","src":"4732:3040:9","statements":[{"assignments":[2899],"declarations":[{"constant":false,"id":2899,"name":"numberOfWinners","nodeType":"VariableDeclaration","scope":3192,"src":"4742:23:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2898,"name":"uint256","nodeType":"ElementaryTypeName","src":"4742:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2902,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2900,"name":"_rewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2887,"src":"4768:12:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":2901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4768:19:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4742:45:9"},{"assignments":[2904],"declarations":[{"constant":false,"id":2904,"name":"startTime","nodeType":"VariableDeclaration","scope":3192,"src":"4797:17:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2903,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":2908,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2905,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"4817:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2907,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":2906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4836:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4817:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4797:41:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2909,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"4852:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2910,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4865:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4852:14:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2917,"nodeType":"IfStatement","src":"4848:116:9","trueBody":{"id":2916,"nodeType":"Block","src":"4868:96:9","statements":[{"expression":{"argumentTypes":null,"id":2914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":2912,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"4938:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":2913,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"4950:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4938:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2915,"nodeType":"ExpressionStatement","src":"4938:15:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2919,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"5035:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2920,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5048:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5035:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"737461727454696d652073686f756c642062652067726561746572207468616e2070726f706f73696e672074696d65","id":2922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5053:49:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_36ef746d2ffcd64a94f472f94e0c07b61430514657fb03f9f8ab83fe4e515587","typeString":"literal_string \"startTime should be greater than proposing time\""},"value":"startTime should be greater than proposing time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_36ef746d2ffcd64a94f472f94e0c07b61430514657fb03f9f8ab83fe4e515587","typeString":"literal_string \"startTime should be greater than proposing time\""}],"id":2918,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5027:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5027:76:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2924,"nodeType":"ExpressionStatement","src":"5027:76:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2926,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"5121:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":2927,"name":"MAX_NUMBER_OF_WINNERS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2725,"src":"5140:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5121:40:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d626572206f662077696e6e6572732067726561746572207468616e206d617820616c6c6f776564","id":2929,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5163:44:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ed6b70ac582911fefdd0460ed40f755a457f2a09a0c29d07282178e301468356","typeString":"literal_string \"number of winners greater than max allowed\""},"value":"number of winners greater than max allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ed6b70ac582911fefdd0460ed40f755a457f2a09a0c29d07282178e301468356","typeString":"literal_string \"number of winners greater than max allowed\""}],"id":2925,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5113:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5113:95:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2931,"nodeType":"ExpressionStatement","src":"5113:95:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2933,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5226:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2935,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5245:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5226:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2936,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5250:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2938,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":2937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5269:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5250:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5226:45:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e672073746172742074696d652067726561746572207468616e20656e642074696d65","id":2940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5273:41:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9167d4332fa929204dea83a957c77ebc759c73f0592eb86e907e38fbf753df8e","typeString":"literal_string \"voting start time greater than end time\""},"value":"voting start time greater than end time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9167d4332fa929204dea83a957c77ebc759c73f0592eb86e907e38fbf753df8e","typeString":"literal_string \"voting start time greater than end time\""}],"id":2932,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5218:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5218:97:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2942,"nodeType":"ExpressionStatement","src":"5218:97:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2944,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5333:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2946,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":2945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5352:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5333:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":2947,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"5358:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5333:34:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e672073746172742074696d6520736d616c6c6572207468616e2073746172742074696d65","id":2949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5369:43:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d0b63f330c6528a605505692486427ca335c1fe11bc6b6cab8d268d025f7c33c","typeString":"literal_string \"voting start time smaller than start time\""},"value":"voting start time smaller than start time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d0b63f330c6528a605505692486427ca335c1fe11bc6b6cab8d268d025f7c33c","typeString":"literal_string \"voting start time smaller than start time\""}],"id":2943,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5325:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:88:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2951,"nodeType":"ExpressionStatement","src":"5325:88:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2953,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5431:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2955,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":2954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5450:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5431:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5455:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5431:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d61784e756d6265724f66566f746573506572566f7465722073686f756c642062652067726561746572207468616e2030","id":2958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5458:51:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_07fd2020c7173c53cb88555029bd3fa032ec0d6ac13bcf45ade119699cd0df58","typeString":"literal_string \"maxNumberOfVotesPerVoter should be greater than 0\""},"value":"maxNumberOfVotesPerVoter should be greater than 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_07fd2020c7173c53cb88555029bd3fa032ec0d6ac13bcf45ade119699cd0df58","typeString":"literal_string \"maxNumberOfVotesPerVoter should be greater than 0\""}],"id":2952,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5423:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5423:87:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2960,"nodeType":"ExpressionStatement","src":"5423:87:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2962,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5528:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2964,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":2963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5547:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5528:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2965,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5553:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2967,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":2966,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5572:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5553:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5528:46:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e73456e6454696d652073686f756c64206265206561726c696572207468616e2070726f706f73616c20656e642074696d65","id":2969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5584:61:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e421409ac1d76dc70572a314f85c6fc319a0a63ce601bed02bc7fb260fa81d30","typeString":"literal_string \"suggestionsEndTime should be earlier than proposal end time\""},"value":"suggestionsEndTime should be earlier than proposal end time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e421409ac1d76dc70572a314f85c6fc319a0a63ce601bed02bc7fb260fa81d30","typeString":"literal_string \"suggestionsEndTime should be earlier than proposal end time\""}],"id":2961,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5520:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5520:126:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2971,"nodeType":"ExpressionStatement","src":"5520:126:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2973,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"5664:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":2975,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":2974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5683:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5664:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":2976,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"5688:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5664:33:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e73456e6454696d652073686f756c64206265206c61746572207468616e2070726f706f73616c2073746172742074696d65","id":2978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5699:61:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8d8869cfe9a89c8e636def05c34db933b99dac87836693aa32940dafc3a19177","typeString":"literal_string \"suggestionsEndTime should be later than proposal start time\""},"value":"suggestionsEndTime should be later than proposal start time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d8869cfe9a89c8e636def05c34db933b99dac87836693aa32940dafc3a19177","typeString":"literal_string \"suggestionsEndTime should be later than proposal start time\""}],"id":2972,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5656:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5656:105:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2980,"nodeType":"ExpressionStatement","src":"5656:105:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2981,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"5775:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":2983,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":2982,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5784:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5775:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5789:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5775:15:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2996,"nodeType":"IfStatement","src":"5771:113:9","trueBody":{"id":2995,"nodeType":"Block","src":"5792:92:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":2991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2987,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2884,"src":"5814:14:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5838: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":2988,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20914,"src":"5832:5:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$20914_$","typeString":"type(contract ERC20)"}},"id":2990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5832:8:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"src":"5814:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"657874656e616c20746f6b656e2063616e6e6f74206265207a65726f","id":2992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5842:30:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_060405811f4a0be5a277024b5c0d977e1da5cc3d39fa6608d1ae9cb79c28c4f1","typeString":"literal_string \"extenal token cannot be zero\""},"value":"extenal token cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_060405811f4a0be5a277024b5c0d977e1da5cc3d39fa6608d1ae9cb79c28c4f1","typeString":"literal_string \"extenal token cannot be zero\""}],"id":2986,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5806:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":2993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5806:67:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2994,"nodeType":"ExpressionStatement","src":"5806:67:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":3000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2998,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2878,"src":"5901:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5922:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5901:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e656761746976652072657075746174696f6e206368616e6765206973206e6f7420616c6c6f77656420666f72206120636f6d7065746974696f6e","id":3001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5925:61:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_317ee00b6d35662467f27436c13cc4d83954c2f6947c0252ba7206999e1d6271","typeString":"literal_string \"negative reputation change is not allowed for a competition\""},"value":"negative reputation change is not allowed for a competition"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_317ee00b6d35662467f27436c13cc4d83954c2f6947c0252ba7206999e1d6271","typeString":"literal_string \"negative reputation change is not allowed for a competition\""}],"id":2997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5893:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5893:94:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3003,"nodeType":"ExpressionStatement","src":"5893:94:9"},{"assignments":[3005],"declarations":[{"constant":false,"id":3005,"name":"totalRewardSplit","nodeType":"VariableDeclaration","scope":3192,"src":"5997:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3004,"name":"uint256","nodeType":"ElementaryTypeName","src":"5997:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3006,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5997:24:9"},{"body":{"id":3026,"nodeType":"Block","src":"6077:81:9","statements":[{"expression":{"argumentTypes":null,"id":3024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3017,"name":"totalRewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"6091:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3020,"name":"_rewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2887,"src":"6131:12:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":3022,"indexExpression":{"argumentTypes":null,"id":3021,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"6144:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6131:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3018,"name":"totalRewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"6110:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6110:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6110:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6091:56:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3025,"nodeType":"ExpressionStatement","src":"6091:56:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3011,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"6051:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3012,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"6055:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6051:19:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3027,"initializationExpression":{"assignments":[3008],"declarations":[{"constant":false,"id":3008,"name":"i","nodeType":"VariableDeclaration","scope":3027,"src":"6036:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3007,"name":"uint256","nodeType":"ElementaryTypeName","src":"6036:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3010,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6048:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6036:13:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6072:3:9","subExpression":{"argumentTypes":null,"id":3014,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"6072:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3016,"nodeType":"ExpressionStatement","src":"6072:3:9"},"nodeType":"ForStatement","src":"6031:127:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3029,"name":"totalRewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3005,"src":"6175:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":3030,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6195:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"6175:23:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f74616c20726577617264732073706c6974206973206e6f742031303025","id":3032,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6200:33:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_498d052b2a82a9161dc9d66a8037c6202bf8912c30b52a818229531581926ff8","typeString":"literal_string \"total rewards split is not 100%\""},"value":"total rewards split is not 100%"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_498d052b2a82a9161dc9d66a8037c6202bf8912c30b52a818229531581926ff8","typeString":"literal_string \"total rewards split is not 100%\""}],"id":3028,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6167:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6167:67:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3034,"nodeType":"ExpressionStatement","src":"6167:67:9"},{"expression":{"argumentTypes":null,"id":3048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3035,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6244:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3040,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2876,"src":"6345:16:9","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":3041,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2878,"src":"6363:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":3042,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"6382:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},{"argumentTypes":null,"id":3043,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2884,"src":"6392:14:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":3044,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"6408:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3045,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6431:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6431:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3037,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"6279:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3036,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"6257:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6257:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"proposeContributionReward","nodeType":"MemberAccess","referencedDeclaration":5523,"src":"6257:70:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_int256_$_t_array$_t_uint256_$3_memory_ptr_$_t_contract$_IERC20_$21017_$_t_address_payable_$_t_address_$returns$_t_bytes32_$","typeString":"function (string memory,int256,uint256[3] memory,contract IERC20,address payable,address) external returns (bytes32)"}},"id":3047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6257:185:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"6244:198:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3049,"nodeType":"ExpressionStatement","src":"6244:198:9"},{"expression":{"argumentTypes":null,"id":3055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3050,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6452:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3052,"indexExpression":{"argumentTypes":null,"id":3051,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6462:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6452:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"6452:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3054,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"6492:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6452:55:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3056,"nodeType":"ExpressionStatement","src":"6452:55:9"},{"expression":{"argumentTypes":null,"id":3062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3057,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6517:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3059,"indexExpression":{"argumentTypes":null,"id":3058,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6527:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6517:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"6517:33:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3061,"name":"_rewardSplit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2887,"src":"6553:12:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"src":"6517:48:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3063,"nodeType":"ExpressionStatement","src":"6517:48:9"},{"expression":{"argumentTypes":null,"id":3069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3064,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6575:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3066,"indexExpression":{"argumentTypes":null,"id":3065,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6585:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6575:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":2789,"src":"6575:31:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3068,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"6609:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6575:43:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3070,"nodeType":"ExpressionStatement","src":"6575:43:9"},{"expression":{"argumentTypes":null,"id":3078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3071,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6628:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3073,"indexExpression":{"argumentTypes":null,"id":3072,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6638:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6628:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"votingStartTime","nodeType":"MemberAccess","referencedDeclaration":2791,"src":"6628:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3075,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6668:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3077,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":3076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6687:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6668:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6628:61:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3079,"nodeType":"ExpressionStatement","src":"6628:61:9"},{"expression":{"argumentTypes":null,"id":3087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3080,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6699:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3082,"indexExpression":{"argumentTypes":null,"id":3081,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6709:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6699:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3083,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"6699:29:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3084,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6731:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3086,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":3085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6750:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6731:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6699:53:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3088,"nodeType":"ExpressionStatement","src":"6699:53:9"},{"expression":{"argumentTypes":null,"id":3096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3089,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6762:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3091,"indexExpression":{"argumentTypes":null,"id":3090,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6772:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6762:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"6762:46:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3093,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6811:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3095,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":3094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6830:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6811:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6762:70:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3097,"nodeType":"ExpressionStatement","src":"6762:70:9"},{"expression":{"argumentTypes":null,"id":3105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3098,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6842:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3100,"indexExpression":{"argumentTypes":null,"id":3099,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6852:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6842:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"suggestionsEndTime","nodeType":"MemberAccess","referencedDeclaration":2793,"src":"6842:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3102,"name":"_competitionParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2891,"src":"6885:18:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5] calldata"}},"id":3104,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":3103,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6904:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6885:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6842:64:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3106,"nodeType":"ExpressionStatement","src":"6842:64:9"},{"expression":{"argumentTypes":null,"id":3114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3107,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6916:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3109,"indexExpression":{"argumentTypes":null,"id":3108,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"6926:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6916:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3110,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationReward","nodeType":"MemberAccess","referencedDeclaration":2803,"src":"6916:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3112,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2878,"src":"6965:17:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":3111,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6957:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":3113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6957:26:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6916:67:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3115,"nodeType":"ExpressionStatement","src":"6916:67:9"},{"expression":{"argumentTypes":null,"id":3123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3116,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"6993:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3118,"indexExpression":{"argumentTypes":null,"id":3117,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7003:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6993:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":2807,"src":"6993:39:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3120,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"7035:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":3122,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":3121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7044:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7035:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6993:53:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3124,"nodeType":"ExpressionStatement","src":"6993:53:9"},{"expression":{"argumentTypes":null,"id":3132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3125,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7056:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3127,"indexExpression":{"argumentTypes":null,"id":3126,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7066:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7056:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3128,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":2805,"src":"7056:31:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3129,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"7090:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":3131,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":3130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7099:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7090:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7056:45:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3133,"nodeType":"ExpressionStatement","src":"7056:45:9"},{"expression":{"argumentTypes":null,"id":3141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3134,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7111:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3136,"indexExpression":{"argumentTypes":null,"id":3135,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7121:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7111:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":2809,"src":"7111:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3138,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2882,"src":"7155:8:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3] calldata"}},"id":3140,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":3139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7164:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7155:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:55:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3142,"nodeType":"ExpressionStatement","src":"7111:55:9"},{"expression":{"argumentTypes":null,"id":3148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3143,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7176:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3145,"indexExpression":{"argumentTypes":null,"id":3144,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7186:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7176:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"7176:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":3147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7214:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7176:39:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3149,"nodeType":"ExpressionStatement","src":"7176:39:9"},{"condition":{"argumentTypes":null,"id":3150,"name":"_proposerIsAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2893,"src":"7229:16:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3160,"nodeType":"IfStatement","src":"7225:87:9","trueBody":{"id":3159,"nodeType":"Block","src":"7247:65:9","statements":[{"expression":{"argumentTypes":null,"id":3157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3151,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7261:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3153,"indexExpression":{"argumentTypes":null,"id":3152,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7271:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7261:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"7261:27:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7291:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7291:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7261:40:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":3158,"nodeType":"ExpressionStatement","src":"7261:40:9"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3162,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7362:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3163,"name":"numberOfWinners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2899,"src":"7386:15:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3164,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7415:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3166,"indexExpression":{"argumentTypes":null,"id":3165,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7425:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7415:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"7415:33:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},{"argumentTypes":null,"id":3168,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2904,"src":"7462:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3169,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7485:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3171,"indexExpression":{"argumentTypes":null,"id":3170,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7495:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7485:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingStartTime","nodeType":"MemberAccess","referencedDeclaration":2791,"src":"7485:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3173,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7536:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3175,"indexExpression":{"argumentTypes":null,"id":3174,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7546:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7536:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3176,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsEndTime","nodeType":"MemberAccess","referencedDeclaration":2793,"src":"7536:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3177,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7590:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3179,"indexExpression":{"argumentTypes":null,"id":3178,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7600:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7590:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"7590:29:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3181,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7633:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3183,"indexExpression":{"argumentTypes":null,"id":3182,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7643:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7633:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"7633:46:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3185,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"7693:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3186,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"7728:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3188,"indexExpression":{"argumentTypes":null,"id":3187,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2896,"src":"7738:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7728:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"7728:27:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"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"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3161,"name":"NewCompetitionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2748,"src":"7326:22:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,uint256[] memory,uint256,uint256,uint256,uint256,uint256,address payable,address)"}},"id":3190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7326:439:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3191,"nodeType":"EmitStatement","src":"7321:444:9"}]},"documentation":"@dev Submit a competion proposal\n@param _descriptionHash A hash of the proposal's description\n@param _reputationChange - Amount of reputation change requested.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested per period\n rewards[1] - Amount of ETH requested per period\n rewards[2] - Amount of external tokens requested per period\n@param _externalToken Address of external token, if reward is requested there\n@param _rewardSplit an array of precentages which specify how to split the rewards\n between the winning suggestions\n@param _competitionParams competition parameters :\n _competitionParams[0] - competition startTime\n _competitionParams[1] - _votingStartTime competition voting start time\n _competitionParams[2] - _endTime competition end time\n _competitionParams[3] - _maxNumberOfVotesPerVoter on how many suggestions a voter can vote\n _competitionParams[4] - _suggestionsEndTime suggestion submission end time\n _proposerIsAdmin -\n true - proposer is an admin.\n false no admin.\n if admin is set, so only admin can suggest on this proposal.\n@return proposalId the proposal id.","id":3193,"implemented":true,"kind":"function","modifiers":[],"name":"proposeCompetition","nodeType":"FunctionDefinition","parameters":{"id":2894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2876,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":3193,"src":"4352:32:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":2875,"name":"string","nodeType":"ElementaryTypeName","src":"4352:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":2878,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":3193,"src":"4398:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":2877,"name":"int256","nodeType":"ElementaryTypeName","src":"4398:6:9","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":2882,"name":"_rewards","nodeType":"VariableDeclaration","scope":3193,"src":"4436:25:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_calldata_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":2879,"name":"uint","nodeType":"ElementaryTypeName","src":"4436:4:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2881,"length":{"argumentTypes":null,"hexValue":"33","id":2880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4441:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"4436:7:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2884,"name":"_externalToken","nodeType":"VariableDeclaration","scope":3193,"src":"4475:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":2883,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"4475:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":2887,"name":"_rewardSplit","nodeType":"VariableDeclaration","scope":3193,"src":"4510:31:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2885,"name":"uint256","nodeType":"ElementaryTypeName","src":"4510:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2886,"length":null,"nodeType":"ArrayTypeName","src":"4510:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2891,"name":"_competitionParams","nodeType":"VariableDeclaration","scope":3193,"src":"4555:38:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_calldata_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":2888,"name":"uint256","nodeType":"ElementaryTypeName","src":"4555:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2890,"length":{"argumentTypes":null,"hexValue":"35","id":2889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4563:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"4555:10:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"},{"constant":false,"id":2893,"name":"_proposerIsAdmin","nodeType":"VariableDeclaration","scope":3193,"src":"4607:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2892,"name":"bool","nodeType":"ElementaryTypeName","src":"4607:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4338:296:9"},"returnParameters":{"id":2897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2896,"name":"proposalId","nodeType":"VariableDeclaration","scope":3193,"src":"4712:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4712:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4711:20:9"},"scope":4131,"src":"4311:3461:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3295,"nodeType":"Block","src":"8264:968:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3204,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8278:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3206,"indexExpression":{"argumentTypes":null,"id":3205,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8288:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8278:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3207,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"8278:28:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8318: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":3208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8310:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8310:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8278:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3224,"nodeType":"IfStatement","src":"8274:150:9","trueBody":{"id":3223,"nodeType":"Block","src":"8322:102:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":3219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3213,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8344:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3215,"indexExpression":{"argumentTypes":null,"id":3214,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8354:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8344:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"admin","nodeType":"MemberAccess","referencedDeclaration":2814,"src":"8344:28:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3217,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8376:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8376:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8344:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6f6e6c792061646d696e2063616e2073756767657374","id":3220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8388:24:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0ce033aeb209789fabb74c603e427a5123fc36439427d72c81e575b6b3c137ad","typeString":"literal_string \"only admin can suggest\""},"value":"only admin can suggest"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ce033aeb209789fabb74c603e427a5123fc36439427d72c81e575b6b3c137ad","typeString":"literal_string \"only admin can suggest\""}],"id":3212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8336:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8336:77:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3222,"nodeType":"ExpressionStatement","src":"8336:77:9"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3226,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8495:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3228,"indexExpression":{"argumentTypes":null,"id":3227,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8505:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8495:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":2789,"src":"8495:32:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":3230,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8531:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8495:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e206e6f74207374617274656420796574","id":3232,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8536:29:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_abfe8784f774b4aee675990286145fedbc1e2465a1ec3060d5a1f5f9fa516a65","typeString":"literal_string \"competition not started yet\""},"value":"competition not started yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_abfe8784f774b4aee675990286145fedbc1e2465a1ec3060d5a1f5f9fa516a65","typeString":"literal_string \"competition not started yet\""}],"id":3225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8487:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8487:79:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3234,"nodeType":"ExpressionStatement","src":"8487:79:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3236,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"8638:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3238,"indexExpression":{"argumentTypes":null,"id":3237,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8648:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8638:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsEndTime","nodeType":"MemberAccess","referencedDeclaration":2793,"src":"8638:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":3240,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8682:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8638:47:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e73207375626d697373696f6e2074696d65206973206f766572","id":3242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8687:37:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fdb339df8e9357f8d1191d75a4f9fbeadfdade6dc51f1c003a3d794cd1255e16","typeString":"literal_string \"suggestions submission time is over\""},"value":"suggestions submission time is over"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fdb339df8e9357f8d1191d75a4f9fbeadfdade6dc51f1c003a3d794cd1255e16","typeString":"literal_string \"suggestions submission time is over\""}],"id":3235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8630:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8630:95:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3244,"nodeType":"ExpressionStatement","src":"8630:95:9"},{"expression":{"argumentTypes":null,"id":3250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3245,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"8735:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8779:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":3246,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"8756:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8756:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8756:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8735:46:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3251,"nodeType":"ExpressionStatement","src":"8735:46:9"},{"expression":{"argumentTypes":null,"id":3257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3252,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"8791:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3254,"indexExpression":{"argumentTypes":null,"id":3253,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"8803:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8791:31:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"8791:42:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3256,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"8836:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8791:56:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":3258,"nodeType":"ExpressionStatement","src":"8791:56:9"},{"assignments":[3260],"declarations":[{"constant":false,"id":3260,"name":"beneficiary","nodeType":"VariableDeclaration","scope":3295,"src":"8857:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3259,"name":"address","nodeType":"ElementaryTypeName","src":"8857:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":3261,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"8857:27:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3262,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"8898:12:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3264,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8922: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":3263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8914:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8914:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8898:26:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":3277,"nodeType":"Block","src":"8981:51:9","statements":[{"expression":{"argumentTypes":null,"id":3275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3273,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"8995:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3274,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3199,"src":"9009:12:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8995:26:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3276,"nodeType":"ExpressionStatement","src":"8995:26:9"}]},"id":3278,"nodeType":"IfStatement","src":"8894:138:9","trueBody":{"id":3272,"nodeType":"Block","src":"8926:49:9","statements":[{"expression":{"argumentTypes":null,"id":3270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3267,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"8940:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8954:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8954:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8940:24:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3271,"nodeType":"ExpressionStatement","src":"8940:24:9"}]}},{"expression":{"argumentTypes":null,"id":3284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3279,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9041:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3281,"indexExpression":{"argumentTypes":null,"id":3280,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"9053:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9041:31:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3282,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"9041:43:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3283,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"9087:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"9041:57:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3285,"nodeType":"ExpressionStatement","src":"9041:57:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3287,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3195,"src":"9127:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3288,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"9140:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3289,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3197,"src":"9160:16:9","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":3290,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"9178:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3286,"name":"NewSuggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2766,"src":"9113:13:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$_t_address_payable_$returns$__$","typeString":"function (bytes32,uint256,string memory,address payable)"}},"id":3291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9113:77:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3292,"nodeType":"EmitStatement","src":"9108:82:9"},{"expression":{"argumentTypes":null,"id":3293,"name":"suggestionsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2844,"src":"9207:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3203,"id":3294,"nodeType":"Return","src":"9200:25:9"}]},"documentation":"@dev submit a competion suggestion\n@param _proposalId the proposal id this suggestion is referring to.\n@param _descriptionHash a descriptionHash of the suggestion.\n@param _beneficiary the beneficiary of this suggestion.\n@return suggestionId the suggestionId.","id":3296,"implemented":true,"kind":"function","modifiers":[],"name":"suggest","nodeType":"FunctionDefinition","parameters":{"id":3200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3195,"name":"_proposalId","nodeType":"VariableDeclaration","scope":3296,"src":"8112:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8112:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":3197,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":3296,"src":"8145:32:9","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":3196,"name":"string","nodeType":"ElementaryTypeName","src":"8145:6:9","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":3199,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":3296,"src":"8191:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3198,"name":"address","nodeType":"ElementaryTypeName","src":"8191:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"8098:127:9"},"returnParameters":{"id":3203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3202,"name":"","nodeType":"VariableDeclaration","scope":3296,"src":"8251:7:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3201,"name":"uint256","nodeType":"ElementaryTypeName","src":"8251:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8250:9:9"},"scope":4131,"src":"8082:1150:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3483,"nodeType":"Block","src":"9416:1596:9","statements":[{"assignments":[3304],"declarations":[{"constant":false,"id":3304,"name":"proposalId","nodeType":"VariableDeclaration","scope":3483,"src":"9426:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3303,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9426:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3309,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3305,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"9447:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3307,"indexExpression":{"argumentTypes":null,"id":3306,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"9459:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9447:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"9447:37:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9426:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3311,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9502:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9524: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":3312,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9516:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9516:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9502:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e20646f6573206e6f74206578697374","id":3316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9528:27:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""},"value":"suggestion does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""}],"id":3310,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9494:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9494:62:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3318,"nodeType":"ExpressionStatement","src":"9494:62:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3320,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9583:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":3319,"name":"setSnapshotBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3532,"src":"9566:16:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":3321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9566:28:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3322,"nodeType":"ExpressionStatement","src":"9566:28:9"},{"assignments":[3324],"declarations":[{"constant":false,"id":3324,"name":"avatar","nodeType":"VariableDeclaration","scope":3483,"src":"9604:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":3323,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"9604:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":3330,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3326,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"9642:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3325,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"9620:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9620:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"9620:51:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":3329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9620:53:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"9604:69:9"},{"assignments":[3332],"declarations":[{"constant":false,"id":3332,"name":"reputation","nodeType":"VariableDeclaration","scope":3483,"src":"9683:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3331,"name":"uint256","nodeType":"ElementaryTypeName","src":"9683:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3344,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9742:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9742:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3339,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9754:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3341,"indexExpression":{"argumentTypes":null,"id":3340,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9764:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9754:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"9754:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":3333,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3324,"src":"9704:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":3334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"9704:23:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":3335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9704:25:9","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":3336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"9704:37:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":3343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9704:86:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9683:107:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3346,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"9808:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9821:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9808:14:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74657220686164206e6f2072657075746174696f6e207768656e20736e617073686f74207761732074616b656e","id":3349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9824:49:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0f4f9cd6c54bc7b98171621faa27875d1adcdde15df503e8997fa7a31d7619df","typeString":"literal_string \"voter had no reputation when snapshot was taken\""},"value":"voter had no reputation when snapshot was taken"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0f4f9cd6c54bc7b98171621faa27875d1adcdde15df503e8997fa7a31d7619df","typeString":"literal_string \"voter had no reputation when snapshot was taken\""}],"id":3345,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9800:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9800:74:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3351,"nodeType":"ExpressionStatement","src":"9800:74:9"},{"assignments":[3353],"declarations":[{"constant":false,"id":3353,"name":"proposal","nodeType":"VariableDeclaration","scope":3483,"src":"9884:25:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"},"typeName":{"contractScope":null,"id":3352,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":2823,"src":"9884:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"}},"value":null,"visibility":"internal"}],"id":3357,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3354,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"9912:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3356,"indexExpression":{"argumentTypes":null,"id":3355,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"9922:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9912:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9884:49:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3359,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10005:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"10005:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":3361,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"10024:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10005:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e20656e646564","id":3363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10029:19:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f87530bd7c7541277f1082b98df509e0e19735f64e79bf9b6cb4b67f8820a99c","typeString":"literal_string \"competition ended\""},"value":"competition ended"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f87530bd7c7541277f1082b98df509e0e19735f64e79bf9b6cb4b67f8820a99c","typeString":"literal_string \"competition ended\""}],"id":3358,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9997:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9997:52:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3365,"nodeType":"ExpressionStatement","src":"9997:52:9"},{"assignments":[3367],"declarations":[{"constant":false,"id":3367,"name":"suggestion","nodeType":"VariableDeclaration","scope":3483,"src":"10059:29:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion"},"typeName":{"contractScope":null,"id":3366,"name":"Suggestion","nodeType":"UserDefinedTypeName","referencedDeclaration":2834,"src":"10059:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion"}},"value":null,"visibility":"internal"}],"id":3371,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3368,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"10091:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3370,"indexExpression":{"argumentTypes":null,"id":3369,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"10103:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10091:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10059:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3373,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10135:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":2833,"src":"10135:16:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3377,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3375,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10152:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10152:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10135:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10167:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10135:33:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"616c726561647920766f746564206f6e20746869732073756767657374696f6e","id":3380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10170:34:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_31b3d9c5ada54bea83344950a8013bb292ab17a2c892ed46c29565fb08f40018","typeString":"literal_string \"already voted on this suggestion\""},"value":"already voted on this suggestion"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_31b3d9c5ada54bea83344950a8013bb292ab17a2c892ed46c29565fb08f40018","typeString":"literal_string \"already voted on this suggestion\""}],"id":3372,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10127:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10127:78:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3382,"nodeType":"ExpressionStatement","src":"10127:78:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3384,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10223:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2822,"src":"10223:22:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3388,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3386,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10246:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10246:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10223:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3389,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10260:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3390,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"10260:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10223:70:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"657863656564206e756d626572206f6620766f74657320616c6c6f776564","id":3392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10303:32:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_db6e03ac06733b4c3a16d510da9e6a3e0f881f893f393c22c659be08e9422c4d","typeString":"literal_string \"exceed number of votes allowed\""},"value":"exceed number of votes allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_db6e03ac06733b4c3a16d510da9e6a3e0f881f893f393c22c659be08e9422c4d","typeString":"literal_string \"exceed number of votes allowed\""}],"id":3383,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10215:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10215:121:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3394,"nodeType":"ExpressionStatement","src":"10215:121:9"},{"expression":{"argumentTypes":null,"id":3409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3395,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10346:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2822,"src":"10346:22:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3400,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3397,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10369:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10369:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10346:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10422:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10383:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2822,"src":"10383:22:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3405,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3403,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10406:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10406:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10383:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10383:38:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10383:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10346:78:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3410,"nodeType":"ExpressionStatement","src":"10346:78:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3411,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10438:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10438:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10462:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10438:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3432,"nodeType":"IfStatement","src":"10434:178:9","trueBody":{"id":3431,"nodeType":"Block","src":"10465:147:9","statements":[{"expression":{"argumentTypes":null,"id":3429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3415,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10479:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10479:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3420,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3417,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10507:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10507:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10479:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10599:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3421,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10544:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10544:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3425,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3423,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10572:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10572:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10544:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10544:54:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10544:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10479:122:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3430,"nodeType":"ExpressionStatement","src":"10479:122:9"}]}},{"expression":{"argumentTypes":null,"id":3441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3433,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10621:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10621:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3439,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10671:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3436,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10645:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10645:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10645:25:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10645:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10621:61:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3442,"nodeType":"ExpressionStatement","src":"10621:61:9"},{"expression":{"argumentTypes":null,"id":3457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3443,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10692:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3447,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10692:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3448,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3445,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10720:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3446,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10720:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10692:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":3455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10800:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3449,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3353,"src":"10745:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"10745:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3453,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3451,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10773:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3452,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"10773:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10745:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10745:54:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10745:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10692:110:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3458,"nodeType":"ExpressionStatement","src":"10692:110:9"},{"expression":{"argumentTypes":null,"id":3466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3459,"name":"suggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3367,"src":"10812:10:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage_ptr","typeString":"struct Competition.Suggestion storage pointer"}},"id":3463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":2833,"src":"10812:16:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":3464,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3461,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10829:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10829:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10812:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3465,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10843:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10812:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3467,"nodeType":"ExpressionStatement","src":"10812:41:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3469,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"10885:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3470,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"10897:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3468,"name":"refreshTopSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4130,"src":"10863:21:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":3471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10863:48:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3472,"nodeType":"ExpressionStatement","src":"10863:48:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3474,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3304,"src":"10934:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3475,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3298,"src":"10946:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10961:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":3477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10961:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3478,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"10973:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3473,"name":"NewVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2776,"src":"10926:7:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,address,uint256)"}},"id":3479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10926:58:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3480,"nodeType":"EmitStatement","src":"10921:63:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":3481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11001:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":3302,"id":3482,"nodeType":"Return","src":"10994:11:9"}]},"documentation":"@dev vote on a suggestion\n@param _suggestionId suggestionId\n@return bool","id":3484,"implemented":true,"kind":"function","modifiers":[],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":3299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3298,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":3484,"src":"9358:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3297,"name":"uint256","nodeType":"ElementaryTypeName","src":"9358:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9357:23:9"},"returnParameters":{"id":3302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3301,"name":"","nodeType":"VariableDeclaration","scope":3484,"src":"9406:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3300,"name":"bool","nodeType":"ElementaryTypeName","src":"9406:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9405:6:9"},"scope":4131,"src":"9344:1668:9","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":3531,"nodeType":"Block","src":"11306:445:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3490,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11378:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3492,"indexExpression":{"argumentTypes":null,"id":3491,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11388:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11378:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votingStartTime","nodeType":"MemberAccess","referencedDeclaration":2791,"src":"11378:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3494,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"11419:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11378:44:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e6720706572696f64206e6f74207374617274656420796574","id":3496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11424:31:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fe4db9f73616103208f9a0c43166b30a59718acda8a9c9c7dd519d7f68782c8e","typeString":"literal_string \"voting period not started yet\""},"value":"voting period not started yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe4db9f73616103208f9a0c43166b30a59718acda8a9c9c7dd519d7f68782c8e","typeString":"literal_string \"voting period not started yet\""}],"id":3489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11370:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11370:86:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3498,"nodeType":"ExpressionStatement","src":"11370:86:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3500,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11474:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3502,"indexExpression":{"argumentTypes":null,"id":3501,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11484:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11474:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"11474:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11524:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11474:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20646f6573206e6f74206578697374","id":3506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11527:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""},"value":"proposal does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""}],"id":3499,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11466:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11466:87:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3508,"nodeType":"ExpressionStatement","src":"11466:87:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3509,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11567:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3511,"indexExpression":{"argumentTypes":null,"id":3510,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11577:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11567:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"11567:36:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11607:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11567:41:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3530,"nodeType":"IfStatement","src":"11563:182:9","trueBody":{"id":3529,"nodeType":"Block","src":"11610:135:9","statements":[{"expression":{"argumentTypes":null,"id":3521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3515,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"11624:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3517,"indexExpression":{"argumentTypes":null,"id":3516,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11634:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11624:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"snapshotBlock","nodeType":"MemberAccess","referencedDeclaration":2801,"src":"11624:36:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3519,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"11663:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11663:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11624:51:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3522,"nodeType":"ExpressionStatement","src":"11624:51:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3524,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3486,"src":"11708:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3525,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"11721:5:9","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11721:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3523,"name":"SnapshotBlock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2782,"src":"11694:13:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":3527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11694:40:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3528,"nodeType":"EmitStatement","src":"11689:45:9"}]}}]},"documentation":"@dev setSnapshotBlock set the block for the reputaion snapshot\nthis function is public in order to externaly set snapshot block regardless of the first voting event.\n@param _proposalId the proposal id","id":3532,"implemented":true,"kind":"function","modifiers":[],"name":"setSnapshotBlock","nodeType":"FunctionDefinition","parameters":{"id":3487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3486,"name":"_proposalId","nodeType":"VariableDeclaration","scope":3532,"src":"11278:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11278:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11277:21:9"},"returnParameters":{"id":3488,"nodeType":"ParameterList","parameters":[],"src":"11306:0:9"},"scope":4131,"src":"11252:499:9","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":3656,"nodeType":"Block","src":"11933:1310:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3538,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12005:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3540,"indexExpression":{"argumentTypes":null,"id":3539,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12015:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12005:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"12005:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3542,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"12038:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12005:36:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e206973207374696c6c206f6e","id":3544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12043:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""},"value":"competition is still on"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""}],"id":3537,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11997:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11997:72:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3546,"nodeType":"ExpressionStatement","src":"11997:72:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3548,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12087:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3550,"indexExpression":{"argumentTypes":null,"id":3549,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12097:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12087:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"12087:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12137:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12087:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20646f6573206e6f74206578697374","id":3554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12140:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""},"value":"proposal does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""}],"id":3547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12079:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12079:87:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3556,"nodeType":"ExpressionStatement","src":"12079:87:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3558,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12184:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12207: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":3559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12199:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3561,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12199:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"12184:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c4964206973207a65726f","id":3563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12211:20:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""},"value":"proposalId is zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""}],"id":3557,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12176:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12176:56:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3565,"nodeType":"ExpressionStatement","src":"12176:56:9"},{"assignments":[3569],"declarations":[{"constant":false,"id":3569,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":3656,"src":"12242:31:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3567,"name":"uint256","nodeType":"ElementaryTypeName","src":"12242:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3568,"length":null,"nodeType":"ArrayTypeName","src":"12242:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":3574,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3570,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"12276:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3572,"indexExpression":{"argumentTypes":null,"id":3571,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12286:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12276:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"12276:37:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12242:71:9"},{"body":{"id":3600,"nodeType":"Block","src":"12375:130:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3587,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"12397:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3591,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3588,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"12409:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3590,"indexExpression":{"argumentTypes":null,"id":3589,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"12424:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12409:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12397:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"12397:42:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12451: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":3593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12443:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12443:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"12397:56:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f7420616c6c2077696e6e696e672073756767657374696f6e732072656465656d6564","id":3597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12455:38:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_56dd05396943dd2b41fd186ed9e3918694635b357b5b61a2888daceb75f0688b","typeString":"literal_string \"not all winning suggestions redeemed\""},"value":"not all winning suggestions redeemed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_56dd05396943dd2b41fd186ed9e3918694635b357b5b61a2888daceb75f0688b","typeString":"literal_string \"not all winning suggestions redeemed\""}],"id":3586,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12389:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12389:105:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3599,"nodeType":"ExpressionStatement","src":"12389:105:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3579,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"12343:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3580,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3569,"src":"12347:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12347:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12343:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3601,"initializationExpression":{"assignments":[3576],"declarations":[{"constant":false,"id":3576,"name":"i","nodeType":"VariableDeclaration","scope":3601,"src":"12328:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3575,"name":"uint256","nodeType":"ElementaryTypeName","src":"12328:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3578,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12340:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12328:13:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12370:3:9","subExpression":{"argumentTypes":null,"id":3583,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3576,"src":"12370:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3585,"nodeType":"ExpressionStatement","src":"12370:3:9"},"nodeType":"ForStatement","src":"12323:182:9"},{"assignments":[null,null,null,null,null,null,3603,null,3605,3607,null],"declarations":[null,null,null,null,null,null,{"constant":false,"id":3603,"name":"nativeTokenRewardLeft","nodeType":"VariableDeclaration","scope":3656,"src":"12536:29:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3602,"name":"uint256","nodeType":"ElementaryTypeName","src":"12536:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},null,{"constant":false,"id":3605,"name":"ethRewardLeft","nodeType":"VariableDeclaration","scope":3656,"src":"12577:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3604,"name":"uint256","nodeType":"ElementaryTypeName","src":"12577:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":3607,"name":"externalTokenRewardLeft","nodeType":"VariableDeclaration","scope":3656,"src":"12608:31:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3606,"name":"uint256","nodeType":"ElementaryTypeName","src":"12608:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},null],"id":3614,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3612,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12719:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3609,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12674:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3608,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12652:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12652:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"organizationProposals","nodeType":"MemberAccess","referencedDeclaration":5265,"src":"12652:66:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$_t_int256_$_t_uint256_$_t_contract$_IERC20_$21017_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$","typeString":"function (bytes32) view external returns (uint256,int256,uint256,contract IERC20,uint256,address payable,uint256,uint256,uint256,uint256,bool)"}},"id":3613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12652:79:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_int256_$_t_uint256_$_t_contract$_IERC20_$21017_$_t_uint256_$_t_address_payable_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256,int256,uint256,contract IERC20,uint256,address payable,uint256,uint256,uint256,uint256,bool)"}},"nodeType":"VariableDeclarationStatement","src":"12515:216:9"},{"assignments":[3616],"declarations":[{"constant":false,"id":3616,"name":"avatar","nodeType":"VariableDeclaration","scope":3656,"src":"12742:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":3615,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"12742:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":3622,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3618,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12780:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3617,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12758:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12758:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"12758:51:9","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":3621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12758:53:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"12742:69:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3627,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"12906:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3629,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"12927:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":3628,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12919:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12919:15:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3631,"name":"externalTokenRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3607,"src":"12936:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3624,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12844:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3623,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12822:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12822:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemExternalTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6150,"src":"12822:74:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12822:138:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3633,"nodeType":"ExpressionStatement","src":"12822:138:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3638,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"13047:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3640,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"13068:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":3639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13060:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13060:15:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3642,"name":"ethRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3605,"src":"13077:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3635,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"12993:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3634,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"12971:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12971:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemEtherByRewarder","nodeType":"MemberAccess","referencedDeclaration":6084,"src":"12971:66:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (bytes32,address payable,uint256) external"}},"id":3643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12971:120:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3644,"nodeType":"ExpressionStatement","src":"12971:120:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3649,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3534,"src":"13184:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3651,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3616,"src":"13205:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":3650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13197:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13197:15:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3653,"name":"nativeTokenRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3603,"src":"13214:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3646,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"13124:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3645,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"13102:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13102:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemNativeTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6029,"src":"13102:72:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13102:134:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3655,"nodeType":"ExpressionStatement","src":"13102:134:9"}]},"documentation":"@dev sendLeftOverFund send leftover funds back to the dao.\n@param _proposalId the proposal id","id":3657,"implemented":true,"kind":"function","modifiers":[],"name":"sendLeftOverFunds","nodeType":"FunctionDefinition","parameters":{"id":3535,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3534,"name":"_proposalId","nodeType":"VariableDeclaration","scope":3657,"src":"11905:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11905:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11904:21:9"},"returnParameters":{"id":3536,"nodeType":"ParameterList","parameters":[],"src":"11933:0:9"},"scope":4131,"src":"11878:1365:9","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":3942,"nodeType":"Block","src":"13396:2859:9","statements":[{"assignments":[3663],"declarations":[{"constant":false,"id":3663,"name":"proposalId","nodeType":"VariableDeclaration","scope":3942,"src":"13406:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13406:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3668,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3664,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"13427:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3666,"indexExpression":{"argumentTypes":null,"id":3665,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"13439:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13427:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"13427:37:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"13406:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3670,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13482:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3672,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13504: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":3671,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13496:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13496:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"13482:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c4964206973207a65726f","id":3675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13508:20:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""},"value":"proposalId is zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6d040a6c70818d5305eac1c7a9397fd2ab0e1e0ca3c94b3c3bad02ababe36d52","typeString":"literal_string \"proposalId is zero\""}],"id":3669,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13474:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13474:55:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3677,"nodeType":"ExpressionStatement","src":"13474:55:9"},{"assignments":[3679],"declarations":[{"constant":false,"id":3679,"name":"proposal","nodeType":"VariableDeclaration","scope":3942,"src":"13539:25:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"},"typeName":{"contractScope":null,"id":3678,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":2823,"src":"13539:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal"}},"value":null,"visibility":"internal"}],"id":3683,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3680,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"13567:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3682,"indexExpression":{"argumentTypes":null,"id":3681,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"13577:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13567:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13539:49:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3685,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"13606:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13622:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13606:17:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e4964206973207a65726f","id":3688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13625:22:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d5a66b2bc3987fc7da6b9e870345fd963d658adeafd4cd271ebb95fc984deec5","typeString":"literal_string \"suggestionId is zero\""},"value":"suggestionId is zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5a66b2bc3987fc7da6b9e870345fd963d658adeafd4cd271ebb95fc984deec5","typeString":"literal_string \"suggestionId is zero\""}],"id":3684,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13598:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13598:50:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3690,"nodeType":"ExpressionStatement","src":"13598:50:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3692,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"13720:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3693,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":2795,"src":"13720:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":3694,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"13739:3:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13720:22:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636f6d7065746974696f6e206973207374696c6c206f6e","id":3696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13744:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""},"value":"competition is still on"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ae50ecfa7985be8e5796f7fdd864cce34015ac5316815435aae58c96e15733b2","typeString":"literal_string \"competition is still on\""}],"id":3691,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13712:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13712:58:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3698,"nodeType":"ExpressionStatement","src":"13712:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3700,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"13788:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"maxNumberOfVotesPerVoter","nodeType":"MemberAccess","referencedDeclaration":2797,"src":"13788:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":3702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13824:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13788:37:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20646f6573206e6f74206578697374","id":3704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13827:25:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""},"value":"proposal does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270","typeString":"literal_string \"proposal does not exist\""}],"id":3699,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13780:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13780:73:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3706,"nodeType":"ExpressionStatement","src":"13780:73:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":3715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3708,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"13871:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3710,"indexExpression":{"argumentTypes":null,"id":3709,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"13883:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13871:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"13871:38:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13921: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":3712,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13913:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13913:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"13871:52:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e2077617320616c72656164792072656465656d6564","id":3716,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13933:33:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7c5b854a4119be39f51d7bcf92cc8bc7f1e47eaa06dc20fa9f2e817ddf3f5540","typeString":"literal_string \"suggestion was already redeemed\""},"value":"suggestion was already redeemed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7c5b854a4119be39f51d7bcf92cc8bc7f1e47eaa06dc20fa9f2e817ddf3f5540","typeString":"literal_string \"suggestion was already redeemed\""}],"id":3707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13863:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13863:104:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3718,"nodeType":"ExpressionStatement","src":"13863:104:9"},{"assignments":[3720],"declarations":[{"constant":false,"id":3720,"name":"beneficiary","nodeType":"VariableDeclaration","scope":3942,"src":"13977:27:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":3719,"name":"address","nodeType":"ElementaryTypeName","src":"13977:15:9","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":3725,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3721,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"14007:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3723,"indexExpression":{"argumentTypes":null,"id":3722,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14019:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14007:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"14007:38:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"13977:68:9"},{"assignments":[3727],"declarations":[{"constant":false,"id":3727,"name":"orderIndex","nodeType":"VariableDeclaration","scope":3942,"src":"14055:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3726,"name":"uint256","nodeType":"ElementaryTypeName","src":"14055:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3731,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3729,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14104:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3728,"name":"getOrderedIndexOfSuggestion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4005,"src":"14076:27:9","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":3730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14076:42:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14055:63:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3733,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"14136:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3734,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14149:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"14149:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3736,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14149:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14136:43:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e206973206e6f7420696e2077696e6e657273206c697374","id":3738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14181:35:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0de69b350f2418161c08b4cef3193ac906bb0027a2810131b3a80119f8fe23f6","typeString":"literal_string \"suggestion is not in winners list\""},"value":"suggestion is not in winners list"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0de69b350f2418161c08b4cef3193ac906bb0027a2810131b3a80119f8fe23f6","typeString":"literal_string \"suggestion is not in winners list\""}],"id":3732,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"14128:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14128:89:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3740,"nodeType":"ExpressionStatement","src":"14128:89:9"},{"expression":{"argumentTypes":null,"id":3748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3741,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"14227:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3743,"indexExpression":{"argumentTypes":null,"id":3742,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14239:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14227:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":2829,"src":"14227:38:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14276: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":3745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14268:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":3747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14268:10:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"14227:51:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":3749,"nodeType":"ExpressionStatement","src":"14227:51:9"},{"assignments":[3751],"declarations":[{"constant":false,"id":3751,"name":"rewardPercentage","nodeType":"VariableDeclaration","scope":3942,"src":"14288:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3750,"name":"uint256","nodeType":"ElementaryTypeName","src":"14288:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3753,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3752,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14315:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14288:28:9"},{"assignments":[3755],"declarations":[{"constant":false,"id":3755,"name":"numberOfTieSuggestions","nodeType":"VariableDeclaration","scope":3942,"src":"14326:30:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3754,"name":"uint256","nodeType":"ElementaryTypeName","src":"14326:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3763,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3756,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14359:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"suggestionsPerVote","nodeType":"MemberAccess","referencedDeclaration":2818,"src":"14359:27:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":3762,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3758,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"14387:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3760,"indexExpression":{"argumentTypes":null,"id":3759,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"14399:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14387:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3761,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"14387:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14359:66:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14326:99:9"},{"assignments":[3765],"declarations":[{"constant":false,"id":3765,"name":"j","nodeType":"VariableDeclaration","scope":3942,"src":"14435:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3764,"name":"uint256","nodeType":"ElementaryTypeName","src":"14435:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3766,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14435:9:9"},{"body":{"id":3795,"nodeType":"Block","src":"14610:89:9","statements":[{"expression":{"argumentTypes":null,"id":3793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3785,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14624:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3788,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14664:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3789,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"14664:20:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3791,"indexExpression":{"argumentTypes":null,"id":3790,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14685:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14664:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3786,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14643:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"14643:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14643:45:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14624:64:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3794,"nodeType":"ExpressionStatement","src":"14624:64:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":3781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3771,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14532:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3772,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"14537:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":3773,"name":"numberOfTieSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"14548:22:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14537:33:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3775,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14536:35:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14532:39:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3777,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14575:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3778,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14579:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"14579:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14575:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14532:71:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3796,"initializationExpression":{"expression":{"argumentTypes":null,"id":3769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3767,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14516:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":3768,"name":"orderIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3727,"src":"14520:10:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14516:14:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3770,"nodeType":"ExpressionStatement","src":"14516:14:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14605:3:9","subExpression":{"argumentTypes":null,"id":3782,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"14605:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3784,"nodeType":"ExpressionStatement","src":"14605:3:9"},"nodeType":"ForStatement","src":"14511:188:9"},{"expression":{"argumentTypes":null,"id":3802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3797,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14708:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3800,"name":"numberOfTieSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3755,"src":"14748:22:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3798,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"14727:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"14727:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14727:44:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14708:63:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3803,"nodeType":"ExpressionStatement","src":"14708:63:9"},{"assignments":[3805],"declarations":[{"constant":false,"id":3805,"name":"rewardPercentageLeft","nodeType":"VariableDeclaration","scope":3942,"src":"14781:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3804,"name":"uint256","nodeType":"ElementaryTypeName","src":"14781:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3807,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14812:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14781:32:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3808,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14827:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"14827:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14827:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3811,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"14860:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3812,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"14860:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14827:57:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":3852,"nodeType":"IfStatement","src":"14823:545:9","trueBody":{"id":3851,"nodeType":"Block","src":"14886:482:9","statements":[{"body":{"id":3837,"nodeType":"Block","src":"15130:105:9","statements":[{"expression":{"argumentTypes":null,"id":3835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3827,"name":"rewardPercentageLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"15148:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3830,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15196:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"rewardSplit","nodeType":"MemberAccess","referencedDeclaration":2787,"src":"15196:20:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3833,"indexExpression":{"argumentTypes":null,"id":3832,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15217:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15196:23:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3828,"name":"rewardPercentageLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"15171:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"15171:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15171:49:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15148:72:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3836,"nodeType":"ExpressionStatement","src":"15148:72:9"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3820,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15095:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3821,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15099:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"15099:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15095:28:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3838,"initializationExpression":{"expression":{"argumentTypes":null,"id":3818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3814,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15059:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3815,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15063:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3816,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"15063:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3817,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15063:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15059:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3819,"nodeType":"ExpressionStatement","src":"15059:34:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15125:3:9","subExpression":{"argumentTypes":null,"id":3824,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3765,"src":"15125:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3826,"nodeType":"ExpressionStatement","src":"15125:3:9"},"nodeType":"ForStatement","src":"15054:181:9"},{"expression":{"argumentTypes":null,"id":3849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3839,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15248:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3844,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15325:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3845,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"15325:23:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":3846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15325:30:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3842,"name":"rewardPercentageLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3805,"src":"15300:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15300:24:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15300:56:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":3840,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15279:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"15279:20:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15279:78:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15248:109:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3850,"nodeType":"ExpressionStatement","src":"15248:109:9"}]}},{"assignments":[3854],"declarations":[{"constant":false,"id":3854,"name":"amount","nodeType":"VariableDeclaration","scope":3942,"src":"15377:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3853,"name":"uint256","nodeType":"ElementaryTypeName","src":"15377:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3855,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"15377:14:9"},{"expression":{"argumentTypes":null,"id":3865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3856,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15401:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15465:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3860,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15443:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3857,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15410:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":2809,"src":"15410:28:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15410:32:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15410:50:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15410:54:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15410:59:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:68:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3866,"nodeType":"ExpressionStatement","src":"15401:68:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3871,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15563:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3872,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"15575:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3873,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15588:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3868,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"15501:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3867,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"15479:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15479:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemExternalTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6150,"src":"15479:74:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3874,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15479:116:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3875,"nodeType":"ExpressionStatement","src":"15479:116:9"},{"expression":{"argumentTypes":null,"id":3885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3876,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15606:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15667:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3880,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15645:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3877,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15615:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3878,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationReward","nodeType":"MemberAccess","referencedDeclaration":2803,"src":"15615:25:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15615:29:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15615:47:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15615:51:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15615:56:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15606:65:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3886,"nodeType":"ExpressionStatement","src":"15606:65:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3891,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15762:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3892,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"15774:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3893,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15787:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3888,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"15703:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3887,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"15681:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15681:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemReputationByRewarder","nodeType":"MemberAccess","referencedDeclaration":5970,"src":"15681:71:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15681:113:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3895,"nodeType":"ExpressionStatement","src":"15681:113:9"},{"expression":{"argumentTypes":null,"id":3905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3896,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15805:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3903,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15859:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3900,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"15837:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3897,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"15814:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":2805,"src":"15814:18:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15814:22:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3901,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15814:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"15814:44:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15814:49:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15805:58:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3906,"nodeType":"ExpressionStatement","src":"15805:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3911,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"15949:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3912,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"15961:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3913,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15974:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3908,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"15895:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3907,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"15873:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15873:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemEtherByRewarder","nodeType":"MemberAccess","referencedDeclaration":6084,"src":"15873:66:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_payable_$_t_uint256_$returns$__$","typeString":"function (bytes32,address payable,uint256) external"}},"id":3914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15873:108:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3915,"nodeType":"ExpressionStatement","src":"15873:108:9"},{"expression":{"argumentTypes":null,"id":3925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":3916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"15992:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":3923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16054:3:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3920,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"16032:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3917,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3679,"src":"16001:8:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage_ptr","typeString":"struct Competition.Proposal storage pointer"}},"id":3918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":2807,"src":"16001:26:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16001:30:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16001:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"16001:52:9","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":3924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16001:57:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15992:66:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3926,"nodeType":"ExpressionStatement","src":"15992:66:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3931,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"16150:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3932,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3720,"src":"16162:11:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":3933,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3854,"src":"16175:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3928,"name":"contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2846,"src":"16090:21:9","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":3927,"name":"ContributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6293,"src":"16068:21:9","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ContributionRewardExt_$6293_$","typeString":"type(contract ContributionRewardExt)"}},"id":3929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16068:44:9","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":3930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemNativeTokenByRewarder","nodeType":"MemberAccess","referencedDeclaration":6029,"src":"16068:72:9","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256) external"}},"id":3934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16068:114:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3935,"nodeType":"ExpressionStatement","src":"16068:114:9"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":3937,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3663,"src":"16204:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":3938,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3659,"src":"16216:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":3939,"name":"rewardPercentage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3751,"src":"16231:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3936,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2756,"src":"16197:6:9","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256,uint256)"}},"id":3940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16197:51:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3941,"nodeType":"EmitStatement","src":"16192:56:9"}]},"documentation":"@dev redeem a winning suggestion reward\n@param _suggestionId suggestionId","id":3943,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":3660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3659,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":3943,"src":"13366:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3658,"name":"uint256","nodeType":"ElementaryTypeName","src":"13366:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13365:23:9"},"returnParameters":{"id":3661,"nodeType":"ParameterList","parameters":[],"src":"13396:0:9"},"scope":4131,"src":"13350:2905:9","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4004,"nodeType":"Block","src":"16643:508:9","statements":[{"assignments":[3951],"declarations":[{"constant":false,"id":3951,"name":"proposalId","nodeType":"VariableDeclaration","scope":4004,"src":"16653:18:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":3950,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16653:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":3956,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3952,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"16674:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3954,"indexExpression":{"argumentTypes":null,"id":3953,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"16686:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16674:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3955,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":2827,"src":"16674:37:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"16653:58:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":3962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3958,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"16729:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":3960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16751: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":3959,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16743:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":3961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16743:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"16729:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73756767657374696f6e20646f6573206e6f74206578697374","id":3963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16755:27:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""},"value":"suggestion does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4a1005e5689ffab530ee40e6928bfc25f1a5a2a302d5af5d02d64eb170a6feca","typeString":"literal_string \"suggestion does not exist\""}],"id":3957,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"16721:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":3964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16721:62:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":3965,"nodeType":"ExpressionStatement","src":"16721:62:9"},{"assignments":[3969],"declarations":[{"constant":false,"id":3969,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":4004,"src":"16793:31:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":3967,"name":"uint256","nodeType":"ElementaryTypeName","src":"16793:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3968,"length":null,"nodeType":"ArrayTypeName","src":"16793:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":3974,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3970,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"16827:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":3972,"indexExpression":{"argumentTypes":null,"id":3971,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3951,"src":"16837:10:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16827:21:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":3973,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"16827:36:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16793:70:9"},{"body":{"id":4002,"nodeType":"Block","src":"16994:151:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3986,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"17012:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3990,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3987,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"17024:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3989,"indexExpression":{"argumentTypes":null,"id":3988,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"17039:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17024:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17012:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3991,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"17012:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":3992,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"17056:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":3994,"indexExpression":{"argumentTypes":null,"id":3993,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3945,"src":"17068:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17056:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":3995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"17056:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17012:81:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4001,"nodeType":"IfStatement","src":"17008:127:9","trueBody":{"id":4000,"nodeType":"Block","src":"17095:40:9","statements":[{"expression":{"argumentTypes":null,"id":3998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17113:7:9","subExpression":{"argumentTypes":null,"id":3997,"name":"index","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3948,"src":"17113:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3999,"nodeType":"ExpressionStatement","src":"17113:7:9"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":3979,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"16962:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":3980,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3969,"src":"16966:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":3981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16966:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16962:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4003,"initializationExpression":{"assignments":[3976],"declarations":[{"constant":false,"id":3976,"name":"i","nodeType":"VariableDeclaration","scope":4003,"src":"16947:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3975,"name":"uint256","nodeType":"ElementaryTypeName","src":"16947:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":3978,"initialValue":{"argumentTypes":null,"hexValue":"30","id":3977,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16959:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16947:13:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":3984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16989:3:9","subExpression":{"argumentTypes":null,"id":3983,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3976,"src":"16989:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":3985,"nodeType":"ExpressionStatement","src":"16989:3:9"},"nodeType":"ForStatement","src":"16942:203:9"}]},"documentation":"@dev getOrderedIndexOfSuggestion return the index of specific suggestion in the winners list.\nfor the case when the suggestion is NOT in the winners list,\nthis method will return topSuggestions.length\n@param _suggestionId suggestion id","id":4005,"implemented":true,"kind":"function","modifiers":[],"name":"getOrderedIndexOfSuggestion","nodeType":"FunctionDefinition","parameters":{"id":3946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3945,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":4005,"src":"16573:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3944,"name":"uint256","nodeType":"ElementaryTypeName","src":"16573:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16572:23:9"},"returnParameters":{"id":3949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3948,"name":"index","nodeType":"VariableDeclaration","scope":4005,"src":"16628:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3947,"name":"uint256","nodeType":"ElementaryTypeName","src":"16628:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16627:15:9"},"scope":4131,"src":"16536:615:9","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":4129,"nodeType":"Block","src":"17586:1210:9","statements":[{"assignments":[4015],"declarations":[{"constant":false,"id":4015,"name":"topSuggestions","nodeType":"VariableDeclaration","scope":4129,"src":"17596:32:9","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":4013,"name":"uint256","nodeType":"ElementaryTypeName","src":"17596:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4014,"length":null,"nodeType":"ArrayTypeName","src":"17596:9:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"id":4020,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4016,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"17631:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":4018,"indexExpression":{"argumentTypes":null,"id":4017,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"17641:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17631:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":4019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"topSuggestions","nodeType":"MemberAccess","referencedDeclaration":2812,"src":"17631:37:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"17596:72:9"},{"assignments":[4022],"declarations":[{"constant":false,"id":4022,"name":"topSuggestionsLength","nodeType":"VariableDeclaration","scope":4129,"src":"17678:28:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4021,"name":"uint256","nodeType":"ElementaryTypeName","src":"17678:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4025,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4023,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"17709:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17709:21:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17678:52:9"},{"assignments":[4027],"declarations":[{"constant":false,"id":4027,"name":"i","nodeType":"VariableDeclaration","scope":4129,"src":"17740:9:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4026,"name":"uint256","nodeType":"ElementaryTypeName","src":"17740:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4028,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"17740:9:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4029,"name":"topSuggestionsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4022,"src":"17763:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4030,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"17786:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":4032,"indexExpression":{"argumentTypes":null,"id":4031,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"17796:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17786:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":4033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"17786:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17763:61:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":4127,"nodeType":"Block","src":"18066:724:9","statements":[{"assignments":[4063],"declarations":[{"constant":false,"id":4063,"name":"smallest","nodeType":"VariableDeclaration","scope":4127,"src":"18135:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4062,"name":"uint256","nodeType":"ElementaryTypeName","src":"18135:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4065,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18154:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"18135:20:9"},{"body":{"id":4106,"nodeType":"Block","src":"18230:369:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4079,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18252:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4083,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4080,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18264:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4082,"indexExpression":{"argumentTypes":null,"id":4081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18279:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18264:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18252:30:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18252:41:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4085,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18316:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4089,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4086,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18328:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4088,"indexExpression":{"argumentTypes":null,"id":4087,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18343:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18328:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18316:37:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18316:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18252:112:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4097,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18429:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4099,"indexExpression":{"argumentTypes":null,"id":4098,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18444:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18429:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4100,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18450:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18429:34:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4104,"nodeType":"IfStatement","src":"18425:160:9","trueBody":{"id":4103,"nodeType":"Block","src":"18465:120:9","statements":[{"expression":null,"functionReturnParameters":4011,"id":4102,"nodeType":"Return","src":"18560:7:9"}]}},"id":4105,"nodeType":"IfStatement","src":"18248:337:9","trueBody":{"id":4096,"nodeType":"Block","src":"18366:53:9","statements":[{"expression":{"argumentTypes":null,"id":4094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4092,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18388:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4093,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18399:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18388:12:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4095,"nodeType":"ExpressionStatement","src":"18388:12:9"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4070,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18181:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4071,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2838,"src":"18185:9:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$2823_storage_$","typeString":"mapping(bytes32 => struct Competition.Proposal storage ref)"}},"id":4073,"indexExpression":{"argumentTypes":null,"id":4072,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4007,"src":"18195:11:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18185:22:9","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$2823_storage","typeString":"struct Competition.Proposal storage ref"}},"id":4074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfWinners","nodeType":"MemberAccess","referencedDeclaration":2784,"src":"18185:38:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18181:42:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4107,"initializationExpression":{"expression":{"argumentTypes":null,"id":4068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4066,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18174:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18178:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18174:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4069,"nodeType":"ExpressionStatement","src":"18174:5:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":4077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"18225:3:9","subExpression":{"argumentTypes":null,"id":4076,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"18225:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4078,"nodeType":"ExpressionStatement","src":"18225:3:9"},"nodeType":"ForStatement","src":"18169:430:9"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4108,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18617:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4112,"indexExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4109,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18629:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4111,"indexExpression":{"argumentTypes":null,"id":4110,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18644:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18629:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18617:37:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18617:48:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4114,"name":"suggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2842,"src":"18668:11:9","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Suggestion_$2834_storage_$","typeString":"mapping(uint256 => struct Competition.Suggestion storage ref)"}},"id":4116,"indexExpression":{"argumentTypes":null,"id":4115,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18680:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18668:26:9","typeDescriptions":{"typeIdentifier":"t_struct$_Suggestion_$2834_storage","typeString":"struct Competition.Suggestion storage ref"}},"id":4117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":2825,"src":"18668:37:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18617:88:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4126,"nodeType":"IfStatement","src":"18613:167:9","trueBody":{"id":4125,"nodeType":"Block","src":"18707:73:9","statements":[{"expression":{"argumentTypes":null,"id":4123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4119,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18725:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4121,"indexExpression":{"argumentTypes":null,"id":4120,"name":"smallest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4063,"src":"18740:8:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18725:24:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4122,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18752:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18725:40:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4124,"nodeType":"ExpressionStatement","src":"18725:40:9"}]}}]},"id":4128,"nodeType":"IfStatement","src":"17759:1031:9","trueBody":{"id":4061,"nodeType":"Block","src":"17826:234:9","statements":[{"body":{"id":4053,"nodeType":"Block","src":"17883:119:9","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4045,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"17905:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4047,"indexExpression":{"argumentTypes":null,"id":4046,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17920:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17905:17:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4048,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"17926:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17905:34:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4052,"nodeType":"IfStatement","src":"17901:87:9","trueBody":{"id":4051,"nodeType":"Block","src":"17941:47:9","statements":[{"expression":null,"functionReturnParameters":4011,"id":4050,"nodeType":"Return","src":"17963:7:9"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4039,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17852:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4040,"name":"topSuggestionsLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4022,"src":"17856:20:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17852:24:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4054,"initializationExpression":{"expression":{"argumentTypes":null,"id":4037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4035,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17845:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17849:1:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17845:5:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4038,"nodeType":"ExpressionStatement","src":"17845:5:9"},"loopExpression":{"expression":{"argumentTypes":null,"id":4043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"17878:3:9","subExpression":{"argumentTypes":null,"id":4042,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4027,"src":"17878:1:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4044,"nodeType":"ExpressionStatement","src":"17878:3:9"},"nodeType":"ForStatement","src":"17840:162:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4058,"name":"_suggestionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4009,"src":"18035:13:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4055,"name":"topSuggestions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4015,"src":"18015:14:9","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[] storage pointer"}},"id":4057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18015:19:9","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":4059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18015:34:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4060,"nodeType":"ExpressionStatement","src":"18015:34:9"}]}}]},"documentation":"@dev refreshTopSuggestions this function maintain a winners list array.\nit will check if the given suggestion is among the top suggestions, and if so,\nupdate the list of top suggestions\n@param _proposalId proposal id\n@param _suggestionId suggestion id","id":4130,"implemented":true,"kind":"function","modifiers":[],"name":"refreshTopSuggestions","nodeType":"FunctionDefinition","parameters":{"id":4010,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4007,"name":"_proposalId","nodeType":"VariableDeclaration","scope":4130,"src":"17534:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17534:7:9","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":4009,"name":"_suggestionId","nodeType":"VariableDeclaration","scope":4130,"src":"17555:21:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4008,"name":"uint256","nodeType":"ElementaryTypeName","src":"17555:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17533:44:9"},"returnParameters":{"id":4011,"nodeType":"ParameterList","parameters":[],"src":"17586:0:9"},"scope":4131,"src":"17503:1293:9","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":4132,"src":"65:18734:9"}],"src":"0:18800:9"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.074Z","devdoc":{"methods":{"getOrderedIndexOfSuggestion(uint256)":{"details":"getOrderedIndexOfSuggestion return the index of specific suggestion in the winners list. for the case when the suggestion is NOT in the winners list, this method will return topSuggestions.length","params":{"_suggestionId":"suggestion id"}},"initialize(address)":{"details":"initialize","params":{"_contributionRewardExt":"the contributionRewardExt scheme which manage and allocate the rewards for the competition."}},"proposeCompetition(string,int256,uint256[3],address,uint256[],uint256[5],bool)":{"details":"Submit a competion proposal","params":{"_competitionParams":"competition parameters : _competitionParams[0] - competition startTime _competitionParams[1] - _votingStartTime competition voting start time _competitionParams[2] - _endTime competition end time _competitionParams[3] - _maxNumberOfVotesPerVoter on how many suggestions a voter can vote _competitionParams[4] - _suggestionsEndTime suggestion submission end time _proposerIsAdmin - true - proposer is an admin. false no admin. if admin is set, so only admin can suggest on this proposal.","_descriptionHash":"A hash of the proposal's description","_externalToken":"Address of external token, if reward is requested there","_reputationChange":"- Amount of reputation change requested.","_rewardSplit":"an array of precentages which specify how to split the rewards between the winning suggestions","_rewards":"rewards array: rewards[0] - Amount of tokens requested per period rewards[1] - Amount of ETH requested per period rewards[2] - Amount of external tokens requested per period"},"return":"proposalId the proposal id."},"redeem(uint256)":{"details":"redeem a winning suggestion reward","params":{"_suggestionId":"suggestionId"}},"sendLeftOverFunds(bytes32)":{"details":"sendLeftOverFund send leftover funds back to the dao.","params":{"_proposalId":"the proposal id"}},"setSnapshotBlock(bytes32)":{"details":"setSnapshotBlock set the block for the reputaion snapshot this function is public in order to externaly set snapshot block regardless of the first voting event.","params":{"_proposalId":"the proposal id"}},"suggest(bytes32,string,address)":{"details":"submit a competion suggestion","params":{"_beneficiary":"the beneficiary of this suggestion.","_descriptionHash":"a descriptionHash of the suggestion.","_proposalId":"the proposal id this suggestion is referring to."},"return":"suggestionId the suggestionId."},"vote(uint256)":{"details":"vote on a suggestion","params":{"_suggestionId":"suggestionId"},"return":"bool"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Context.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Context.json new file mode 100644 index 00000000..bd44857c --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Context.json @@ -0,0 +1 @@ +{"contractName":"Context","abi":[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/GSN/Context.sol\":\"Context\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\ncontract Context {\n // Empty internal constructor, to prevent people from mistakenly deploying\n // an instance of this contract, which should be used via inheritance.\n constructor () internal { }\n // solhint-disable-previous-line no-empty-blocks\n\n function _msgSender() internal view returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/GSN/Context.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","exportedSymbols":{"Context":[20058]},"id":20059,"nodeType":"SourceUnit","nodes":[{"id":20033,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:63"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":20058,"linearizedBaseContracts":[20058],"name":"Context","nodeType":"ContractDefinition","nodes":[{"body":{"id":20036,"nodeType":"Block","src":"726:3:63","statements":[]},"documentation":null,"id":20037,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":20034,"nodeType":"ParameterList","parameters":[],"src":"714:2:63"},"returnParameters":{"id":20035,"nodeType":"ParameterList","parameters":[],"src":"726:0:63"},"scope":20058,"src":"702:27:63","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20045,"nodeType":"Block","src":"850:34:63","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":20042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"867:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"867:10:63","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20041,"id":20044,"nodeType":"Return","src":"860:17:63"}]},"documentation":null,"id":20046,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nodeType":"FunctionDefinition","parameters":{"id":20038,"nodeType":"ParameterList","parameters":[],"src":"807:2:63"},"returnParameters":{"id":20041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20040,"name":"","nodeType":"VariableDeclaration","scope":20046,"src":"833:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":20039,"name":"address","nodeType":"ElementaryTypeName","src":"833:15:63","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"832:17:63"},"scope":20058,"src":"788:96:63","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":20056,"nodeType":"Block","src":"947:165:63","statements":[{"expression":{"argumentTypes":null,"id":20051,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21123,"src":"957:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20052,"nodeType":"ExpressionStatement","src":"957:4:63"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":20053,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1097:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1097:8:63","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":20050,"id":20055,"nodeType":"Return","src":"1090:15:63"}]},"documentation":null,"id":20057,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nodeType":"FunctionDefinition","parameters":{"id":20047,"nodeType":"ParameterList","parameters":[],"src":"907:2:63"},"returnParameters":{"id":20050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20049,"name":"","nodeType":"VariableDeclaration","scope":20057,"src":"933:12:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20048,"name":"bytes","nodeType":"ElementaryTypeName","src":"933:5:63","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"932:14:63"},"scope":20058,"src":"890:222:63","stateMutability":"view","superFunction":null,"visibility":"internal"}],"scope":20059,"src":"525:589:63"}],"src":"0:1115:63"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","exportedSymbols":{"Context":[20058]},"id":20059,"nodeType":"SourceUnit","nodes":[{"id":20033,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:63"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":20058,"linearizedBaseContracts":[20058],"name":"Context","nodeType":"ContractDefinition","nodes":[{"body":{"id":20036,"nodeType":"Block","src":"726:3:63","statements":[]},"documentation":null,"id":20037,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":20034,"nodeType":"ParameterList","parameters":[],"src":"714:2:63"},"returnParameters":{"id":20035,"nodeType":"ParameterList","parameters":[],"src":"726:0:63"},"scope":20058,"src":"702:27:63","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20045,"nodeType":"Block","src":"850:34:63","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":20042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"867:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"867:10:63","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20041,"id":20044,"nodeType":"Return","src":"860:17:63"}]},"documentation":null,"id":20046,"implemented":true,"kind":"function","modifiers":[],"name":"_msgSender","nodeType":"FunctionDefinition","parameters":{"id":20038,"nodeType":"ParameterList","parameters":[],"src":"807:2:63"},"returnParameters":{"id":20041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20040,"name":"","nodeType":"VariableDeclaration","scope":20046,"src":"833:15:63","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":20039,"name":"address","nodeType":"ElementaryTypeName","src":"833:15:63","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"832:17:63"},"scope":20058,"src":"788:96:63","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":20056,"nodeType":"Block","src":"947:165:63","statements":[{"expression":{"argumentTypes":null,"id":20051,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21123,"src":"957:4:63","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20052,"nodeType":"ExpressionStatement","src":"957:4:63"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":20053,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1097:3:63","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1097:8:63","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":20050,"id":20055,"nodeType":"Return","src":"1090:15:63"}]},"documentation":null,"id":20057,"implemented":true,"kind":"function","modifiers":[],"name":"_msgData","nodeType":"FunctionDefinition","parameters":{"id":20047,"nodeType":"ParameterList","parameters":[],"src":"907:2:63"},"returnParameters":{"id":20050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20049,"name":"","nodeType":"VariableDeclaration","scope":20057,"src":"933:12:63","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20048,"name":"bytes","nodeType":"ElementaryTypeName","src":"933:5:63","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"932:14:63"},"scope":20058,"src":"890:222:63","stateMutability":"view","superFunction":null,"visibility":"internal"}],"scope":20059,"src":"525:589:63"}],"src":"0:1115:63"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.266Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContinuousLocking4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContinuousLocking4Reputation.json new file mode 100644 index 00000000..91330839 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContinuousLocking4Reputation.json @@ -0,0 +1 @@ +{"contractName":"ContinuousLocking4Reputation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_locker","type":"address"},{"indexed":true,"internalType":"uint256","name":"_lockingId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_extendPeriod","type":"uint256"}],"name":"ExtendLocking","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_locker","type":"address"},{"indexed":true,"internalType":"uint256","name":"_lockingId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"LockToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_lockingId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_batchIndex","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"_lockingId","type":"uint256"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Release","type":"event"},{"constant":true,"inputs":[],"name":"MAX_LOCKING_BATCHES_HARDCAP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"batchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"batches","outputs":[{"internalType":"uint256","name":"totalScore","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"batchesIndexCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"lockers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"lockingTime","type":"uint256"},{"internalType":"uint256","name":"period","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLockingBatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"repRewardConstA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"repRewardConstB","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"startTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_reputationReward","type":"uint256"},{"internalType":"uint256","name":"_startTime","type":"uint256"},{"internalType":"uint256","name":"_batchTime","type":"uint256"},{"internalType":"uint256","name":"_redeemEnableTime","type":"uint256"},{"internalType":"uint256","name":"_maxLockingBatches","type":"uint256"},{"internalType":"uint256","name":"_repRewardConstA","type":"uint256"},{"internalType":"uint256","name":"_repRewardConstB","type":"uint256"},{"internalType":"uint256","name":"_batchesIndexCap","type":"uint256"},{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_lockingId","type":"uint256"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"uint256","name":"_batchIndexToLockIn","type":"uint256"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"lock","outputs":[{"internalType":"uint256","name":"lockingId","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_extendPeriod","type":"uint256"},{"internalType":"uint256","name":"_batchIndexToLockIn","type":"uint256"},{"internalType":"uint256","name":"_lockingId","type":"uint256"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"extendLocking","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_lockingId","type":"uint256"}],"name":"release","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_batchIndex","type":"uint256"}],"name":"getRepRewardPerBatch","outputs":[{"internalType":"uint256","name":"repReward","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_batchIndex","type":"uint256"},{"internalType":"uint256","name":"_lockingId","type":"uint256"}],"name":"getLockingIdScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_extendPeriod\",\"type\":\"uint256\"}],\"name\":\"ExtendLocking\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"LockToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_LOCKING_BATCHES_HARDCAP\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"batchTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"batches\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalScore\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"batchesIndexCap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_extendPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchIndexToLockIn\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"extendLocking\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"}],\"name\":\"getLockingIdScore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_batchIndex\",\"type\":\"uint256\"}],\"name\":\"getRepRewardPerBatch\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"repReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_redeemEnableTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxLockingBatches\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_repRewardConstA\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_repRewardConstB\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchesIndexCap\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_batchIndexToLockIn\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"lockingId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lockers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lockingTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"period\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxLockingBatches\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_lockingId\",\"type\":\"uint256\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"repRewardConstA\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"repRewardConstB\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"startTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLockedLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"extendLocking(uint256,uint256,uint256,bytes32)\":{\"details\":\"extendLocking function\",\"params\":{\"_batchIndexToLockIn\":\"index of the batch in which to start locking.\",\"_extendPeriod\":\"the period to extend the locking. in batchTime.\",\"_lockingId\":\"the locking id to extend\"}},\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"getLockingIdScore(uint256,uint256)\":{\"details\":\"getLockingIdScore function return score of lockingId at specific bach index\",\"params\":{\"_batchIndex\":\"batch index\",\"_lockingId\":\"lockingId\"},\"return\":\"score\"},\"getRepRewardPerBatch(uint256)\":{\"details\":\"getRepRewardPerBatch function the calculation is done the following formula: RepReward = repRewardConstA * (repRewardConstB**_batchIndex)\",\"params\":{\"_batchIndex\":\"the index of the batch to calc rep reward of\"},\"return\":\"repReward\"},\"initialize(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,bytes32)\":{\"details\":\"initialize\",\"params\":{\"_agreementHash\":\"is a hash of agreement required to be added to the TX by participants\",\"_avatar\":\"the avatar to mint reputation from\",\"_batchTime\":\"batch time (in seconds)\",\"_batchesIndexCap\":\"the length of the locking period (in batches). This value capped by BATCHES_HARDCAP .\",\"_maxLockingBatches\":\"- maximum number of locking batches that a user can lock (or extend) her tokens for\",\"_redeemEnableTime\":\"redeem enable time, in seconds since epoch redeem reputation can be done after this time.\",\"_repRewardConstA\":\"- the total amount of reputation allocation per batch is calculated by : _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex)\",\"_repRewardConstB\":\"- the total amount of reputation allocation per batch is calculated by : _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex). _repRewardConstB must be < 1000\",\"_reputationReward\":\"the total amount of reputation that can be minted by this contract\",\"_startTime\":\"locking period start time, in seconds since epoch\",\"_token\":\"the locking token\"}},\"lock(uint256,uint256,uint256,bytes32)\":{\"details\":\"lock function\",\"params\":{\"_amount\":\"the amount of token to lock\",\"_batchIndexToLockIn\":\"the batch index in which the locking period starts. Must be the currently active batch.\",\"_period\":\"the number of batches that the tokens will be locked for\"},\"return\":\"lockingId\"},\"redeem(address,uint256)\":{\"details\":\"redeem reputation function\",\"params\":{\"_beneficiary\":\"the beneficiary to redeem.\",\"_lockingId\":\"the lockingId to redeem from.\"},\"return\":\"uint256 reputation rewarded\"},\"release(address,uint256)\":{\"details\":\"release function\",\"params\":{\"_beneficiary\":\"the beneficiary for the release\",\"_lockingId\":\"the locking id to release\"},\"return\":\"bool\"}},\"title\":\"A scheme for continuous locking ERC20 Token for reputation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/ContinuousLocking4Reputation.sol\":\"ContinuousLocking4Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/ContinuousLocking4Reputation.sol\":{\"keccak256\":\"0x9f814d89a2bfc3c5f3213a997ad6eab4c37bef40b07ebcfa2db89f5d248ee54d\",\"urls\":[\"bzz-raw://5334ec9f70c5f546fe0ee56d10be701f2ffb9b4730293d1a41e5c06b7443196f\",\"dweb:/ipfs/QmXRkHkarvb7G2tGkXSztQThvQwfBG7Hi67Dut16KXccNo\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"389:14093:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;389:14093:10;;;;;;;","deployedSourceMap":"389:14093:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;389:14093:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12590:234;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12590:234:10;;:::i;:::-;;;;;;;;;;;;;;;;11672:635;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11672:635:10;;;;;;;;:::i;2085:30::-;;;:::i;5610:1845::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;5610:1845:10;;;;;;;;:::i;1701:31::-;;;:::i;2049:30::-;;;:::i;1474:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;1474:20:10;;;;;;;;;;;;;;1738:32;;;:::i;2388:56::-;;;:::i;407:101:7:-;;;:::i;1776:24:10:-;;;:::i;9793:1698::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;9793:1698:10;;;;;;;;;;;;;;;;;:::i;:::-;;2121:30;;;:::i;1602:24::-;;;:::i;7786:1744::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7786:1744:10;;;;;;;;;;;;;;;;;:::i;1894:26::-;;;:::i;1321:57::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1321:57:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;1500:35;;;:::i;1427:40::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1427:40:10;;:::i;1951:30::-;;;:::i;13035:161::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13035:161:10;;;;;;;:::i;3720:1677::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;3720:1677:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1843:19::-;;;:::i;12590:234::-;12662:17;12710:15;;12695:11;:30;12691:127;;12753:54;12757:15;;12774:32;12794:11;12774:15;;:19;;:32;;;;:::i;:::-;12753:3;:54::i;:::-;12741:66;;12691:127;12590:234;;;:::o;11672:635::-;-1:-1:-1;;;;;11794:21:10;;11746:14;11794:21;;;:7;:21;;;;;;;;:33;;;;;;;;11845:13;;11837:54;;;;;-1:-1:-1;;;11837:54:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;11910:13;;;11933:17;;12077:9;;12063:13;;;;-1:-1:-1;12040:18:10;;;11910:13;;-1:-1:-1;12040:47:10;;:18;12063:23;12040:47;:22;:47;:::i;:::-;12022:15;:65;12014:116;;;;;-1:-1:-1;;;12014:116:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;12158:15;;:27;;12178:6;12158:27;:19;:27;:::i;:::-;12140:15;:45;12203:5;;12195:49;;-1:-1:-1;;;;;12203:5:10;12223:12;12237:6;12195:49;:27;:49;:::i;:::-;12259:41;;;;;;;;-1:-1:-1;;;;;12259:41:10;;;12267:10;;12259:41;;;;;;;;;11672:635;;;;;:::o;2085:30::-;;;;:::o;5610:1845::-;5683:18;5781:16;;5775:3;:22;5767:57;;;;;-1:-1:-1;;;5767:57:10;;;;;;;;;;;;-1:-1:-1;;;5767:57:10;;;;;;;;;;;;;;;-1:-1:-1;;;;;5856:21:10;;5834:19;5856:21;;;:7;:21;;;;;;;;:33;;;;;;;;;5907:18;;;;5899:61;;;;;-1:-1:-1;;;5899:61:10;;;;;;;;;;;;-1:-1:-1;;;5899:61:10;;;;;;;;;;;;;;;5970:30;6038:9;;6025;;6004:6;:18;;;:30;6003:44;;;;;;5970:77;;6111:20;6154:9;;6141;;6135:3;:15;6134:29;;;;;;6111:52;;6173:30;6207:59;6224:41;6251:6;:13;;;6224:22;:26;;:41;;;;:::i;:::-;6207:12;;:59;:16;:59;:::i;:::-;6173:93;;6276:786;6330:22;6305;:47;6276:786;;;6394:21;6418:31;;;:7;:31;;;;;;;;6479:26;;;:14;;;:26;;;;;;;6523:9;;6519:533;;6581:1;6552:26;;;:14;;;:26;;;;;:30;;;6632:44;6653:22;6632:20;:44::i;:::-;6600:76;;6694:19;6716:50;6720:22;6735:5;6720:6;:22::i;:::-;6744:21;6716:3;:50::i;:::-;6694:72;;6784:22;6809:53;6813:11;6826:35;6841:7;:18;;;6826:6;:35::i;:::-;6809:3;:53::i;:::-;6784:78;-1:-1:-1;6893:30:10;:10;6784:78;6893:30;:14;:30;:::i;:::-;6880:43;;6965:12;-1:-1:-1;;;;;6946:91:10;6953:10;6946:91;6987:24;6996:14;6987:8;:24::i;:::-;6946:91;;;-1:-1:-1;;;;;6979:33:10;;;;6946:91;;;;;;;;;;;;;;;;;6519:533;;;;-1:-1:-1;;6354:24:10;;;;;6276:786;;;7092:20;7101:10;7092:8;:20::i;:::-;-1:-1:-1;;;;;7084:29:10;7071:42;;7144:1;7131:10;:14;7123:52;;;;;-1:-1:-1;;;7123:52:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;7257:20;;:36;;7282:10;7257:36;:24;:36;:::i;:::-;7234:20;:59;;;7331:6;;:14;;;-1:-1:-1;;;7331:14:10;;;;-1:-1:-1;;;;;7331:6:10;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;7331:14:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7331:14:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7331:14:10;7405:6;;7320:93;;;-1:-1:-1;;;7320:93:10;;;;;;;;-1:-1:-1;;;;;7320:93:10;;;;;;;7405:6;;;7320:93;;;;;;:50;;;;;;;:93;;;;;7331:14;;7320:93;;;;;;;7405:6;7320:50;:93;;;5:2:-1;;;;30:1;27;20:12;5:2;7320:93:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7320:93:10;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7320:93:10;7303:145;;;;;-1:-1:-1;;;7303:145:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;5610:1845;;;;;;;;:::o;1701:31::-;;;;:::o;2049:30::-;;;;:::o;1474:20::-;;;-1:-1:-1;;;;;1474:20:10;;:::o;1738:32::-;;;;:::o;2388:56::-;2442:2;2388:56;:::o;407:101:7:-;458:7;488:13;407:101;:::o;1776:24:10:-;;;;:::o;9793:1698::-;9970:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10030:10:10;10000:19;10022;;;:7;:19;;;;;;;;:31;;;;;;;;;10071:18;;;;10063:61;;;;;-1:-1:-1;;;10063:61:10;;;;;;;;;;;;-1:-1:-1;;;10063:61:10;;;;;;;;;;;;;;;10233:21;10265:101;10346:19;10331:9;;10267:62;10319:9;;10267:47;10304:9;;10290:6;:13;;;:23;10267:6;:18;;;:22;;:47;;;;:::i;:::-;:51;:62;:51;:62;:::i;:::-;10266:74;;;;;;;10265:101;:80;:101;:::i;:::-;10233:133;-1:-1:-1;10376:31:10;10410:32;10233:133;10428:13;10410:32;:17;:32;:::i;:::-;10376:66;;10487:17;;10460:23;:44;;10452:99;;;;-1:-1:-1;;;10452:99:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10585:1;10569:13;:17;10561:55;;;;;-1:-1:-1;;;10561:55:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;10688:15;;10635:48;:19;10659:23;10635:48;:23;:48;:::i;:::-;10634:69;;10626:130;;;;-1:-1:-1;;;10626:130:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10820:26;10869:9;;10856;;10850:3;:15;10849:29;;;;;;10820:58;;10918:19;10896:18;:41;10888:75;;;;;-1:-1:-1;;;10888:75:10;;;;;;;;;;;;-1:-1:-1;;;10888:75:10;;;;;;;;;;;;;;;11019:9;11014:346;11038:23;11034:1;:27;11014:346;;;11112:22;;;11082:19;11104:31;;;:7;:31;;;;;11199:13;;11104:31;;11082:19;11165:48;;11166:27;;;;11165:48;:33;:48;:::i;:::-;11278:24;;;;:12;;;:24;;;;;;11246:16;;11149:64;;-1:-1:-1;11246:57:10;;:27;;11149:64;11246:27;:20;:27;:::i;:57::-;11227:76;;:16;11317:24;;;:12;;;;:24;;;;;:32;11063:3;11014:346;;;-1:-1:-1;11385:13:10;;;;:32;;11403:13;11385:32;:17;:32;:::i;:::-;11369:13;;;:48;11432:52;;;;;;;;11458:10;;11446;;11432:52;;;;;;;;;311:1:7;;;;9793:1698:10;;;;;:::o;2121:30::-;;;;:::o;1602:24::-;;;;:::o;7786:1744::-;7940:17;7912:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7991:1:10;7981:7;:11;7973:45;;;;;-1:-1:-1;;;7973:45:10;;;;;;;;;;;;-1:-1:-1;;;7973:45:10;;;;;;;;;;;;;;;8097:9;;8090:3;:16;;8082:80;;;;-1:-1:-1;;;8082:80:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8191:17;;8180:7;:28;;8172:75;;;;-1:-1:-1;;;8172:75:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8275:1;8265:7;:11;8257:43;;;;;-1:-1:-1;;;8257:43:10;;;;;;;;;;;;-1:-1:-1;;;8257:43:10;;;;;;;;;;;;;;;8356:15;;8319:32;:19;8343:7;8319:32;:23;:32;:::i;:::-;8318:53;;8310:130;;;;-1:-1:-1;;;8310:130:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8464:11;;:18;;8480:1;8464:18;:15;:18;:::i;:::-;8450:11;:32;;;8556:10;8526:19;8548;;;:7;:19;;;;;;;;:30;;;;;;;;;8588:23;;;8621:13;;;:23;;;8729:3;8708:18;;;:24;;;;8751:5;;8450:32;;-1:-1:-1;8548:30:10;8743:67;;-1:-1:-1;;;;;8751:5:10;;;;8795:4;8588:23;8743:31;:67::i;:::-;8874:26;8923:9;;8910;;8904:3;:15;8903:29;;;;;;8874:58;;8972:19;8950:18;:41;8942:130;;;;-1:-1:-1;;;8942:130:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9130:9;9125:277;9149:7;9145:1;:11;9125:277;;;9207:22;;;9177:19;9199:31;;;:7;:31;;;;;;9260:26;9261:11;;;9278:7;9260:26;:17;:26;:::i;:::-;9319:16;;9244:42;;-1:-1:-1;9319:27:10;;9244:42;9319:27;:20;:27;:::i;:::-;9300:46;;:16;9360:23;;;:12;;;;:23;;;;;:31;9158:3;9125:277;;;-1:-1:-1;9430:15:10;;:28;;9450:7;9430:28;:19;:28;:::i;:::-;9412:15;:46;9473:50;;;;;;;;;;;;;;9495:9;;9483:10;;9473:50;;;;;;;;;;;311:1:7;;7786:1744:10;;;;;;;:::o;1894:26::-;;;;:::o;1321:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1500:35::-;;;;:::o;1427:40::-;;;;;;;;;;;;;:::o;1951:30::-;;;;:::o;13035:161::-;13124:7;13150:20;;;:7;:20;;;;;;;;:39;;;:27;;:39;;;;;;13035:161;;;;;:::o;3720:1677::-;4120:6;;-1:-1:-1;;;;;4120:6:10;:19;4112:59;;;;;-1:-1:-1;;;4112:59:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4189:20:10;;4181:54;;;;;-1:-1:-1;;;4181:54:10;;;;;;;;;;;;-1:-1:-1;;;4181:54:10;;;;;;;;;;;;;;;4326:2;4313:10;:15;4305:52;;;;;-1:-1:-1;;;4305:52:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;2442:2;4375:18;:49;;4367:128;;;;-1:-1:-1;;;4367:128:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4534:26;:10;4549;4534:26;:14;:26;:::i;:::-;4513:17;:47;;4505:110;;;;-1:-1:-1;;;4505:110:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2379:3;4633:16;:41;;4625:94;;;;-1:-1:-1;;;4625:94:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:5;:14;;-1:-1:-1;;;;;4729:14:10;;;-1:-1:-1;;;;;;4729:14:10;;;;;;;4753:6;:16;;;;;;;;;;;;;;;4779:9;:22;;;-1:-1:-1;4811:40:10;;;-1:-1:-1;4861:36:10;;;4907:17;:38;;;4955:9;:22;;;5014:4;4995:23;;4987:69;;;;-1:-1:-1;;;4987:69:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5093:17;5074:16;:36;5066:94;;;;-1:-1:-1;;;5066:94:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5188:33;5203:16;5188:6;:33::i;:::-;5170:15;:51;5249:49;-1:-1:-1;;;;;5249:34:10;;5292:4;5249:49;:34;:49;:::i;:::-;5231:15;:67;5308:15;:34;;;5352:38;5375:14;5352:22;:38::i;:::-;3720:1677;;;;;;;;;;;:::o;1843:19::-;;;-1:-1:-1;;;;;1843:19:10;;:::o;821:845:52:-;893:7;936:8;977;-1:-1:-1;;;1071:525:52;1078:17;;1071:525;;1162:12;1177:3;1162:18;1185:3;1161:27;1157:192;;;1305:29;1309:10;1321:12;1305:3;:29::i;:::-;1292:42;;1157:192;1434:1;1418:17;;;;;1453;;1449:137;;1540:31;1544:12;1558;1540:3;:31::i;:::-;1525:46;;1449:137;1071:525;;;1649:10;821:845;-1:-1:-1;;;;;821:845:52:o;13276:383:10:-;13341:7;13541:13;;;13549:5;13541;:13;:5;13572:9;;;;;:18;13564:52;;;;;-1:-1:-1;;;13564:52:10;;;;;;;;;;;;-1:-1:-1;;;13564:52:10;;;;;;;;;;;;;;;2196:2;13634:17;;13276:383;-1:-1:-1;;;13276:383:10:o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;993:567:6:-;1134:23;:10;-1:-1:-1;;;;;1134:21:6;;:23::i;:::-;1126:32;;;;;;730:34;;;;;;;;;;;;;;;;;1295:54;;-1:-1:-1;;;;;1295:54:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1295:54:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1279:71:6;;;;1170:12;;1184:24;;1279:15;;;1295:54;1279:71;;;25:18:-1;1279:71:6;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1279:71:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1169:181:6;;;;1418:7;1410:16;;;;;;1473:18;;:23;;:79;;;1501:11;:18;1523:2;1501:24;:50;;;;;1530:11;1542:2;1530:15;;;;;;;;;;;;-1:-1:-1;;;;;;1530:15:6;:20;;1501:50;1465:88;;;;;;993:567;;;;;:::o;358:104:65:-;416:7;446:1;442;:5;:13;;454:1;442:13;;;-1:-1:-1;450:1:65;;358:104;-1:-1:-1;358:104:65:o;13734:111:10:-;-1:-1:-1;;;;;13813:14:10;;-1:-1:-1;;;13813:25:10;13734:111;;;:::o;14126:353::-;14209:7;14455:15;-1:-1:-1;;;14410:33:10;;14455:15;14409:62;;;;;;14126:353;-1:-1:-1;;;14126:353:10:o;13920:123::-;-1:-1:-1;;;14014:21:10;;;13920:123::o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1566:597:6;1726:23;:10;-1:-1:-1;;;;;1726:21:6;;:23::i;:::-;1718:32;;;;;;1762:12;1776:24;1871:10;-1:-1:-1;;;;;1871:15:6;837:46;;;;;;;;;;;;;;;;;827:57;;;;;;;1887:65;;;-1:-1:-1;;;;;1887:65:6;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1887:65:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1887:65:6;;;179:29:-1;;;;160:49;;1871:82:6;;;;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1871:82:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1761:192:6;;;;2021:7;2013:16;;;;;;2076:18;;:23;;:79;;;2104:11;:18;2126:2;2104:24;:50;;;;;2133:11;2145:2;2133:15;;;;;;;;;;;;-1:-1:-1;;;;;;2133:15:6;:20;;2104:50;2068:88;;;;;;1566:597;;;;;;:::o;1735:181:52:-;1816:7;1842:67;-1:-1:-1;;;;;1846:18:52;;;-1:-1:-1;;;1846:29:52;;;;1877:20;;:31;1842:3;:67::i;658:187:7:-;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o;1732::66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/math/Math.sol\";\nimport \"../controller/Controller.sol\";\nimport \"../libs/SafeERC20.sol\";\nimport \"./Agreement.sol\";\nimport { RealMath } from \"@daostack/infra/contracts/libs/RealMath.sol\";\n\n/**\n * @title A scheme for continuous locking ERC20 Token for reputation\n */\n\ncontract ContinuousLocking4Reputation is Agreement {\n using SafeMath for uint256;\n using SafeERC20 for address;\n using RealMath for uint216;\n using RealMath for uint256;\n using Math for uint256;\n\n event Redeem(uint256 indexed _lockingId, address indexed _beneficiary, uint256 _amount, uint256 _batchIndex);\n event Release(uint256 indexed _lockingId, address indexed _beneficiary, uint256 _amount);\n event LockToken(address indexed _locker, uint256 indexed _lockingId, uint256 _amount, uint256 _period);\n event ExtendLocking(address indexed _locker, uint256 indexed _lockingId, uint256 _extendPeriod);\n\n struct Batch {\n uint256 totalScore;\n // A mapping from lockingId to its score\n mapping(uint256=>uint) scores;\n }\n\n struct Lock {\n uint256 amount;\n uint256 lockingTime;\n uint256 period;\n }\n\n // A mapping from lockers addresses to their locks\n mapping(address => mapping(uint256=>Lock)) public lockers;\n // A mapping from batch index to batch\n mapping(uint256 => Batch) public batches;\n\n Avatar public avatar;\n uint256 public reputationRewardLeft; // the amount of reputation that is still left to distribute\n uint256 public startTime; // the time (in secs since epoch) that locking can start (is enable)\n uint256 public redeemEnableTime;\n uint256 public maxLockingBatches;\n uint256 public batchTime; // the length of a batch, in seconds\n IERC20 public token; // the token to be locked\n uint256 public lockCounter; // Total number of locks\n uint256 public totalLockedLeft; // the amount of reputation that is still left to distribute\n uint256 public repRewardConstA;\n uint256 public repRewardConstB;\n uint256 public batchesIndexCap;\n\n uint256 constant private REAL_FBITS = 40;\n /**\n * What's the first non-fractional bit\n */\n\n uint256 constant private REAL_ONE = uint256(1) << REAL_FBITS;\n uint256 constant private BATCHES_INDEX_HARDCAP = 100;\n uint256 constant public MAX_LOCKING_BATCHES_HARDCAP = 24;\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _reputationReward the total amount of reputation that can be minted by this contract\n * @param _startTime locking period start time, in seconds since epoch\n * @param _redeemEnableTime redeem enable time\n * @param _batchTime batch time (in seconds)\n * @param _redeemEnableTime redeem enable time, in seconds since epoch\n * redeem reputation can be done after this time.\n * @param _maxLockingBatches - maximum number of locking batches that a user can lock (or extend) her tokens for\n * @param _repRewardConstA - the total amount of reputation allocation per batch is calculated by :\n * _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex)\n * @param _repRewardConstB - the total amount of reputation allocation per batch is calculated by :\n * _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex). _repRewardConstB must be < 1000\n * @param _batchesIndexCap the length of the locking period (in batches).\n * This value capped by BATCHES_HARDCAP .\n * @param _token the locking token\n * @param _agreementHash is a hash of agreement required to be added to the TX by participants\n */\n function initialize(\n Avatar _avatar,\n uint256 _reputationReward,\n uint256 _startTime,\n uint256 _batchTime,\n uint256 _redeemEnableTime,\n uint256 _maxLockingBatches,\n uint256 _repRewardConstA,\n uint256 _repRewardConstB,\n uint256 _batchesIndexCap,\n IERC20 _token,\n bytes32 _agreementHash )\n external\n {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n // _batchTime should be greater than block interval\n require(_batchTime > 15, \"batchTime should be > 15\");\n require(_maxLockingBatches <= MAX_LOCKING_BATCHES_HARDCAP,\n \"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP\");\n require(_redeemEnableTime >= _startTime.add(_batchTime),\n \"_redeemEnableTime >= _startTime+_batchTime\");\n require(_batchesIndexCap <= BATCHES_INDEX_HARDCAP, \"_batchesIndexCap > BATCHES_INDEX_HARDCAP\");\n token = _token;\n avatar = _avatar;\n startTime = _startTime;\n reputationRewardLeft = _reputationReward;\n redeemEnableTime = _redeemEnableTime;\n maxLockingBatches = _maxLockingBatches;\n batchTime = _batchTime;\n require(_repRewardConstB < 1000, \"_repRewardConstB should be < 1000\");\n require(_repRewardConstA < _reputationReward, \"repRewardConstA should be < _reputationReward\");\n repRewardConstA = toReal(uint216(_repRewardConstA));\n repRewardConstB = uint216(_repRewardConstB).fraction(uint216(1000));\n batchesIndexCap = _batchesIndexCap;\n super.setAgreementHash(_agreementHash);\n }\n\n /**\n * @dev redeem reputation function\n * @param _beneficiary the beneficiary to redeem.\n * @param _lockingId the lockingId to redeem from.\n * @return uint256 reputation rewarded\n */\n function redeem(address _beneficiary, uint256 _lockingId) public returns(uint256 reputation) {\n // solhint-disable-next-line not-rely-on-time\n require(now > redeemEnableTime, \"now > redeemEnableTime\");\n Lock storage locker = lockers[_beneficiary][_lockingId];\n require(locker.lockingTime != 0, \"_lockingId does not exist\");\n uint256 batchIndexToRedeemFrom = (locker.lockingTime - startTime) / batchTime;\n // solhint-disable-next-line not-rely-on-time\n uint256 currentBatch = (now - startTime) / batchTime;\n uint256 lastBatchIndexToRedeem = currentBatch.min(batchIndexToRedeemFrom.add(locker.period));\n for (batchIndexToRedeemFrom; batchIndexToRedeemFrom < lastBatchIndexToRedeem; batchIndexToRedeemFrom++) {\n Batch storage locking = batches[batchIndexToRedeemFrom];\n uint256 score = locking.scores[_lockingId];\n if (score > 0) {\n locking.scores[_lockingId] = 0;\n uint256 batchReputationReward = getRepRewardPerBatch(batchIndexToRedeemFrom);\n uint256 repRelation = mul(toReal(uint216(score)), batchReputationReward);\n uint256 redeemForBatch = div(repRelation, toReal(uint216(locking.totalScore)));\n reputation = reputation.add(redeemForBatch);\n emit Redeem(_lockingId, _beneficiary, uint256(fromReal(redeemForBatch)), batchIndexToRedeemFrom);\n }\n }\n reputation = uint256(fromReal(reputation));\n require(reputation > 0, \"reputation to redeem is 0\");\n // check that the reputation is sum zero\n reputationRewardLeft = reputationRewardLeft.sub(reputation);\n require(\n Controller(avatar.owner())\n .mintReputation(reputation, _beneficiary, address(avatar)), \"mint reputation should succeed\");\n }\n\n /**\n * @dev lock function\n * @param _amount the amount of token to lock\n * @param _period the number of batches that the tokens will be locked for\n * @param _batchIndexToLockIn the batch index in which the locking period starts.\n * Must be the currently active batch.\n * @return lockingId\n */\n function lock(uint256 _amount, uint256 _period, uint256 _batchIndexToLockIn, bytes32 _agreementHash)\n public\n onlyAgree(_agreementHash)\n returns(uint256 lockingId)\n {\n require(_amount > 0, \"_amount should be > 0\");\n // solhint-disable-next-line not-rely-on-time\n require(now >= startTime, \"locking is not enabled yet (it starts at startTime)\");\n require(_period <= maxLockingBatches, \"_period exceed the maximum allowed\");\n require(_period > 0, \"_period must be > 0\");\n require((_batchIndexToLockIn.add(_period)) <= batchesIndexCap,\n \"_batchIndexToLockIn + _period exceed max allowed batches\");\n lockCounter = lockCounter.add(1);\n lockingId = lockCounter;\n\n Lock storage locker = lockers[msg.sender][lockingId];\n locker.amount = _amount;\n locker.period = _period;\n // solhint-disable-next-line not-rely-on-time\n locker.lockingTime = now;\n\n address(token).safeTransferFrom(msg.sender, address(this), _amount);\n // solhint-disable-next-line not-rely-on-time\n uint256 batchIndexToLockIn = (now - startTime) / batchTime;\n require(batchIndexToLockIn == _batchIndexToLockIn,\n \"_batchIndexToLockIn must be the one corresponding to the current one\");\n //fill in the next batches scores.\n for (uint256 p = 0; p < _period; p++) {\n Batch storage batch = batches[batchIndexToLockIn + p];\n uint256 score = (_period - p).mul(_amount);\n batch.totalScore = batch.totalScore.add(score);\n batch.scores[lockingId] = score;\n }\n\n totalLockedLeft = totalLockedLeft.add(_amount);\n emit LockToken(msg.sender, lockingId, _amount, _period);\n }\n\n /**\n * @dev extendLocking function\n * @param _extendPeriod the period to extend the locking. in batchTime.\n * @param _batchIndexToLockIn index of the batch in which to start locking.\n * @param _lockingId the locking id to extend\n */\n function extendLocking(\n uint256 _extendPeriod,\n uint256 _batchIndexToLockIn,\n uint256 _lockingId,\n bytes32 _agreementHash)\n public\n onlyAgree(_agreementHash)\n {\n Lock storage locker = lockers[msg.sender][_lockingId];\n require(locker.lockingTime != 0, \"_lockingId does not exist\");\n // remainBatchs is the number of future batches that are part of the currently active lock\n uint256 remainBatches =\n ((locker.lockingTime.add(locker.period*batchTime).sub(startTime))/batchTime).sub(_batchIndexToLockIn);\n uint256 batchesCountFromCurrent = remainBatches.add(_extendPeriod);\n require(batchesCountFromCurrent <= maxLockingBatches, \"locking period exceeds the maximum allowed\");\n require(_extendPeriod > 0, \"_extendPeriod must be > 0\");\n require((_batchIndexToLockIn.add(batchesCountFromCurrent)) <= batchesIndexCap,\n \"_extendPeriod exceed max allowed batches\");\n // solhint-disable-next-line not-rely-on-time\n uint256 batchIndexToLockIn = (now - startTime) / batchTime;\n require(batchIndexToLockIn == _batchIndexToLockIn, \"locking is not active\");\n //fill in the next batch scores.\n for (uint256 p = 0; p < batchesCountFromCurrent; p++) {\n Batch storage batch = batches[batchIndexToLockIn + p];\n uint256 score = (batchesCountFromCurrent - p).mul(locker.amount);\n batch.totalScore = batch.totalScore.add(score).sub(batch.scores[_lockingId]);\n batch.scores[_lockingId] = score;\n }\n locker.period = locker.period.add(_extendPeriod);\n emit ExtendLocking(msg.sender, _lockingId, _extendPeriod);\n }\n\n /**\n * @dev release function\n * @param _beneficiary the beneficiary for the release\n * @param _lockingId the locking id to release\n * @return bool\n */\n function release(address _beneficiary, uint256 _lockingId) public returns(uint256 amount) {\n Lock storage locker = lockers[_beneficiary][_lockingId];\n require(locker.amount > 0, \"no amount left to unlock\");\n amount = locker.amount;\n locker.amount = 0;\n // solhint-disable-next-line not-rely-on-time\n require(block.timestamp > locker.lockingTime.add(locker.period*batchTime),\n \"locking period is still active\");\n totalLockedLeft = totalLockedLeft.sub(amount);\n address(token).safeTransfer(_beneficiary, amount);\n emit Release(_lockingId, _beneficiary, amount);\n }\n\n /**\n * @dev getRepRewardPerBatch function\n * the calculation is done the following formula:\n * RepReward = repRewardConstA * (repRewardConstB**_batchIndex)\n * @param _batchIndex the index of the batch to calc rep reward of\n * @return repReward\n */\n function getRepRewardPerBatch(uint256 _batchIndex) public view returns(uint256 repReward) {\n if (_batchIndex <= batchesIndexCap) {\n repReward = mul(repRewardConstA, repRewardConstB.pow(_batchIndex));\n }\n }\n\n /**\n * @dev getLockingIdScore function\n * return score of lockingId at specific bach index\n * @param _batchIndex batch index\n * @param _lockingId lockingId\n * @return score\n */\n function getLockingIdScore(uint256 _batchIndex, uint256 _lockingId) public view returns(uint256) {\n return batches[_batchIndex].scores[_lockingId];\n }\n\n /**\n * Multiply one real by another. Truncates overflows.\n */\n function mul(uint256 realA, uint256 realB) private pure returns (uint256) {\n // When multiplying fixed point in x.y and z.w formats we get (x+z).(y+w) format.\n // So we just have to clip off the extra REAL_FBITS fractional bits.\n uint256 res = realA * realB;\n require(res/realA == realB, \"RealMath mul overflow\");\n return (res >> REAL_FBITS);\n }\n\n /**\n * Convert an integer to a real. Preserves sign.\n */\n function toReal(uint216 ipart) private pure returns (uint256) {\n return uint256(ipart) * REAL_ONE;\n }\n\n /**\n * Convert a real to an integer. Preserves sign.\n */\n function fromReal(uint256 _realValue) private pure returns (uint216) {\n return uint216(_realValue / REAL_ONE);\n }\n\n /**\n * Divide one real by another real. Truncates overflows.\n */\n function div(uint256 realNumerator, uint256 realDenominator) private pure returns (uint256) {\n // We use the reverse of the multiplication trick: convert numerator from\n // x.y to (x+z).(y+w) fixed point, then divide by denom in z.w fixed point.\n return uint256((uint256(realNumerator) * REAL_ONE) / uint256(realDenominator));\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/ContinuousLocking4Reputation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContinuousLocking4Reputation.sol","exportedSymbols":{"ContinuousLocking4Reputation":[5140]},"id":5141,"nodeType":"SourceUnit","nodes":[{"id":4133,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:10"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":4134,"nodeType":"ImportDirective","scope":5141,"sourceUnit":20396,"src":"25:59:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/Math.sol","file":"openzeppelin-solidity/contracts/math/Math.sol","id":4135,"nodeType":"ImportDirective","scope":5141,"sourceUnit":20209,"src":"85:55:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":4136,"nodeType":"ImportDirective","scope":5141,"sourceUnit":1798,"src":"141:38:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":4137,"nodeType":"ImportDirective","scope":5141,"sourceUnit":2258,"src":"180:31:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":4138,"nodeType":"ImportDirective","scope":5141,"sourceUnit":2303,"src":"212:25:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/libs/RealMath.sol","file":"@daostack/infra/contracts/libs/RealMath.sol","id":4140,"nodeType":"ImportDirective","scope":5141,"sourceUnit":15237,"src":"238:71:10","symbolAliases":[{"foreign":4139,"local":null}],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":4141,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"430:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":4142,"nodeType":"InheritanceSpecifier","src":"430:9:10"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A scheme for continuous locking ERC20 Token for reputation","fullyImplemented":true,"id":5140,"linearizedBaseContracts":[5140,2302],"name":"ContinuousLocking4Reputation","nodeType":"ContractDefinition","nodes":[{"id":4145,"libraryName":{"contractScope":null,"id":4143,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"452:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"446:27:10","typeName":{"id":4144,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":4148,"libraryName":{"contractScope":null,"id":4146,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"484:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"478:28:10","typeName":{"id":4147,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":4151,"libraryName":{"contractScope":null,"id":4149,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"517:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"511:27:10","typeName":{"id":4150,"name":"uint216","nodeType":"ElementaryTypeName","src":"530:7:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}},{"id":4154,"libraryName":{"contractScope":null,"id":4152,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"549:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"543:27:10","typeName":{"id":4153,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":4157,"libraryName":{"contractScope":null,"id":4155,"name":"Math","nodeType":"UserDefinedTypeName","referencedDeclaration":20208,"src":"581:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_Math_$20208","typeString":"library Math"}},"nodeType":"UsingForDirective","src":"575:23:10","typeName":{"id":4156,"name":"uint256","nodeType":"ElementaryTypeName","src":"590:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":4167,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4159,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4167,"src":"617:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4158,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4161,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":4167,"src":"645:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4160,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4163,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":4167,"src":"675:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4162,"name":"uint256","nodeType":"ElementaryTypeName","src":"675:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4165,"indexed":false,"name":"_batchIndex","nodeType":"VariableDeclaration","scope":4167,"src":"692:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4164,"name":"uint256","nodeType":"ElementaryTypeName","src":"692:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"616:96:10"},"src":"604:109:10"},{"anonymous":false,"documentation":null,"id":4175,"name":"Release","nodeType":"EventDefinition","parameters":{"id":4174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4169,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4175,"src":"732:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4168,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4171,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":4175,"src":"760:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4170,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4173,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":4175,"src":"790:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4172,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"731:75:10"},"src":"718:89:10"},{"anonymous":false,"documentation":null,"id":4185,"name":"LockToken","nodeType":"EventDefinition","parameters":{"id":4184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4177,"indexed":true,"name":"_locker","nodeType":"VariableDeclaration","scope":4185,"src":"828:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4176,"name":"address","nodeType":"ElementaryTypeName","src":"828:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4179,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4185,"src":"853:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4178,"name":"uint256","nodeType":"ElementaryTypeName","src":"853:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4181,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":4185,"src":"881:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4180,"name":"uint256","nodeType":"ElementaryTypeName","src":"881:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4183,"indexed":false,"name":"_period","nodeType":"VariableDeclaration","scope":4185,"src":"898:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4182,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"827:87:10"},"src":"812:103:10"},{"anonymous":false,"documentation":null,"id":4193,"name":"ExtendLocking","nodeType":"EventDefinition","parameters":{"id":4192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4187,"indexed":true,"name":"_locker","nodeType":"VariableDeclaration","scope":4193,"src":"940:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4186,"name":"address","nodeType":"ElementaryTypeName","src":"940:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4189,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4193,"src":"965:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4188,"name":"uint256","nodeType":"ElementaryTypeName","src":"965:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4191,"indexed":false,"name":"_extendPeriod","nodeType":"VariableDeclaration","scope":4193,"src":"993:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4190,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"939:76:10"},"src":"920:96:10"},{"canonicalName":"ContinuousLocking4Reputation.Batch","id":4200,"members":[{"constant":false,"id":4195,"name":"totalScore","nodeType":"VariableDeclaration","scope":4200,"src":"1045:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4199,"name":"scores","nodeType":"VariableDeclaration","scope":4200,"src":"1122:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":4198,"keyType":{"id":4196,"name":"uint256","nodeType":"ElementaryTypeName","src":"1130:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1122:22:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":4197,"name":"uint","nodeType":"ElementaryTypeName","src":"1139:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Batch","nodeType":"StructDefinition","scope":5140,"src":"1022:136:10","visibility":"public"},{"canonicalName":"ContinuousLocking4Reputation.Lock","id":4207,"members":[{"constant":false,"id":4202,"name":"amount","nodeType":"VariableDeclaration","scope":4207,"src":"1186:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1186:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4204,"name":"lockingTime","nodeType":"VariableDeclaration","scope":4207,"src":"1210:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1210:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4206,"name":"period","nodeType":"VariableDeclaration","scope":4207,"src":"1239:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Lock","nodeType":"StructDefinition","scope":5140,"src":"1164:96:10","visibility":"public"},{"constant":false,"id":4213,"name":"lockers","nodeType":"VariableDeclaration","scope":5140,"src":"1321:57:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock))"},"typeName":{"id":4212,"keyType":{"id":4208,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1321:42:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock))"},"valueType":{"id":4211,"keyType":{"id":4209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1340:22:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock)"},"valueType":{"contractScope":null,"id":4210,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"1357:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}}}},"value":null,"visibility":"public"},{"constant":false,"id":4217,"name":"batches","nodeType":"VariableDeclaration","scope":5140,"src":"1427:40:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch)"},"typeName":{"id":4216,"keyType":{"id":4214,"name":"uint256","nodeType":"ElementaryTypeName","src":"1435:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1427:25:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch)"},"valueType":{"contractScope":null,"id":4215,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"1446:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}}},"value":null,"visibility":"public"},{"constant":false,"id":4219,"name":"avatar","nodeType":"VariableDeclaration","scope":5140,"src":"1474:20:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":4218,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1474:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":4221,"name":"reputationRewardLeft","nodeType":"VariableDeclaration","scope":5140,"src":"1500:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1500:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4223,"name":"startTime","nodeType":"VariableDeclaration","scope":5140,"src":"1602:24:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1602:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4225,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":5140,"src":"1701:31:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4224,"name":"uint256","nodeType":"ElementaryTypeName","src":"1701:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4227,"name":"maxLockingBatches","nodeType":"VariableDeclaration","scope":5140,"src":"1738:32:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4226,"name":"uint256","nodeType":"ElementaryTypeName","src":"1738:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4229,"name":"batchTime","nodeType":"VariableDeclaration","scope":5140,"src":"1776:24:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4228,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4231,"name":"token","nodeType":"VariableDeclaration","scope":5140,"src":"1843:19:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":4230,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1843:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":4233,"name":"lockCounter","nodeType":"VariableDeclaration","scope":5140,"src":"1894:26:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4232,"name":"uint256","nodeType":"ElementaryTypeName","src":"1894:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4235,"name":"totalLockedLeft","nodeType":"VariableDeclaration","scope":5140,"src":"1951:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4234,"name":"uint256","nodeType":"ElementaryTypeName","src":"1951:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4237,"name":"repRewardConstA","nodeType":"VariableDeclaration","scope":5140,"src":"2049:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4236,"name":"uint256","nodeType":"ElementaryTypeName","src":"2049:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4239,"name":"repRewardConstB","nodeType":"VariableDeclaration","scope":5140,"src":"2085:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4238,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4241,"name":"batchesIndexCap","nodeType":"VariableDeclaration","scope":5140,"src":"2121:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4240,"name":"uint256","nodeType":"ElementaryTypeName","src":"2121:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":true,"id":4244,"name":"REAL_FBITS","nodeType":"VariableDeclaration","scope":5140,"src":"2158:40:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3430","id":4243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2196:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"visibility":"private"},{"constant":true,"id":4251,"name":"REAL_ONE","nodeType":"VariableDeclaration","scope":5140,"src":"2264:60:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4245,"name":"uint256","nodeType":"ElementaryTypeName","src":"2264:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":4247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2300:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":4248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2300:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"argumentTypes":null,"id":4249,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"2314:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2300:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":true,"id":4254,"name":"BATCHES_INDEX_HARDCAP","nodeType":"VariableDeclaration","scope":5140,"src":"2330:52:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4252,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313030","id":4253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2379:3:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"private"},{"constant":true,"id":4257,"name":"MAX_LOCKING_BATCHES_HARDCAP","nodeType":"VariableDeclaration","scope":5140,"src":"2388:56:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4255,"name":"uint256","nodeType":"ElementaryTypeName","src":"2388:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3234","id":4256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2442:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"visibility":"public"},{"body":{"id":4402,"nodeType":"Block","src":"4102:1295:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4283,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"4120:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4137:1:10","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":4284,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"4130:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":4286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4130:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4120:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":4288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4141:29:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":4282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4112:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4112:59:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4290,"nodeType":"ExpressionStatement","src":"4112:59:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":4296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4292,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"4189:7:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4207:1:10","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":4293,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"4200:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":4295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4200:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4189:20:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":4297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4211:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":4291,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4181:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4181:54:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4299,"nodeType":"ExpressionStatement","src":"4181:54:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4301,"name":"_batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4265,"src":"4313:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"3135","id":4302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4326:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"4313:15:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"626174636854696d652073686f756c64206265203e203135","id":4304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4330:26:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_73cafc5715007fae943db42f66163c5adbf0dec39e24e1d57ee46910d6c6b135","typeString":"literal_string \"batchTime should be > 15\""},"value":"batchTime should be > 15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73cafc5715007fae943db42f66163c5adbf0dec39e24e1d57ee46910d6c6b135","typeString":"literal_string \"batchTime should be > 15\""}],"id":4300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4305:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4305:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4306,"nodeType":"ExpressionStatement","src":"4305:52:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4308,"name":"_maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"4375:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4309,"name":"MAX_LOCKING_BATCHES_HARDCAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"4397:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4375:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d61784c6f636b696e67426174636865732073686f756c64206265203c3d204d41585f4c4f434b494e475f424154434845535f48415244434150","id":4311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4434:60:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d5b5e8feede0268b4baad6b5c3ece92d09a727e8254338f1545a1b2583752883","typeString":"literal_string \"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP\""},"value":"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5b5e8feede0268b4baad6b5c3ece92d09a727e8254338f1545a1b2583752883","typeString":"literal_string \"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP\""}],"id":4307,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4367:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:128:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4313,"nodeType":"ExpressionStatement","src":"4367:128:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4315,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"4513:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4318,"name":"_batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4265,"src":"4549:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4316,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4263,"src":"4534:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4534:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4534:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4513:47:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f72656465656d456e61626c6554696d65203e3d205f737461727454696d652b5f626174636854696d65","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4570:44:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f399bd55f216e6edc793c18b8c97d263099791bc13b77584ca101b8c37a3319c","typeString":"literal_string \"_redeemEnableTime >= _startTime+_batchTime\""},"value":"_redeemEnableTime >= _startTime+_batchTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f399bd55f216e6edc793c18b8c97d263099791bc13b77584ca101b8c37a3319c","typeString":"literal_string \"_redeemEnableTime >= _startTime+_batchTime\""}],"id":4314,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4505:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4505:110:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4323,"nodeType":"ExpressionStatement","src":"4505:110:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4325,"name":"_batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4275,"src":"4633:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4326,"name":"BATCHES_INDEX_HARDCAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"4653:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4633:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f62617463686573496e646578436170203e20424154434845535f494e4445585f48415244434150","id":4328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4676:42:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6192ecbe363f6f8f208ad218f5510ee81fdce0f9ab07e7a1d8fe7ef08364c082","typeString":"literal_string \"_batchesIndexCap > BATCHES_INDEX_HARDCAP\""},"value":"_batchesIndexCap > BATCHES_INDEX_HARDCAP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6192ecbe363f6f8f208ad218f5510ee81fdce0f9ab07e7a1d8fe7ef08364c082","typeString":"literal_string \"_batchesIndexCap > BATCHES_INDEX_HARDCAP\""}],"id":4324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4625:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4625:94:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4330,"nodeType":"ExpressionStatement","src":"4625:94:10"},{"expression":{"argumentTypes":null,"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4331,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"4729:5:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4332,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4277,"src":"4737:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"4729:14:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":4334,"nodeType":"ExpressionStatement","src":"4729:14:10"},{"expression":{"argumentTypes":null,"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4335,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"4753:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4336,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"4762:7:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4753:16:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":4338,"nodeType":"ExpressionStatement","src":"4753:16:10"},{"expression":{"argumentTypes":null,"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4339,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"4779:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4340,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4263,"src":"4791:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4779:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4342,"nodeType":"ExpressionStatement","src":"4779:22:10"},{"expression":{"argumentTypes":null,"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4343,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"4811:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4344,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"4834:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4811:40:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4346,"nodeType":"ExpressionStatement","src":"4811:40:10"},{"expression":{"argumentTypes":null,"id":4349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4347,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"4861:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4348,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"4880:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4861:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4350,"nodeType":"ExpressionStatement","src":"4861:36:10"},{"expression":{"argumentTypes":null,"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4351,"name":"maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"4907:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4352,"name":"_maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"4927:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4907:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4354,"nodeType":"ExpressionStatement","src":"4907:38:10"},{"expression":{"argumentTypes":null,"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4355,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"4955:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4356,"name":"_batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4265,"src":"4967:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4955:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4358,"nodeType":"ExpressionStatement","src":"4955:22:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4360,"name":"_repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4273,"src":"4995:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"31303030","id":4361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5014:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"4995:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f726570526577617264436f6e7374422073686f756c64206265203c2031303030","id":4363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5020:35:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_77ce01d0b74a5db4fe0e7697fa87a1152c41639e82f01b12169c013ac6fec930","typeString":"literal_string \"_repRewardConstB should be < 1000\""},"value":"_repRewardConstB should be < 1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77ce01d0b74a5db4fe0e7697fa87a1152c41639e82f01b12169c013ac6fec930","typeString":"literal_string \"_repRewardConstB should be < 1000\""}],"id":4359,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4987:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4987:69:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4365,"nodeType":"ExpressionStatement","src":"4987:69:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4367,"name":"_repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"5074:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4368,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"5093:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5074:36:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"726570526577617264436f6e7374412073686f756c64206265203c205f72657075746174696f6e526577617264","id":4370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5112:47:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b45a84ccb9d5649fe214d4dc1e1c6ffa23bc2cdafdd1061352b6128e2c09bde2","typeString":"literal_string \"repRewardConstA should be < _reputationReward\""},"value":"repRewardConstA should be < _reputationReward"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b45a84ccb9d5649fe214d4dc1e1c6ffa23bc2cdafdd1061352b6128e2c09bde2","typeString":"literal_string \"repRewardConstA should be < _reputationReward\""}],"id":4366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5066:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:94:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4372,"nodeType":"ExpressionStatement","src":"5066:94:10"},{"expression":{"argumentTypes":null,"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4373,"name":"repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"5170:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4376,"name":"_repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"5203:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5195:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5195:25:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4374,"name":"toReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"5188:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$returns$_t_uint256_$","typeString":"function (uint216) pure returns (uint256)"}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5188:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5170:51:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4380,"nodeType":"ExpressionStatement","src":"5170:51:10"},{"expression":{"argumentTypes":null,"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4381,"name":"repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"5231:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5292:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":4386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5284:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5284:13:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4383,"name":"_repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4273,"src":"5257:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5249:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5249:25:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":4385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":15182,"src":"5249:34:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":4389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5249:49:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5231:67:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4391,"nodeType":"ExpressionStatement","src":"5231:67:10"},{"expression":{"argumentTypes":null,"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4392,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"5308:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4393,"name":"_batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4275,"src":"5326:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5308:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4395,"nodeType":"ExpressionStatement","src":"5308:34:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4399,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"5375:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":4396,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21182,"src":"5352:5:10","typeDescriptions":{"typeIdentifier":"t_super$_ContinuousLocking4Reputation_$5140","typeString":"contract super ContinuousLocking4Reputation"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"5352:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5352:38:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4401,"nodeType":"ExpressionStatement","src":"5352:38:10"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total amount of reputation that can be minted by this contract\n@param _startTime locking period start time, in seconds since epoch\n@param _redeemEnableTime redeem enable time\n@param _batchTime batch time (in seconds)\n@param _redeemEnableTime redeem enable time, in seconds since epoch\n redeem reputation can be done after this time.\n@param _maxLockingBatches - maximum number of locking batches that a user can lock (or extend) her tokens for\n@param _repRewardConstA - the total amount of reputation allocation per batch is calculated by :\n _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex)\n@param _repRewardConstB - the total amount of reputation allocation per batch is calculated by :\n _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex). _repRewardConstB must be < 1000\n@param _batchesIndexCap the length of the locking period (in batches).\n This value capped by BATCHES_HARDCAP .\n@param _token the locking token\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":4403,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":4280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4259,"name":"_avatar","nodeType":"VariableDeclaration","scope":4403,"src":"3749:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":4258,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3749:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":4261,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":4403,"src":"3773:25:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4260,"name":"uint256","nodeType":"ElementaryTypeName","src":"3773:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4263,"name":"_startTime","nodeType":"VariableDeclaration","scope":4403,"src":"3808:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4262,"name":"uint256","nodeType":"ElementaryTypeName","src":"3808:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4265,"name":"_batchTime","nodeType":"VariableDeclaration","scope":4403,"src":"3836:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4264,"name":"uint256","nodeType":"ElementaryTypeName","src":"3836:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4267,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":4403,"src":"3864:25:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4266,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4269,"name":"_maxLockingBatches","nodeType":"VariableDeclaration","scope":4403,"src":"3899:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4271,"name":"_repRewardConstA","nodeType":"VariableDeclaration","scope":4403,"src":"3935:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4270,"name":"uint256","nodeType":"ElementaryTypeName","src":"3935:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4273,"name":"_repRewardConstB","nodeType":"VariableDeclaration","scope":4403,"src":"3969:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4272,"name":"uint256","nodeType":"ElementaryTypeName","src":"3969:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4275,"name":"_batchesIndexCap","nodeType":"VariableDeclaration","scope":4403,"src":"4003:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4274,"name":"uint256","nodeType":"ElementaryTypeName","src":"4003:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4277,"name":"_token","nodeType":"VariableDeclaration","scope":4403,"src":"4037:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":4276,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"4037:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":4279,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":4403,"src":"4060:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4060:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3739:345:10"},"returnParameters":{"id":4281,"nodeType":"ParameterList","parameters":[],"src":"4102:0:10"},"scope":5140,"src":"3720:1677:10","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4586,"nodeType":"Block","src":"5703:1752:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4413,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5775:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":4414,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"5781:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5775:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2072656465656d456e61626c6554696d65","id":4416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5799:24:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""},"value":"now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""}],"id":4412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5767:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5767:57:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4418,"nodeType":"ExpressionStatement","src":"5767:57:10"},{"assignments":[4420],"declarations":[{"constant":false,"id":4420,"name":"locker","nodeType":"VariableDeclaration","scope":4586,"src":"5834:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4419,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"5834:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4426,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4421,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"5856:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4423,"indexExpression":{"argumentTypes":null,"id":4422,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4405,"src":"5864:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5856:21:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4425,"indexExpression":{"argumentTypes":null,"id":4424,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"5878:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5856:33:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5834:55:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4428,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"5907:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"5907:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5929:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5907:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6c6f636b696e67496420646f6573206e6f74206578697374","id":4432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5932:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""},"value":"_lockingId does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""}],"id":4427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5899:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5899:61:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4434,"nodeType":"ExpressionStatement","src":"5899:61:10"},{"assignments":[4436],"declarations":[{"constant":false,"id":4436,"name":"batchIndexToRedeemFrom","nodeType":"VariableDeclaration","scope":4586,"src":"5970:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint256","nodeType":"ElementaryTypeName","src":"5970:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4444,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4437,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"6004:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"6004:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4439,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"6025:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6004:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4441,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6003:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4442,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"6038:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6003:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5970:77:10"},{"assignments":[4446],"declarations":[{"constant":false,"id":4446,"name":"currentBatch","nodeType":"VariableDeclaration","scope":4586,"src":"6111:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4445,"name":"uint256","nodeType":"ElementaryTypeName","src":"6111:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4453,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4447,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"6135:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4448,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"6141:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6135:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6134:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4451,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"6154:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6134:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6111:52:10"},{"assignments":[4455],"declarations":[{"constant":false,"id":4455,"name":"lastBatchIndexToRedeem","nodeType":"VariableDeclaration","scope":4586,"src":"6173:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4454,"name":"uint256","nodeType":"ElementaryTypeName","src":"6173:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4464,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4460,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"6251:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"6251:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4458,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6224:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6224:26:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6224:41:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4456,"name":"currentBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"6207:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":20175,"src":"6207:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6207:59:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6173:93:10"},{"body":{"id":4546,"nodeType":"Block","src":"6380:682:10","statements":[{"assignments":[4474],"declarations":[{"constant":false,"id":4474,"name":"locking","nodeType":"VariableDeclaration","scope":4546,"src":"6394:21:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"},"typeName":{"contractScope":null,"id":4473,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"6394:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}},"value":null,"visibility":"internal"}],"id":4478,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4475,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"6418:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":4477,"indexExpression":{"argumentTypes":null,"id":4476,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6426:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6418:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6394:55:10"},{"assignments":[4480],"declarations":[{"constant":false,"id":4480,"name":"score","nodeType":"VariableDeclaration","scope":4546,"src":"6463:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4479,"name":"uint256","nodeType":"ElementaryTypeName","src":"6463:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4485,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4481,"name":"locking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"6479:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"6479:14:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4484,"indexExpression":{"argumentTypes":null,"id":4483,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"6494:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6479:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6463:42:10"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4486,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4480,"src":"6523:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6531:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6523:9:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4545,"nodeType":"IfStatement","src":"6519:533:10","trueBody":{"id":4544,"nodeType":"Block","src":"6534:518:10","statements":[{"expression":{"argumentTypes":null,"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4489,"name":"locking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"6552:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"6552:14:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4493,"indexExpression":{"argumentTypes":null,"id":4491,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"6567:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6552:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6581:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6552:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4496,"nodeType":"ExpressionStatement","src":"6552:30:10"},{"assignments":[4498],"declarations":[{"constant":false,"id":4498,"name":"batchReputationReward","nodeType":"VariableDeclaration","scope":4544,"src":"6600:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4497,"name":"uint256","nodeType":"ElementaryTypeName","src":"6600:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4502,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4500,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6653:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4499,"name":"getRepRewardPerBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5041,"src":"6632:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6632:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6600:76:10"},{"assignments":[4504],"declarations":[{"constant":false,"id":4504,"name":"repRelation","nodeType":"VariableDeclaration","scope":4544,"src":"6694:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4503,"name":"uint256","nodeType":"ElementaryTypeName","src":"6694:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4513,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4508,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4480,"src":"6735:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6727:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6727:14:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4506,"name":"toReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"6720:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$returns$_t_uint256_$","typeString":"function (uint216) pure returns (uint256)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4511,"name":"batchReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4498,"src":"6744:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4505,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"6716:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6716:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6694:72:10"},{"assignments":[4515],"declarations":[{"constant":false,"id":4515,"name":"redeemForBatch","nodeType":"VariableDeclaration","scope":4544,"src":"6784:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4514,"name":"uint256","nodeType":"ElementaryTypeName","src":"6784:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4525,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4517,"name":"repRelation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"6813:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4520,"name":"locking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"6841:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"6841:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6833:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6833:27:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4518,"name":"toReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"6826:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$returns$_t_uint256_$","typeString":"function (uint216) pure returns (uint256)"}},"id":4523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6826:35:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4516,"name":"div","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"6809:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6809:53:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6784:78:10"},{"expression":{"argumentTypes":null,"id":4531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4526,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"6880:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4529,"name":"redeemForBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4515,"src":"6908:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4527,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"6893:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6893:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6893:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:43:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4532,"nodeType":"ExpressionStatement","src":"6880:43:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4534,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"6953:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4535,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4405,"src":"6965:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4538,"name":"redeemForBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4515,"src":"6996:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4537,"name":"fromReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"6987:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint216_$","typeString":"function (uint256) pure returns (uint216)"}},"id":4539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6987:24:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6979:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":4540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6979:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4541,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"7014:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4533,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"6946:6:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":4542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6946:91:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4543,"nodeType":"EmitStatement","src":"6941:96:10"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4467,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6305:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4468,"name":"lastBatchIndexToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"6330:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6305:47:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4547,"initializationExpression":{"expression":{"argumentTypes":null,"id":4465,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6281:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4466,"nodeType":"ExpressionStatement","src":"6281:22:10"},"loopExpression":{"expression":{"argumentTypes":null,"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6354:24:10","subExpression":{"argumentTypes":null,"id":4470,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6354:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4472,"nodeType":"ExpressionStatement","src":"6354:24:10"},"nodeType":"ForStatement","src":"6276:786:10"},{"expression":{"argumentTypes":null,"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4548,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7071:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4551,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7101:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4550,"name":"fromReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"7092:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint216_$","typeString":"function (uint256) pure returns (uint216)"}},"id":4552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7092:20:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7084:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":4553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7084:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7071:42:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4555,"nodeType":"ExpressionStatement","src":"7071:42:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4557,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7131:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7144:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7131:14:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657075746174696f6e20746f2072656465656d2069732030","id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0ae440022e7f03fef978bbdd1d266da5c3f234f4cdaafb1f44084cb40b01664c","typeString":"literal_string \"reputation to redeem is 0\""},"value":"reputation to redeem is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ae440022e7f03fef978bbdd1d266da5c3f234f4cdaafb1f44084cb40b01664c","typeString":"literal_string \"reputation to redeem is 0\""}],"id":4556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7123:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7123:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4562,"nodeType":"ExpressionStatement","src":"7123:52:10"},{"expression":{"argumentTypes":null,"id":4568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4563,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"7234:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4566,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7282:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4564,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"7257:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"7257:24:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7257:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7234:59:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4569,"nodeType":"ExpressionStatement","src":"7234:59:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4577,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7371:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4578,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4405,"src":"7383:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4580,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"7405:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":4579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7397:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7397:15:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":4572,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"7331:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":4573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"7331:12:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7331:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4571,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7320:10:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:26:10","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":4576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"7320:50:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:93:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":4583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7415:32:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":4570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7303:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7303:145:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4585,"nodeType":"ExpressionStatement","src":"7303:145:10"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary to redeem.\n@param _lockingId the lockingId to redeem from.\n@return uint256 reputation rewarded","id":4587,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":4408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4405,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":4587,"src":"5626:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4404,"name":"address","nodeType":"ElementaryTypeName","src":"5626:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4407,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4587,"src":"5648:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4406,"name":"uint256","nodeType":"ElementaryTypeName","src":"5648:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5625:42:10"},"returnParameters":{"id":4411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4410,"name":"reputation","nodeType":"VariableDeclaration","scope":4587,"src":"5683:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4409,"name":"uint256","nodeType":"ElementaryTypeName","src":"5683:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5682:20:10"},"scope":5140,"src":"5610:1845:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4771,"nodeType":"Block","src":"7963:1567:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4604,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"7981:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7991:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7981:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f616d6f756e742073686f756c64206265203e2030","id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7994:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cfc112d098f640cb024c8c7ff3494adf719b170f69d1e56bc5504ce63aabc7fc","typeString":"literal_string \"_amount should be > 0\""},"value":"_amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfc112d098f640cb024c8c7ff3494adf719b170f69d1e56bc5504ce63aabc7fc","typeString":"literal_string \"_amount should be > 0\""}],"id":4603,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7973:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7973:45:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4609,"nodeType":"ExpressionStatement","src":"7973:45:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4611,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8090:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":4612,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"8097:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8090:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e67206973206e6f7420656e61626c656420796574202869742073746172747320617420737461727454696d6529","id":4614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8108:53:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a4f76a0c594202ef3591491dd8b9beb9c07b7d89b47abe775b1d5d09e868eebf","typeString":"literal_string \"locking is not enabled yet (it starts at startTime)\""},"value":"locking is not enabled yet (it starts at startTime)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4f76a0c594202ef3591491dd8b9beb9c07b7d89b47abe775b1d5d09e868eebf","typeString":"literal_string \"locking is not enabled yet (it starts at startTime)\""}],"id":4610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8082:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:80:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4616,"nodeType":"ExpressionStatement","src":"8082:80:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4618,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8180:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4619,"name":"maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"8191:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8180:28:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f706572696f642065786365656420746865206d6178696d756d20616c6c6f776564","id":4621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8210:36:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d5931cccac3a8838ed1ee2e37de453a3f3bcb181a8e2739d9ae0b78ca7ef0ddc","typeString":"literal_string \"_period exceed the maximum allowed\""},"value":"_period exceed the maximum allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5931cccac3a8838ed1ee2e37de453a3f3bcb181a8e2739d9ae0b78ca7ef0ddc","typeString":"literal_string \"_period exceed the maximum allowed\""}],"id":4617,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8172:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8172:75:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4623,"nodeType":"ExpressionStatement","src":"8172:75:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4625,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8265:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8275:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8265:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f706572696f64206d757374206265203e2030","id":4628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8278:21:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dbfc640277ddc4d42285c6a72cdc1a6d54e57b6fb13b460a5525a97aeb4ae60a","typeString":"literal_string \"_period must be > 0\""},"value":"_period must be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbfc640277ddc4d42285c6a72cdc1a6d54e57b6fb13b460a5525a97aeb4ae60a","typeString":"literal_string \"_period must be > 0\""}],"id":4624,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8257:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8257:43:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4630,"nodeType":"ExpressionStatement","src":"8257:43:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4634,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8343:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4632,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"8319:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8319:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8319:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4636,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8318:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4637,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"8356:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8318:53:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6261746368496e646578546f4c6f636b496e202b205f706572696f6420657863656564206d617820616c6c6f7765642062617463686573","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8381:58:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3927c0400f34d13616fb2f3d3b3c70c3481c84ad44e05a5669e34a1d5f2e2bd0","typeString":"literal_string \"_batchIndexToLockIn + _period exceed max allowed batches\""},"value":"_batchIndexToLockIn + _period exceed max allowed batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3927c0400f34d13616fb2f3d3b3c70c3481c84ad44e05a5669e34a1d5f2e2bd0","typeString":"literal_string \"_batchIndexToLockIn + _period exceed max allowed batches\""}],"id":4631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8310:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8310:130:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4641,"nodeType":"ExpressionStatement","src":"8310:130:10"},{"expression":{"argumentTypes":null,"id":4647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4642,"name":"lockCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"8450:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":4645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8480:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":4643,"name":"lockCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"8464:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8464:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8464:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8450:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4648,"nodeType":"ExpressionStatement","src":"8450:32:10"},{"expression":{"argumentTypes":null,"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4649,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"8492:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4650,"name":"lockCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"8504:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8492:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4652,"nodeType":"ExpressionStatement","src":"8492:23:10"},{"assignments":[4654],"declarations":[{"constant":false,"id":4654,"name":"locker","nodeType":"VariableDeclaration","scope":4771,"src":"8526:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4653,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"8526:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4661,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4655,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"8548:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4658,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4656,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8556:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8556:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8548:19:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4660,"indexExpression":{"argumentTypes":null,"id":4659,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"8568:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8548:30:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8526:52:10"},{"expression":{"argumentTypes":null,"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4662,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"8588:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"8588:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4665,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"8604:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8588:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4667,"nodeType":"ExpressionStatement","src":"8588:23:10"},{"expression":{"argumentTypes":null,"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4668,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"8621:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"8621:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4671,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8637:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8621:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4673,"nodeType":"ExpressionStatement","src":"8621:23:10"},{"expression":{"argumentTypes":null,"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4674,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"8708:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"8708:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4677,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8729:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8708:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4679,"nodeType":"ExpressionStatement","src":"8708:24:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8775:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8775:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4687,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21181,"src":"8795:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_ContinuousLocking4Reputation_$5140","typeString":"contract ContinuousLocking4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContinuousLocking4Reputation_$5140","typeString":"contract ContinuousLocking4Reputation"}],"id":4686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8787:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8787:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4689,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"8802:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4681,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"8751:5:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":4680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8743:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8743:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"8743:31:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8743:67:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4691,"nodeType":"ExpressionStatement","src":"8743:67:10"},{"assignments":[4693],"declarations":[{"constant":false,"id":4693,"name":"batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4771,"src":"8874:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4692,"name":"uint256","nodeType":"ElementaryTypeName","src":"8874:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4700,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4694,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8904:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4695,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"8910:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8904:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8903:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4698,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"8923:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8903:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8874:58:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4702,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"8950:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4703,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"8972:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8950:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6261746368496e646578546f4c6f636b496e206d75737420626520746865206f6e6520636f72726573706f6e64696e6720746f207468652063757272656e74206f6e65","id":4705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9001:70:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fcb4dea40c0d1c2e59d09b4eea2cc30c324101a88e8fda866a423c426320d109","typeString":"literal_string \"_batchIndexToLockIn must be the one corresponding to the current one\""},"value":"_batchIndexToLockIn must be the one corresponding to the current one"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fcb4dea40c0d1c2e59d09b4eea2cc30c324101a88e8fda866a423c426320d109","typeString":"literal_string \"_batchIndexToLockIn must be the one corresponding to the current one\""}],"id":4701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8942:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8942:130:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4707,"nodeType":"ExpressionStatement","src":"8942:130:10"},{"body":{"id":4754,"nodeType":"Block","src":"9163:239:10","statements":[{"assignments":[4719],"declarations":[{"constant":false,"id":4719,"name":"batch","nodeType":"VariableDeclaration","scope":4754,"src":"9177:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"},"typeName":{"contractScope":null,"id":4718,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"9177:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}},"value":null,"visibility":"internal"}],"id":4725,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4720,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"9199:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":4724,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4721,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"9207:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":4722,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9228:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9207:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9199:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9177:53:10"},{"assignments":[4727],"declarations":[{"constant":false,"id":4727,"name":"score","nodeType":"VariableDeclaration","scope":4754,"src":"9244:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4726,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4735,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4733,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"9278:7:10","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":4730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4728,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"9261:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4729,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9271:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9261:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4731,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9260:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"9260:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9260:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9244:42:10"},{"expression":{"argumentTypes":null,"id":4744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4736,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"9300:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"9300:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4742,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"9340:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4739,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"9319:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"9319:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"9319:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9319:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9300:46:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ExpressionStatement","src":"9300:46:10"},{"expression":{"argumentTypes":null,"id":4752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4746,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"9360:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"9360:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4750,"indexExpression":{"argumentTypes":null,"id":4748,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"9373:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9360:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4751,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"9386:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9360:31:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4753,"nodeType":"ExpressionStatement","src":"9360:31:10"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4712,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9145:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4713,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"9149:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9145:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4755,"initializationExpression":{"assignments":[4709],"declarations":[{"constant":false,"id":4709,"name":"p","nodeType":"VariableDeclaration","scope":4755,"src":"9130:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4708,"name":"uint256","nodeType":"ElementaryTypeName","src":"9130:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4711,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9142:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9130:13:10"},"loopExpression":{"expression":{"argumentTypes":null,"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9158:3:10","subExpression":{"argumentTypes":null,"id":4715,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9158:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4717,"nodeType":"ExpressionStatement","src":"9158:3:10"},"nodeType":"ForStatement","src":"9125:277:10"},{"expression":{"argumentTypes":null,"id":4761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4756,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"9412:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4759,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"9450:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4757,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"9430:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"9430:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9430:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9412:46:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4762,"nodeType":"ExpressionStatement","src":"9412:46:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4764,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9483:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9483:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4766,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"9495:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4767,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"9506:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4768,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"9515:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4763,"name":"LockToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4185,"src":"9473:9:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":4769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9473:50:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4770,"nodeType":"EmitStatement","src":"9468:55:10"}]},"documentation":"@dev lock function\n@param _amount the amount of token to lock\n@param _period the number of batches that the tokens will be locked for\n@param _batchIndexToLockIn the batch index in which the locking period starts.\nMust be the currently active batch.\n@return lockingId","id":4772,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":4598,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"7912:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4599,"modifierName":{"argumentTypes":null,"id":4597,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"7902:9:10","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"7902:25:10"}],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":4596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4589,"name":"_amount","nodeType":"VariableDeclaration","scope":4772,"src":"7800:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4588,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4591,"name":"_period","nodeType":"VariableDeclaration","scope":4772,"src":"7817:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4590,"name":"uint256","nodeType":"ElementaryTypeName","src":"7817:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4593,"name":"_batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4772,"src":"7834:27:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4592,"name":"uint256","nodeType":"ElementaryTypeName","src":"7834:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4595,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":4772,"src":"7863:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7863:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7799:87:10"},"returnParameters":{"id":4602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4601,"name":"lockingId","nodeType":"VariableDeclaration","scope":4772,"src":"7940:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4600,"name":"uint256","nodeType":"ElementaryTypeName","src":"7940:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7939:19:10"},"scope":5140,"src":"7786:1744:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4944,"nodeType":"Block","src":"9990:1501:10","statements":[{"assignments":[4787],"declarations":[{"constant":false,"id":4787,"name":"locker","nodeType":"VariableDeclaration","scope":4944,"src":"10000:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4786,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"10000:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4794,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4788,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"10022:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4791,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10030:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10030:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10022:19:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4793,"indexExpression":{"argumentTypes":null,"id":4792,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"10042:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10022:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10000:53:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4796,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"10071:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"10071:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10093:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10071:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6c6f636b696e67496420646f6573206e6f74206578697374","id":4800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10096:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""},"value":"_lockingId does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""}],"id":4795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10063:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10063:61:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4802,"nodeType":"ExpressionStatement","src":"10063:61:10"},{"assignments":[4804],"declarations":[{"constant":false,"id":4804,"name":"remainBatches","nodeType":"VariableDeclaration","scope":4944,"src":"10233:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4803,"name":"uint256","nodeType":"ElementaryTypeName","src":"10233:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4823,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4821,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"10346:19:10","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":4818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4814,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"10319:9:10","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":4811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4808,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"10290:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"10290:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":4810,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"10304:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10290:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4805,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"10267:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"10267:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10267:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10267:47:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10267:51:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10267:62:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4816,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10266:64:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4817,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"10331:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10266:74:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4819,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10265:76:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10265:80:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10265:101:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10233:133:10"},{"assignments":[4825],"declarations":[{"constant":false,"id":4825,"name":"batchesCountFromCurrent","nodeType":"VariableDeclaration","scope":4944,"src":"10376:31:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4824,"name":"uint256","nodeType":"ElementaryTypeName","src":"10376:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4830,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4828,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"10428:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4826,"name":"remainBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4804,"src":"10410:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10410:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10410:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10376:66:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4832,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"10460:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4833,"name":"maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"10487:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10460:44:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f64206578636565647320746865206d6178696d756d20616c6c6f776564","id":4835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10506:44:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_78f5e7fd96f9a8f37139d5bd714882553509854f71aeb7d49c2657ae96bd1bb4","typeString":"literal_string \"locking period exceeds the maximum allowed\""},"value":"locking period exceeds the maximum allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78f5e7fd96f9a8f37139d5bd714882553509854f71aeb7d49c2657ae96bd1bb4","typeString":"literal_string \"locking period exceeds the maximum allowed\""}],"id":4831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10452:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10452:99:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4837,"nodeType":"ExpressionStatement","src":"10452:99:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4839,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"10569:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10585:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10569:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f657874656e64506572696f64206d757374206265203e2030","id":4842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10588:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c577061e2e7c238d5afe42c1aa63dc826b2e7028791cfaf25bbf7730d131d2a6","typeString":"literal_string \"_extendPeriod must be > 0\""},"value":"_extendPeriod must be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c577061e2e7c238d5afe42c1aa63dc826b2e7028791cfaf25bbf7730d131d2a6","typeString":"literal_string \"_extendPeriod must be > 0\""}],"id":4838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10561:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10561:55:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4844,"nodeType":"ExpressionStatement","src":"10561:55:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4848,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"10659:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4846,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"10635:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10635:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10635:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4850,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10634:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4851,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"10688:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10634:69:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f657874656e64506572696f6420657863656564206d617820616c6c6f7765642062617463686573","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10713:42:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dd93fc059c33bf9e783e757ac4d65456721b84bc3dac49f177222597d8f4bfec","typeString":"literal_string \"_extendPeriod exceed max allowed batches\""},"value":"_extendPeriod exceed max allowed batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd93fc059c33bf9e783e757ac4d65456721b84bc3dac49f177222597d8f4bfec","typeString":"literal_string \"_extendPeriod exceed max allowed batches\""}],"id":4845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10626:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10626:130:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4855,"nodeType":"ExpressionStatement","src":"10626:130:10"},{"assignments":[4857],"declarations":[{"constant":false,"id":4857,"name":"batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4944,"src":"10820:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10820:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4864,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4858,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"10850:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4859,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"10856:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10850:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10849:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4862,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"10869:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10849:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10820:58:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4866,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4857,"src":"10896:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4867,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"10918:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10896:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e67206973206e6f7420616374697665","id":4869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10939:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_17b467c90cd73607a64b1beb9311020542a46527799d1c4353021dae893605d8","typeString":"literal_string \"locking is not active\""},"value":"locking is not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17b467c90cd73607a64b1beb9311020542a46527799d1c4353021dae893605d8","typeString":"literal_string \"locking is not active\""}],"id":4865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10888:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10888:75:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4871,"nodeType":"ExpressionStatement","src":"10888:75:10"},{"body":{"id":4925,"nodeType":"Block","src":"11068:292:10","statements":[{"assignments":[4883],"declarations":[{"constant":false,"id":4883,"name":"batch","nodeType":"VariableDeclaration","scope":4925,"src":"11082:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"},"typeName":{"contractScope":null,"id":4882,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"11082:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}},"value":null,"visibility":"internal"}],"id":4889,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4884,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"11104:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":4888,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4885,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4857,"src":"11112:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":4886,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11133:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11112:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11104:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11082:53:10"},{"assignments":[4891],"declarations":[{"constant":false,"id":4891,"name":"score","nodeType":"VariableDeclaration","scope":4925,"src":"11149:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4890,"name":"uint256","nodeType":"ElementaryTypeName","src":"11149:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4900,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4897,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"11199:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11199:13:10","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":4894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4892,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"11166:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4893,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11192:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11166:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11165:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"11165:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11165:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11149:64:10"},{"expression":{"argumentTypes":null,"id":4915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4901,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11227:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"11227:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4910,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11278:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"11278:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4913,"indexExpression":{"argumentTypes":null,"id":4912,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"11291:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11278:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4907,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"11267:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4904,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11246:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"11246:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11246:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11246:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"11246:31:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11246:57:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11227:76:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4916,"nodeType":"ExpressionStatement","src":"11227:76:10"},{"expression":{"argumentTypes":null,"id":4923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4917,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11317:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"11317:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4921,"indexExpression":{"argumentTypes":null,"id":4919,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"11330:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11317:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4922,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"11344:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11317:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4924,"nodeType":"ExpressionStatement","src":"11317:32:10"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4876,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11034:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4877,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"11038:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11034:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4926,"initializationExpression":{"assignments":[4873],"declarations":[{"constant":false,"id":4873,"name":"p","nodeType":"VariableDeclaration","scope":4926,"src":"11019:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"11019:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4875,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11031:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11019:13:10"},"loopExpression":{"expression":{"argumentTypes":null,"id":4880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11063:3:10","subExpression":{"argumentTypes":null,"id":4879,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11063:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4881,"nodeType":"ExpressionStatement","src":"11063:3:10"},"nodeType":"ForStatement","src":"11014:346:10"},{"expression":{"argumentTypes":null,"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4927,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"11369:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"11369:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4933,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"11403:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4930,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"11385:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"11385:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11385:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11385:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11369:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4936,"nodeType":"ExpressionStatement","src":"11369:48:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4938,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"11446:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11446:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4940,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"11458:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4941,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"11470:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4937,"name":"ExtendLocking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4193,"src":"11432:13:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":4942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11432:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4943,"nodeType":"EmitStatement","src":"11427:57:10"}]},"documentation":"@dev extendLocking function\n@param _extendPeriod the period to extend the locking. in batchTime.\n@param _batchIndexToLockIn index of the batch in which to start locking.\n@param _lockingId the locking id to extend","id":4945,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":4783,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"9970:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4784,"modifierName":{"argumentTypes":null,"id":4782,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"9960:9:10","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"9960:25:10"}],"name":"extendLocking","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4774,"name":"_extendPeriod","nodeType":"VariableDeclaration","scope":4945,"src":"9825:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4773,"name":"uint256","nodeType":"ElementaryTypeName","src":"9825:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4776,"name":"_batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4945,"src":"9856:27:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4775,"name":"uint256","nodeType":"ElementaryTypeName","src":"9856:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4778,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4945,"src":"9893:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4777,"name":"uint256","nodeType":"ElementaryTypeName","src":"9893:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4780,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":4945,"src":"9921:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9921:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9815:129:10"},"returnParameters":{"id":4785,"nodeType":"ParameterList","parameters":[],"src":"9990:0:10"},"scope":5140,"src":"9793:1698:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5017,"nodeType":"Block","src":"11762:545:10","statements":[{"assignments":[4955],"declarations":[{"constant":false,"id":4955,"name":"locker","nodeType":"VariableDeclaration","scope":5017,"src":"11772:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4954,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"11772:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4961,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4956,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"11794:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4958,"indexExpression":{"argumentTypes":null,"id":4957,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"11802:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11794:21:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4960,"indexExpression":{"argumentTypes":null,"id":4959,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4949,"src":"11816:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11794:33:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11772:55:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4963,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"11845:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11845:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11861:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11845:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f20616d6f756e74206c65667420746f20756e6c6f636b","id":4967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11864:26:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4aca0acf05fb3dc91653337f52224cb67cb93bd667f707d7a615b7acb7d9bfbb","typeString":"literal_string \"no amount left to unlock\""},"value":"no amount left to unlock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4aca0acf05fb3dc91653337f52224cb67cb93bd667f707d7a615b7acb7d9bfbb","typeString":"literal_string \"no amount left to unlock\""}],"id":4962,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11837:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11837:54:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4969,"nodeType":"ExpressionStatement","src":"11837:54:10"},{"expression":{"argumentTypes":null,"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4970,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"11901:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4971,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"11910:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11910:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11901:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4974,"nodeType":"ExpressionStatement","src":"11901:22:10"},{"expression":{"argumentTypes":null,"id":4979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4975,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"11933:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11933:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11949:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11933:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4980,"nodeType":"ExpressionStatement","src":"11933:17:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4982,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"12022:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12022:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4987,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"12063:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"12063:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":4989,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"12077:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12063:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4984,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"12040:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"12040:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"12040:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12040:47:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12022:65:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f64206973207374696c6c20616374697665","id":4993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12097:32:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c40486bf9146fcb6e8658b19b0782b2d089e98eaeae3475c075495b0bd3e196d","typeString":"literal_string \"locking period is still active\""},"value":"locking period is still active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c40486bf9146fcb6e8658b19b0782b2d089e98eaeae3475c075495b0bd3e196d","typeString":"literal_string \"locking period is still active\""}],"id":4981,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12014:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12014:116:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4995,"nodeType":"ExpressionStatement","src":"12014:116:10"},{"expression":{"argumentTypes":null,"id":5001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4996,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12140:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4999,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"12178:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4997,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12158:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"12158:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12158:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12140:45:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5002,"nodeType":"ExpressionStatement","src":"12140:45:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5007,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"12223:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5008,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"12237:6:10","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":5004,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"12203:5:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":5003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12195:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12195:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"12195:27:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12195:49:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5010,"nodeType":"ExpressionStatement","src":"12195:49:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5012,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4949,"src":"12267:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5013,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"12279:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"12293:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5011,"name":"Release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"12259:7:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12259:41:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5016,"nodeType":"EmitStatement","src":"12254:46:10"}]},"documentation":"@dev release function\n@param _beneficiary the beneficiary for the release\n@param _lockingId the locking id to release\n@return bool","id":5018,"implemented":true,"kind":"function","modifiers":[],"name":"release","nodeType":"FunctionDefinition","parameters":{"id":4950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4947,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5018,"src":"11689:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4946,"name":"address","nodeType":"ElementaryTypeName","src":"11689:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4949,"name":"_lockingId","nodeType":"VariableDeclaration","scope":5018,"src":"11711:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4948,"name":"uint256","nodeType":"ElementaryTypeName","src":"11711:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11688:42:10"},"returnParameters":{"id":4953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4952,"name":"amount","nodeType":"VariableDeclaration","scope":5018,"src":"11746:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4951,"name":"uint256","nodeType":"ElementaryTypeName","src":"11746:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11745:16:10"},"scope":5140,"src":"11672:635:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5040,"nodeType":"Block","src":"12681:143:10","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5025,"name":"_batchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"12695:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":5026,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"12710:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12695:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5039,"nodeType":"IfStatement","src":"12691:127:10","trueBody":{"id":5038,"nodeType":"Block","src":"12727:91:10","statements":[{"expression":{"argumentTypes":null,"id":5036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5028,"name":"repReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5023,"src":"12741:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5030,"name":"repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"12757:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5033,"name":"_batchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"12794:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":5031,"name":"repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"12774:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pow","nodeType":"MemberAccess","referencedDeclaration":15159,"src":"12774:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12774:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5029,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12753:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12753:54:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12741:66:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5037,"nodeType":"ExpressionStatement","src":"12741:66:10"}]}}]},"documentation":"@dev getRepRewardPerBatch function\nthe calculation is done the following formula:\nRepReward = repRewardConstA * (repRewardConstB**_batchIndex)\n@param _batchIndex the index of the batch to calc rep reward of\n@return repReward","id":5041,"implemented":true,"kind":"function","modifiers":[],"name":"getRepRewardPerBatch","nodeType":"FunctionDefinition","parameters":{"id":5021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5020,"name":"_batchIndex","nodeType":"VariableDeclaration","scope":5041,"src":"12620:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5019,"name":"uint256","nodeType":"ElementaryTypeName","src":"12620:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12619:22:10"},"returnParameters":{"id":5024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5023,"name":"repReward","nodeType":"VariableDeclaration","scope":5041,"src":"12662:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5022,"name":"uint256","nodeType":"ElementaryTypeName","src":"12662:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12661:19:10"},"scope":5140,"src":"12590:234:10","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":5057,"nodeType":"Block","src":"13133:63:10","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5050,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"13150:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":5052,"indexExpression":{"argumentTypes":null,"id":5051,"name":"_batchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5043,"src":"13158:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13150:20:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"id":5053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"13150:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5055,"indexExpression":{"argumentTypes":null,"id":5054,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5045,"src":"13178:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13150:39:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5049,"id":5056,"nodeType":"Return","src":"13143:46:10"}]},"documentation":"@dev getLockingIdScore function\nreturn score of lockingId at specific bach index\n@param _batchIndex batch index\n@param _lockingId lockingId\n@return score","id":5058,"implemented":true,"kind":"function","modifiers":[],"name":"getLockingIdScore","nodeType":"FunctionDefinition","parameters":{"id":5046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5043,"name":"_batchIndex","nodeType":"VariableDeclaration","scope":5058,"src":"13062:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5042,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5045,"name":"_lockingId","nodeType":"VariableDeclaration","scope":5058,"src":"13084:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5044,"name":"uint256","nodeType":"ElementaryTypeName","src":"13084:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13061:42:10"},"returnParameters":{"id":5049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5048,"name":"","nodeType":"VariableDeclaration","scope":5058,"src":"13124:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5047,"name":"uint256","nodeType":"ElementaryTypeName","src":"13124:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13123:9:10"},"scope":5140,"src":"13035:161:10","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":5087,"nodeType":"Block","src":"13350:309:10","statements":[{"assignments":[5068],"declarations":[{"constant":false,"id":5068,"name":"res","nodeType":"VariableDeclaration","scope":5087,"src":"13527:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5067,"name":"uint256","nodeType":"ElementaryTypeName","src":"13527:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":5072,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5069,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"13541:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":5070,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"13549:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13541:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13527:27:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5074,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5068,"src":"13572:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":5075,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"13576:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13572:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":5077,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"13585:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13572:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5265616c4d617468206d756c206f766572666c6f77","id":5079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13592:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""},"value":"RealMath mul overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""}],"id":5073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13564:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13564:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5081,"nodeType":"ExpressionStatement","src":"13564:52:10"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5082,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5068,"src":"13634:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"argumentTypes":null,"id":5083,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"13641:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13634:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5085,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13633:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5066,"id":5086,"nodeType":"Return","src":"13626:26:10"}]},"documentation":"Multiply one real by another. Truncates overflows.","id":5088,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":5063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"name":"realA","nodeType":"VariableDeclaration","scope":5088,"src":"13289:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"13289:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5062,"name":"realB","nodeType":"VariableDeclaration","scope":5088,"src":"13304:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5061,"name":"uint256","nodeType":"ElementaryTypeName","src":"13304:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13288:30:10"},"returnParameters":{"id":5066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5065,"name":"","nodeType":"VariableDeclaration","scope":5088,"src":"13341:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5064,"name":"uint256","nodeType":"ElementaryTypeName","src":"13341:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13340:9:10"},"scope":5140,"src":"13276:383:10","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":5101,"nodeType":"Block","src":"13796:49:10","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5096,"name":"ipart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5090,"src":"13821:5:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":5095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13813:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13813:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":5098,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"13830:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13813:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5094,"id":5100,"nodeType":"Return","src":"13806:32:10"}]},"documentation":"Convert an integer to a real. Preserves sign.","id":5102,"implemented":true,"kind":"function","modifiers":[],"name":"toReal","nodeType":"FunctionDefinition","parameters":{"id":5091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5090,"name":"ipart","nodeType":"VariableDeclaration","scope":5102,"src":"13750:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":5089,"name":"uint216","nodeType":"ElementaryTypeName","src":"13750:7:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"13749:15:10"},"returnParameters":{"id":5094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5093,"name":"","nodeType":"VariableDeclaration","scope":5102,"src":"13787:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5092,"name":"uint256","nodeType":"ElementaryTypeName","src":"13787:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13786:9:10"},"scope":5140,"src":"13734:111:10","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":5115,"nodeType":"Block","src":"13989:54:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5110,"name":"_realValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"14014:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":5111,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"14027:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14014:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14006:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14006:30:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":5108,"id":5114,"nodeType":"Return","src":"13999:37:10"}]},"documentation":"Convert a real to an integer. Preserves sign.","id":5116,"implemented":true,"kind":"function","modifiers":[],"name":"fromReal","nodeType":"FunctionDefinition","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5104,"name":"_realValue","nodeType":"VariableDeclaration","scope":5116,"src":"13938:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5103,"name":"uint256","nodeType":"ElementaryTypeName","src":"13938:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13937:20:10"},"returnParameters":{"id":5108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5107,"name":"","nodeType":"VariableDeclaration","scope":5116,"src":"13980:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":5106,"name":"uint216","nodeType":"ElementaryTypeName","src":"13980:7:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"13979:9:10"},"scope":5140,"src":"13920:123:10","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":5138,"nodeType":"Block","src":"14218:261:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5127,"name":"realNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"14418:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14410:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14410:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":5129,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"14435:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14410:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14409:35:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5133,"name":"realDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5120,"src":"14455:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14447:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14447:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14409:62:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14401:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14401:71:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5124,"id":5137,"nodeType":"Return","src":"14394:78:10"}]},"documentation":"Divide one real by another real. Truncates overflows.","id":5139,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":5121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5118,"name":"realNumerator","nodeType":"VariableDeclaration","scope":5139,"src":"14139:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5117,"name":"uint256","nodeType":"ElementaryTypeName","src":"14139:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5120,"name":"realDenominator","nodeType":"VariableDeclaration","scope":5139,"src":"14162:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5119,"name":"uint256","nodeType":"ElementaryTypeName","src":"14162:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14138:48:10"},"returnParameters":{"id":5124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5123,"name":"","nodeType":"VariableDeclaration","scope":5139,"src":"14209:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5122,"name":"uint256","nodeType":"ElementaryTypeName","src":"14209:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14208:9:10"},"scope":5140,"src":"14126:353:10","stateMutability":"pure","superFunction":null,"visibility":"private"}],"scope":5141,"src":"389:14093:10"}],"src":"0:14483:10"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContinuousLocking4Reputation.sol","exportedSymbols":{"ContinuousLocking4Reputation":[5140]},"id":5141,"nodeType":"SourceUnit","nodes":[{"id":4133,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:10"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":4134,"nodeType":"ImportDirective","scope":5141,"sourceUnit":20396,"src":"25:59:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/Math.sol","file":"openzeppelin-solidity/contracts/math/Math.sol","id":4135,"nodeType":"ImportDirective","scope":5141,"sourceUnit":20209,"src":"85:55:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":4136,"nodeType":"ImportDirective","scope":5141,"sourceUnit":1798,"src":"141:38:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":4137,"nodeType":"ImportDirective","scope":5141,"sourceUnit":2258,"src":"180:31:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":4138,"nodeType":"ImportDirective","scope":5141,"sourceUnit":2303,"src":"212:25:10","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/libs/RealMath.sol","file":"@daostack/infra/contracts/libs/RealMath.sol","id":4140,"nodeType":"ImportDirective","scope":5141,"sourceUnit":15237,"src":"238:71:10","symbolAliases":[{"foreign":4139,"local":null}],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":4141,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"430:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":4142,"nodeType":"InheritanceSpecifier","src":"430:9:10"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A scheme for continuous locking ERC20 Token for reputation","fullyImplemented":true,"id":5140,"linearizedBaseContracts":[5140,2302],"name":"ContinuousLocking4Reputation","nodeType":"ContractDefinition","nodes":[{"id":4145,"libraryName":{"contractScope":null,"id":4143,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"452:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"446:27:10","typeName":{"id":4144,"name":"uint256","nodeType":"ElementaryTypeName","src":"465:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":4148,"libraryName":{"contractScope":null,"id":4146,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"484:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"478:28:10","typeName":{"id":4147,"name":"address","nodeType":"ElementaryTypeName","src":"498:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":4151,"libraryName":{"contractScope":null,"id":4149,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"517:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"511:27:10","typeName":{"id":4150,"name":"uint216","nodeType":"ElementaryTypeName","src":"530:7:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}},{"id":4154,"libraryName":{"contractScope":null,"id":4152,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"549:8:10","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"543:27:10","typeName":{"id":4153,"name":"uint256","nodeType":"ElementaryTypeName","src":"562:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":4157,"libraryName":{"contractScope":null,"id":4155,"name":"Math","nodeType":"UserDefinedTypeName","referencedDeclaration":20208,"src":"581:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_Math_$20208","typeString":"library Math"}},"nodeType":"UsingForDirective","src":"575:23:10","typeName":{"id":4156,"name":"uint256","nodeType":"ElementaryTypeName","src":"590:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":4167,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":4166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4159,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4167,"src":"617:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4158,"name":"uint256","nodeType":"ElementaryTypeName","src":"617:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4161,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":4167,"src":"645:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4160,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4163,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":4167,"src":"675:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4162,"name":"uint256","nodeType":"ElementaryTypeName","src":"675:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4165,"indexed":false,"name":"_batchIndex","nodeType":"VariableDeclaration","scope":4167,"src":"692:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4164,"name":"uint256","nodeType":"ElementaryTypeName","src":"692:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"616:96:10"},"src":"604:109:10"},{"anonymous":false,"documentation":null,"id":4175,"name":"Release","nodeType":"EventDefinition","parameters":{"id":4174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4169,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4175,"src":"732:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4168,"name":"uint256","nodeType":"ElementaryTypeName","src":"732:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4171,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":4175,"src":"760:28:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4170,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4173,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":4175,"src":"790:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4172,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"731:75:10"},"src":"718:89:10"},{"anonymous":false,"documentation":null,"id":4185,"name":"LockToken","nodeType":"EventDefinition","parameters":{"id":4184,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4177,"indexed":true,"name":"_locker","nodeType":"VariableDeclaration","scope":4185,"src":"828:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4176,"name":"address","nodeType":"ElementaryTypeName","src":"828:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4179,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4185,"src":"853:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4178,"name":"uint256","nodeType":"ElementaryTypeName","src":"853:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4181,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":4185,"src":"881:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4180,"name":"uint256","nodeType":"ElementaryTypeName","src":"881:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4183,"indexed":false,"name":"_period","nodeType":"VariableDeclaration","scope":4185,"src":"898:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4182,"name":"uint256","nodeType":"ElementaryTypeName","src":"898:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"827:87:10"},"src":"812:103:10"},{"anonymous":false,"documentation":null,"id":4193,"name":"ExtendLocking","nodeType":"EventDefinition","parameters":{"id":4192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4187,"indexed":true,"name":"_locker","nodeType":"VariableDeclaration","scope":4193,"src":"940:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4186,"name":"address","nodeType":"ElementaryTypeName","src":"940:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4189,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4193,"src":"965:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4188,"name":"uint256","nodeType":"ElementaryTypeName","src":"965:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4191,"indexed":false,"name":"_extendPeriod","nodeType":"VariableDeclaration","scope":4193,"src":"993:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4190,"name":"uint256","nodeType":"ElementaryTypeName","src":"993:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"939:76:10"},"src":"920:96:10"},{"canonicalName":"ContinuousLocking4Reputation.Batch","id":4200,"members":[{"constant":false,"id":4195,"name":"totalScore","nodeType":"VariableDeclaration","scope":4200,"src":"1045:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1045:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4199,"name":"scores","nodeType":"VariableDeclaration","scope":4200,"src":"1122:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":4198,"keyType":{"id":4196,"name":"uint256","nodeType":"ElementaryTypeName","src":"1130:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1122:22:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":4197,"name":"uint","nodeType":"ElementaryTypeName","src":"1139:4:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"}],"name":"Batch","nodeType":"StructDefinition","scope":5140,"src":"1022:136:10","visibility":"public"},{"canonicalName":"ContinuousLocking4Reputation.Lock","id":4207,"members":[{"constant":false,"id":4202,"name":"amount","nodeType":"VariableDeclaration","scope":4207,"src":"1186:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4201,"name":"uint256","nodeType":"ElementaryTypeName","src":"1186:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4204,"name":"lockingTime","nodeType":"VariableDeclaration","scope":4207,"src":"1210:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1210:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4206,"name":"period","nodeType":"VariableDeclaration","scope":4207,"src":"1239:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4205,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Lock","nodeType":"StructDefinition","scope":5140,"src":"1164:96:10","visibility":"public"},{"constant":false,"id":4213,"name":"lockers","nodeType":"VariableDeclaration","scope":5140,"src":"1321:57:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock))"},"typeName":{"id":4212,"keyType":{"id":4208,"name":"address","nodeType":"ElementaryTypeName","src":"1329:7:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1321:42:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock))"},"valueType":{"id":4211,"keyType":{"id":4209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1348:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1340:22:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock)"},"valueType":{"contractScope":null,"id":4210,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"1357:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}}}},"value":null,"visibility":"public"},{"constant":false,"id":4217,"name":"batches","nodeType":"VariableDeclaration","scope":5140,"src":"1427:40:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch)"},"typeName":{"id":4216,"keyType":{"id":4214,"name":"uint256","nodeType":"ElementaryTypeName","src":"1435:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1427:25:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch)"},"valueType":{"contractScope":null,"id":4215,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"1446:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}}},"value":null,"visibility":"public"},{"constant":false,"id":4219,"name":"avatar","nodeType":"VariableDeclaration","scope":5140,"src":"1474:20:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":4218,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1474:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":4221,"name":"reputationRewardLeft","nodeType":"VariableDeclaration","scope":5140,"src":"1500:35:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1500:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4223,"name":"startTime","nodeType":"VariableDeclaration","scope":5140,"src":"1602:24:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1602:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4225,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":5140,"src":"1701:31:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4224,"name":"uint256","nodeType":"ElementaryTypeName","src":"1701:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4227,"name":"maxLockingBatches","nodeType":"VariableDeclaration","scope":5140,"src":"1738:32:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4226,"name":"uint256","nodeType":"ElementaryTypeName","src":"1738:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4229,"name":"batchTime","nodeType":"VariableDeclaration","scope":5140,"src":"1776:24:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4228,"name":"uint256","nodeType":"ElementaryTypeName","src":"1776:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4231,"name":"token","nodeType":"VariableDeclaration","scope":5140,"src":"1843:19:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":4230,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1843:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":4233,"name":"lockCounter","nodeType":"VariableDeclaration","scope":5140,"src":"1894:26:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4232,"name":"uint256","nodeType":"ElementaryTypeName","src":"1894:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4235,"name":"totalLockedLeft","nodeType":"VariableDeclaration","scope":5140,"src":"1951:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4234,"name":"uint256","nodeType":"ElementaryTypeName","src":"1951:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4237,"name":"repRewardConstA","nodeType":"VariableDeclaration","scope":5140,"src":"2049:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4236,"name":"uint256","nodeType":"ElementaryTypeName","src":"2049:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4239,"name":"repRewardConstB","nodeType":"VariableDeclaration","scope":5140,"src":"2085:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4238,"name":"uint256","nodeType":"ElementaryTypeName","src":"2085:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":4241,"name":"batchesIndexCap","nodeType":"VariableDeclaration","scope":5140,"src":"2121:30:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4240,"name":"uint256","nodeType":"ElementaryTypeName","src":"2121:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":true,"id":4244,"name":"REAL_FBITS","nodeType":"VariableDeclaration","scope":5140,"src":"2158:40:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4242,"name":"uint256","nodeType":"ElementaryTypeName","src":"2158:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3430","id":4243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2196:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"visibility":"private"},{"constant":true,"id":4251,"name":"REAL_ONE","nodeType":"VariableDeclaration","scope":5140,"src":"2264:60:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4245,"name":"uint256","nodeType":"ElementaryTypeName","src":"2264:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":4247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2308:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":4246,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2300:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":4248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2300:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"argumentTypes":null,"id":4249,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"2314:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2300:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"constant":true,"id":4254,"name":"BATCHES_INDEX_HARDCAP","nodeType":"VariableDeclaration","scope":5140,"src":"2330:52:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4252,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"313030","id":4253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2379:3:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"visibility":"private"},{"constant":true,"id":4257,"name":"MAX_LOCKING_BATCHES_HARDCAP","nodeType":"VariableDeclaration","scope":5140,"src":"2388:56:10","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4255,"name":"uint256","nodeType":"ElementaryTypeName","src":"2388:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3234","id":4256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2442:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_24_by_1","typeString":"int_const 24"},"value":"24"},"visibility":"public"},{"body":{"id":4402,"nodeType":"Block","src":"4102:1295:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":4287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4283,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"4120:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4137:1:10","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":4284,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"4130:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":4286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4130:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4120:19:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":4288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4141:29:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":4282,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4112:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4112:59:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4290,"nodeType":"ExpressionStatement","src":"4112:59:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":4296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4292,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"4189:7:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":4294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4207:1:10","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":4293,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"4200:6:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":4295,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4200:9:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4189:20:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":4297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4211:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":4291,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4181:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4181:54:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4299,"nodeType":"ExpressionStatement","src":"4181:54:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4301,"name":"_batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4265,"src":"4313:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"3135","id":4302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4326:2:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_15_by_1","typeString":"int_const 15"},"value":"15"},"src":"4313:15:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"626174636854696d652073686f756c64206265203e203135","id":4304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4330:26:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_73cafc5715007fae943db42f66163c5adbf0dec39e24e1d57ee46910d6c6b135","typeString":"literal_string \"batchTime should be > 15\""},"value":"batchTime should be > 15"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_73cafc5715007fae943db42f66163c5adbf0dec39e24e1d57ee46910d6c6b135","typeString":"literal_string \"batchTime should be > 15\""}],"id":4300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4305:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4305:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4306,"nodeType":"ExpressionStatement","src":"4305:52:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4308,"name":"_maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"4375:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4309,"name":"MAX_LOCKING_BATCHES_HARDCAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4257,"src":"4397:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4375:49:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d61784c6f636b696e67426174636865732073686f756c64206265203c3d204d41585f4c4f434b494e475f424154434845535f48415244434150","id":4311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4434:60:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d5b5e8feede0268b4baad6b5c3ece92d09a727e8254338f1545a1b2583752883","typeString":"literal_string \"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP\""},"value":"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5b5e8feede0268b4baad6b5c3ece92d09a727e8254338f1545a1b2583752883","typeString":"literal_string \"maxLockingBatches should be <= MAX_LOCKING_BATCHES_HARDCAP\""}],"id":4307,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4367:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4367:128:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4313,"nodeType":"ExpressionStatement","src":"4367:128:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4315,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"4513:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4318,"name":"_batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4265,"src":"4549:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4316,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4263,"src":"4534:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4534:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4534:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4513:47:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f72656465656d456e61626c6554696d65203e3d205f737461727454696d652b5f626174636854696d65","id":4321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4570:44:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f399bd55f216e6edc793c18b8c97d263099791bc13b77584ca101b8c37a3319c","typeString":"literal_string \"_redeemEnableTime >= _startTime+_batchTime\""},"value":"_redeemEnableTime >= _startTime+_batchTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f399bd55f216e6edc793c18b8c97d263099791bc13b77584ca101b8c37a3319c","typeString":"literal_string \"_redeemEnableTime >= _startTime+_batchTime\""}],"id":4314,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4505:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4505:110:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4323,"nodeType":"ExpressionStatement","src":"4505:110:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4325,"name":"_batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4275,"src":"4633:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4326,"name":"BATCHES_INDEX_HARDCAP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4254,"src":"4653:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4633:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f62617463686573496e646578436170203e20424154434845535f494e4445585f48415244434150","id":4328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4676:42:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6192ecbe363f6f8f208ad218f5510ee81fdce0f9ab07e7a1d8fe7ef08364c082","typeString":"literal_string \"_batchesIndexCap > BATCHES_INDEX_HARDCAP\""},"value":"_batchesIndexCap > BATCHES_INDEX_HARDCAP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6192ecbe363f6f8f208ad218f5510ee81fdce0f9ab07e7a1d8fe7ef08364c082","typeString":"literal_string \"_batchesIndexCap > BATCHES_INDEX_HARDCAP\""}],"id":4324,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4625:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4625:94:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4330,"nodeType":"ExpressionStatement","src":"4625:94:10"},{"expression":{"argumentTypes":null,"id":4333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4331,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"4729:5:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4332,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4277,"src":"4737:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"4729:14:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":4334,"nodeType":"ExpressionStatement","src":"4729:14:10"},{"expression":{"argumentTypes":null,"id":4337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4335,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"4753:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4336,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4259,"src":"4762:7:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4753:16:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":4338,"nodeType":"ExpressionStatement","src":"4753:16:10"},{"expression":{"argumentTypes":null,"id":4341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4339,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"4779:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4340,"name":"_startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4263,"src":"4791:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4779:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4342,"nodeType":"ExpressionStatement","src":"4779:22:10"},{"expression":{"argumentTypes":null,"id":4345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4343,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"4811:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4344,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"4834:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4811:40:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4346,"nodeType":"ExpressionStatement","src":"4811:40:10"},{"expression":{"argumentTypes":null,"id":4349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4347,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"4861:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4348,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4267,"src":"4880:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4861:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4350,"nodeType":"ExpressionStatement","src":"4861:36:10"},{"expression":{"argumentTypes":null,"id":4353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4351,"name":"maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"4907:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4352,"name":"_maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4269,"src":"4927:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4907:38:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4354,"nodeType":"ExpressionStatement","src":"4907:38:10"},{"expression":{"argumentTypes":null,"id":4357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4355,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"4955:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4356,"name":"_batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4265,"src":"4967:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4955:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4358,"nodeType":"ExpressionStatement","src":"4955:22:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4360,"name":"_repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4273,"src":"4995:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"31303030","id":4361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5014:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"4995:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f726570526577617264436f6e7374422073686f756c64206265203c2031303030","id":4363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5020:35:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_77ce01d0b74a5db4fe0e7697fa87a1152c41639e82f01b12169c013ac6fec930","typeString":"literal_string \"_repRewardConstB should be < 1000\""},"value":"_repRewardConstB should be < 1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_77ce01d0b74a5db4fe0e7697fa87a1152c41639e82f01b12169c013ac6fec930","typeString":"literal_string \"_repRewardConstB should be < 1000\""}],"id":4359,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4987:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4987:69:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4365,"nodeType":"ExpressionStatement","src":"4987:69:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4367,"name":"_repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"5074:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4368,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4261,"src":"5093:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5074:36:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"726570526577617264436f6e7374412073686f756c64206265203c205f72657075746174696f6e526577617264","id":4370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5112:47:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b45a84ccb9d5649fe214d4dc1e1c6ffa23bc2cdafdd1061352b6128e2c09bde2","typeString":"literal_string \"repRewardConstA should be < _reputationReward\""},"value":"repRewardConstA should be < _reputationReward"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b45a84ccb9d5649fe214d4dc1e1c6ffa23bc2cdafdd1061352b6128e2c09bde2","typeString":"literal_string \"repRewardConstA should be < _reputationReward\""}],"id":4366,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5066:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5066:94:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4372,"nodeType":"ExpressionStatement","src":"5066:94:10"},{"expression":{"argumentTypes":null,"id":4379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4373,"name":"repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"5170:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4376,"name":"_repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4271,"src":"5203:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5195:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5195:25:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4374,"name":"toReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"5188:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$returns$_t_uint256_$","typeString":"function (uint216) pure returns (uint256)"}},"id":4378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5188:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5170:51:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4380,"nodeType":"ExpressionStatement","src":"5170:51:10"},{"expression":{"argumentTypes":null,"id":4390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4381,"name":"repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"5231:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":4387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5292:4:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":4386,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5284:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5284:13:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4383,"name":"_repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4273,"src":"5257:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5249:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5249:25:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":4385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":15182,"src":"5249:34:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":4389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5249:49:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5231:67:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4391,"nodeType":"ExpressionStatement","src":"5231:67:10"},{"expression":{"argumentTypes":null,"id":4394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4392,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"5308:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4393,"name":"_batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4275,"src":"5326:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5308:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4395,"nodeType":"ExpressionStatement","src":"5308:34:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4399,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4279,"src":"5375:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":4396,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21182,"src":"5352:5:10","typeDescriptions":{"typeIdentifier":"t_super$_ContinuousLocking4Reputation_$5140","typeString":"contract super ContinuousLocking4Reputation"}},"id":4398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"5352:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":4400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5352:38:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4401,"nodeType":"ExpressionStatement","src":"5352:38:10"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total amount of reputation that can be minted by this contract\n@param _startTime locking period start time, in seconds since epoch\n@param _redeemEnableTime redeem enable time\n@param _batchTime batch time (in seconds)\n@param _redeemEnableTime redeem enable time, in seconds since epoch\n redeem reputation can be done after this time.\n@param _maxLockingBatches - maximum number of locking batches that a user can lock (or extend) her tokens for\n@param _repRewardConstA - the total amount of reputation allocation per batch is calculated by :\n _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex)\n@param _repRewardConstB - the total amount of reputation allocation per batch is calculated by :\n _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex). _repRewardConstB must be < 1000\n@param _batchesIndexCap the length of the locking period (in batches).\n This value capped by BATCHES_HARDCAP .\n@param _token the locking token\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":4403,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":4280,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4259,"name":"_avatar","nodeType":"VariableDeclaration","scope":4403,"src":"3749:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":4258,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3749:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":4261,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":4403,"src":"3773:25:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4260,"name":"uint256","nodeType":"ElementaryTypeName","src":"3773:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4263,"name":"_startTime","nodeType":"VariableDeclaration","scope":4403,"src":"3808:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4262,"name":"uint256","nodeType":"ElementaryTypeName","src":"3808:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4265,"name":"_batchTime","nodeType":"VariableDeclaration","scope":4403,"src":"3836:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4264,"name":"uint256","nodeType":"ElementaryTypeName","src":"3836:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4267,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":4403,"src":"3864:25:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4266,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4269,"name":"_maxLockingBatches","nodeType":"VariableDeclaration","scope":4403,"src":"3899:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4268,"name":"uint256","nodeType":"ElementaryTypeName","src":"3899:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4271,"name":"_repRewardConstA","nodeType":"VariableDeclaration","scope":4403,"src":"3935:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4270,"name":"uint256","nodeType":"ElementaryTypeName","src":"3935:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4273,"name":"_repRewardConstB","nodeType":"VariableDeclaration","scope":4403,"src":"3969:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4272,"name":"uint256","nodeType":"ElementaryTypeName","src":"3969:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4275,"name":"_batchesIndexCap","nodeType":"VariableDeclaration","scope":4403,"src":"4003:24:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4274,"name":"uint256","nodeType":"ElementaryTypeName","src":"4003:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4277,"name":"_token","nodeType":"VariableDeclaration","scope":4403,"src":"4037:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":4276,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"4037:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":4279,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":4403,"src":"4060:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4278,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4060:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3739:345:10"},"returnParameters":{"id":4281,"nodeType":"ParameterList","parameters":[],"src":"4102:0:10"},"scope":5140,"src":"3720:1677:10","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":4586,"nodeType":"Block","src":"5703:1752:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4413,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"5775:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":4414,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4225,"src":"5781:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5775:22:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2072656465656d456e61626c6554696d65","id":4416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5799:24:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""},"value":"now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""}],"id":4412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5767:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5767:57:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4418,"nodeType":"ExpressionStatement","src":"5767:57:10"},{"assignments":[4420],"declarations":[{"constant":false,"id":4420,"name":"locker","nodeType":"VariableDeclaration","scope":4586,"src":"5834:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4419,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"5834:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4426,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4421,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"5856:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4423,"indexExpression":{"argumentTypes":null,"id":4422,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4405,"src":"5864:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5856:21:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4425,"indexExpression":{"argumentTypes":null,"id":4424,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"5878:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5856:33:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5834:55:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4428,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"5907:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"5907:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4430,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5929:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5907:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6c6f636b696e67496420646f6573206e6f74206578697374","id":4432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5932:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""},"value":"_lockingId does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""}],"id":4427,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5899:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5899:61:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4434,"nodeType":"ExpressionStatement","src":"5899:61:10"},{"assignments":[4436],"declarations":[{"constant":false,"id":4436,"name":"batchIndexToRedeemFrom","nodeType":"VariableDeclaration","scope":4586,"src":"5970:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4435,"name":"uint256","nodeType":"ElementaryTypeName","src":"5970:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4444,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4437,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"6004:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"6004:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4439,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"6025:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6004:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4441,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6003:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4442,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"6038:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6003:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5970:77:10"},{"assignments":[4446],"declarations":[{"constant":false,"id":4446,"name":"currentBatch","nodeType":"VariableDeclaration","scope":4586,"src":"6111:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4445,"name":"uint256","nodeType":"ElementaryTypeName","src":"6111:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4453,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4447,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"6135:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4448,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"6141:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6135:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6134:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4451,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"6154:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6134:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6111:52:10"},{"assignments":[4455],"declarations":[{"constant":false,"id":4455,"name":"lastBatchIndexToRedeem","nodeType":"VariableDeclaration","scope":4586,"src":"6173:30:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4454,"name":"uint256","nodeType":"ElementaryTypeName","src":"6173:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4464,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4460,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"6251:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"6251:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4458,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6224:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6224:26:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6224:41:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4456,"name":"currentBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4446,"src":"6207:12:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":20175,"src":"6207:16:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6207:59:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6173:93:10"},{"body":{"id":4546,"nodeType":"Block","src":"6380:682:10","statements":[{"assignments":[4474],"declarations":[{"constant":false,"id":4474,"name":"locking","nodeType":"VariableDeclaration","scope":4546,"src":"6394:21:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"},"typeName":{"contractScope":null,"id":4473,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"6394:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}},"value":null,"visibility":"internal"}],"id":4478,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4475,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"6418:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":4477,"indexExpression":{"argumentTypes":null,"id":4476,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6426:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6418:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6394:55:10"},{"assignments":[4480],"declarations":[{"constant":false,"id":4480,"name":"score","nodeType":"VariableDeclaration","scope":4546,"src":"6463:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4479,"name":"uint256","nodeType":"ElementaryTypeName","src":"6463:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4485,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4481,"name":"locking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"6479:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"6479:14:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4484,"indexExpression":{"argumentTypes":null,"id":4483,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"6494:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6479:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6463:42:10"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4486,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4480,"src":"6523:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6531:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6523:9:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":4545,"nodeType":"IfStatement","src":"6519:533:10","trueBody":{"id":4544,"nodeType":"Block","src":"6534:518:10","statements":[{"expression":{"argumentTypes":null,"id":4495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4489,"name":"locking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"6552:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"6552:14:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4493,"indexExpression":{"argumentTypes":null,"id":4491,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"6567:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6552:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6581:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6552:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4496,"nodeType":"ExpressionStatement","src":"6552:30:10"},{"assignments":[4498],"declarations":[{"constant":false,"id":4498,"name":"batchReputationReward","nodeType":"VariableDeclaration","scope":4544,"src":"6600:29:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4497,"name":"uint256","nodeType":"ElementaryTypeName","src":"6600:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4502,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4500,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6653:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4499,"name":"getRepRewardPerBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5041,"src":"6632:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":4501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6632:44:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6600:76:10"},{"assignments":[4504],"declarations":[{"constant":false,"id":4504,"name":"repRelation","nodeType":"VariableDeclaration","scope":4544,"src":"6694:19:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4503,"name":"uint256","nodeType":"ElementaryTypeName","src":"6694:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4513,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4508,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4480,"src":"6735:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6727:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6727:14:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4506,"name":"toReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"6720:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$returns$_t_uint256_$","typeString":"function (uint216) pure returns (uint256)"}},"id":4510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4511,"name":"batchReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4498,"src":"6744:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4505,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"6716:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6716:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6694:72:10"},{"assignments":[4515],"declarations":[{"constant":false,"id":4515,"name":"redeemForBatch","nodeType":"VariableDeclaration","scope":4544,"src":"6784:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4514,"name":"uint256","nodeType":"ElementaryTypeName","src":"6784:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4525,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4517,"name":"repRelation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4504,"src":"6813:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4520,"name":"locking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4474,"src":"6841:7:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"6841:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6833:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":4522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6833:27:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4518,"name":"toReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5102,"src":"6826:6:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$returns$_t_uint256_$","typeString":"function (uint216) pure returns (uint256)"}},"id":4523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6826:35:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4516,"name":"div","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"6809:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6809:53:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6784:78:10"},{"expression":{"argumentTypes":null,"id":4531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4526,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"6880:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4529,"name":"redeemForBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4515,"src":"6908:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4527,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"6893:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6893:14:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6893:30:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6880:43:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4532,"nodeType":"ExpressionStatement","src":"6880:43:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4534,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4407,"src":"6953:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4535,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4405,"src":"6965:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4538,"name":"redeemForBatch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4515,"src":"6996:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4537,"name":"fromReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"6987:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint216_$","typeString":"function (uint256) pure returns (uint216)"}},"id":4539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6987:24:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6979:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":4540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6979:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4541,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"7014:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4533,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4167,"src":"6946:6:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256,uint256)"}},"id":4542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6946:91:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4543,"nodeType":"EmitStatement","src":"6941:96:10"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4467,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6305:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4468,"name":"lastBatchIndexToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4455,"src":"6330:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6305:47:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4547,"initializationExpression":{"expression":{"argumentTypes":null,"id":4465,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6281:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4466,"nodeType":"ExpressionStatement","src":"6281:22:10"},"loopExpression":{"expression":{"argumentTypes":null,"id":4471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6354:24:10","subExpression":{"argumentTypes":null,"id":4470,"name":"batchIndexToRedeemFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4436,"src":"6354:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4472,"nodeType":"ExpressionStatement","src":"6354:24:10"},"nodeType":"ForStatement","src":"6276:786:10"},{"expression":{"argumentTypes":null,"id":4554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4548,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7071:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4551,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7101:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4550,"name":"fromReal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5116,"src":"7092:8:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint216_$","typeString":"function (uint256) pure returns (uint216)"}},"id":4552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7092:20:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":4549,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7084:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":4553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7084:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7071:42:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4555,"nodeType":"ExpressionStatement","src":"7071:42:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4557,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7131:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4558,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7144:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7131:14:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657075746174696f6e20746f2072656465656d2069732030","id":4560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7147:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0ae440022e7f03fef978bbdd1d266da5c3f234f4cdaafb1f44084cb40b01664c","typeString":"literal_string \"reputation to redeem is 0\""},"value":"reputation to redeem is 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0ae440022e7f03fef978bbdd1d266da5c3f234f4cdaafb1f44084cb40b01664c","typeString":"literal_string \"reputation to redeem is 0\""}],"id":4556,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7123:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7123:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4562,"nodeType":"ExpressionStatement","src":"7123:52:10"},{"expression":{"argumentTypes":null,"id":4568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4563,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"7234:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4566,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7282:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4564,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4221,"src":"7257:20:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"7257:24:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7257:36:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7234:59:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4569,"nodeType":"ExpressionStatement","src":"7234:59:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4577,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4410,"src":"7371:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4578,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4405,"src":"7383:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4580,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"7405:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":4579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7397:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7397:15:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":4572,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4219,"src":"7331:6:10","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":4573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"7331:12:10","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":4574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7331:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4571,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7320:10:10","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":4575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:26:10","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":4576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"7320:50:10","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":4582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:93:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":4583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7415:32:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":4570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7303:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7303:145:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4585,"nodeType":"ExpressionStatement","src":"7303:145:10"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary to redeem.\n@param _lockingId the lockingId to redeem from.\n@return uint256 reputation rewarded","id":4587,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":4408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4405,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":4587,"src":"5626:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4404,"name":"address","nodeType":"ElementaryTypeName","src":"5626:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4407,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4587,"src":"5648:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4406,"name":"uint256","nodeType":"ElementaryTypeName","src":"5648:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5625:42:10"},"returnParameters":{"id":4411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4410,"name":"reputation","nodeType":"VariableDeclaration","scope":4587,"src":"5683:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4409,"name":"uint256","nodeType":"ElementaryTypeName","src":"5683:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5682:20:10"},"scope":5140,"src":"5610:1845:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4771,"nodeType":"Block","src":"7963:1567:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4604,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"7981:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7991:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7981:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f616d6f756e742073686f756c64206265203e2030","id":4607,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7994:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cfc112d098f640cb024c8c7ff3494adf719b170f69d1e56bc5504ce63aabc7fc","typeString":"literal_string \"_amount should be > 0\""},"value":"_amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfc112d098f640cb024c8c7ff3494adf719b170f69d1e56bc5504ce63aabc7fc","typeString":"literal_string \"_amount should be > 0\""}],"id":4603,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7973:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7973:45:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4609,"nodeType":"ExpressionStatement","src":"7973:45:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4611,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8090:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":4612,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"8097:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8090:16:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e67206973206e6f7420656e61626c656420796574202869742073746172747320617420737461727454696d6529","id":4614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8108:53:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a4f76a0c594202ef3591491dd8b9beb9c07b7d89b47abe775b1d5d09e868eebf","typeString":"literal_string \"locking is not enabled yet (it starts at startTime)\""},"value":"locking is not enabled yet (it starts at startTime)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4f76a0c594202ef3591491dd8b9beb9c07b7d89b47abe775b1d5d09e868eebf","typeString":"literal_string \"locking is not enabled yet (it starts at startTime)\""}],"id":4610,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8082:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8082:80:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4616,"nodeType":"ExpressionStatement","src":"8082:80:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4618,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8180:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4619,"name":"maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"8191:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8180:28:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f706572696f642065786365656420746865206d6178696d756d20616c6c6f776564","id":4621,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8210:36:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d5931cccac3a8838ed1ee2e37de453a3f3bcb181a8e2739d9ae0b78ca7ef0ddc","typeString":"literal_string \"_period exceed the maximum allowed\""},"value":"_period exceed the maximum allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d5931cccac3a8838ed1ee2e37de453a3f3bcb181a8e2739d9ae0b78ca7ef0ddc","typeString":"literal_string \"_period exceed the maximum allowed\""}],"id":4617,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8172:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8172:75:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4623,"nodeType":"ExpressionStatement","src":"8172:75:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4625,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8265:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8275:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8265:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f706572696f64206d757374206265203e2030","id":4628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8278:21:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dbfc640277ddc4d42285c6a72cdc1a6d54e57b6fb13b460a5525a97aeb4ae60a","typeString":"literal_string \"_period must be > 0\""},"value":"_period must be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dbfc640277ddc4d42285c6a72cdc1a6d54e57b6fb13b460a5525a97aeb4ae60a","typeString":"literal_string \"_period must be > 0\""}],"id":4624,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8257:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8257:43:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4630,"nodeType":"ExpressionStatement","src":"8257:43:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4634,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8343:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4632,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"8319:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8319:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8319:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4636,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8318:34:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4637,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"8356:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8318:53:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6261746368496e646578546f4c6f636b496e202b205f706572696f6420657863656564206d617820616c6c6f7765642062617463686573","id":4639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8381:58:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3927c0400f34d13616fb2f3d3b3c70c3481c84ad44e05a5669e34a1d5f2e2bd0","typeString":"literal_string \"_batchIndexToLockIn + _period exceed max allowed batches\""},"value":"_batchIndexToLockIn + _period exceed max allowed batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3927c0400f34d13616fb2f3d3b3c70c3481c84ad44e05a5669e34a1d5f2e2bd0","typeString":"literal_string \"_batchIndexToLockIn + _period exceed max allowed batches\""}],"id":4631,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8310:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8310:130:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4641,"nodeType":"ExpressionStatement","src":"8310:130:10"},{"expression":{"argumentTypes":null,"id":4647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4642,"name":"lockCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"8450:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":4645,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8480:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":4643,"name":"lockCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"8464:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8464:15:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8464:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8450:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4648,"nodeType":"ExpressionStatement","src":"8450:32:10"},{"expression":{"argumentTypes":null,"id":4651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4649,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"8492:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4650,"name":"lockCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4233,"src":"8504:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8492:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4652,"nodeType":"ExpressionStatement","src":"8492:23:10"},{"assignments":[4654],"declarations":[{"constant":false,"id":4654,"name":"locker","nodeType":"VariableDeclaration","scope":4771,"src":"8526:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4653,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"8526:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4661,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4655,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"8548:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4658,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4656,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8556:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8556:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8548:19:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4660,"indexExpression":{"argumentTypes":null,"id":4659,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"8568:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8548:30:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8526:52:10"},{"expression":{"argumentTypes":null,"id":4666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4662,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"8588:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"8588:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4665,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"8604:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8588:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4667,"nodeType":"ExpressionStatement","src":"8588:23:10"},{"expression":{"argumentTypes":null,"id":4672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4668,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"8621:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"8621:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4671,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"8637:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8621:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4673,"nodeType":"ExpressionStatement","src":"8621:23:10"},{"expression":{"argumentTypes":null,"id":4678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4674,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4654,"src":"8708:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4676,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"8708:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4677,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8729:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8708:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4679,"nodeType":"ExpressionStatement","src":"8708:24:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8775:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8775:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4687,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21181,"src":"8795:4:10","typeDescriptions":{"typeIdentifier":"t_contract$_ContinuousLocking4Reputation_$5140","typeString":"contract ContinuousLocking4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContinuousLocking4Reputation_$5140","typeString":"contract ContinuousLocking4Reputation"}],"id":4686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8787:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8787:13:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":4689,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"8802:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4681,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"8751:5:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":4680,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8743:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":4682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8743:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":4683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"8743:31:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":4690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8743:67:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4691,"nodeType":"ExpressionStatement","src":"8743:67:10"},{"assignments":[4693],"declarations":[{"constant":false,"id":4693,"name":"batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4771,"src":"8874:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4692,"name":"uint256","nodeType":"ElementaryTypeName","src":"8874:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4700,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4694,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8904:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4695,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"8910:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8904:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4697,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8903:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4698,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"8923:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8903:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8874:58:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4702,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"8950:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4703,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4593,"src":"8972:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8950:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6261746368496e646578546f4c6f636b496e206d75737420626520746865206f6e6520636f72726573706f6e64696e6720746f207468652063757272656e74206f6e65","id":4705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9001:70:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fcb4dea40c0d1c2e59d09b4eea2cc30c324101a88e8fda866a423c426320d109","typeString":"literal_string \"_batchIndexToLockIn must be the one corresponding to the current one\""},"value":"_batchIndexToLockIn must be the one corresponding to the current one"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fcb4dea40c0d1c2e59d09b4eea2cc30c324101a88e8fda866a423c426320d109","typeString":"literal_string \"_batchIndexToLockIn must be the one corresponding to the current one\""}],"id":4701,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"8942:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8942:130:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4707,"nodeType":"ExpressionStatement","src":"8942:130:10"},{"body":{"id":4754,"nodeType":"Block","src":"9163:239:10","statements":[{"assignments":[4719],"declarations":[{"constant":false,"id":4719,"name":"batch","nodeType":"VariableDeclaration","scope":4754,"src":"9177:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"},"typeName":{"contractScope":null,"id":4718,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"9177:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}},"value":null,"visibility":"internal"}],"id":4725,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4720,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"9199:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":4724,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4721,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4693,"src":"9207:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":4722,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9228:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9207:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9199:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9177:53:10"},{"assignments":[4727],"declarations":[{"constant":false,"id":4727,"name":"score","nodeType":"VariableDeclaration","scope":4754,"src":"9244:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4726,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4735,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4733,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"9278:7:10","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":4730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4728,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"9261:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4729,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9271:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9261:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4731,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9260:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"9260:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9260:26:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9244:42:10"},{"expression":{"argumentTypes":null,"id":4744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4736,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"9300:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4738,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"9300:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4742,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"9340:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4739,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"9319:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4740,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"9319:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"9319:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9319:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9300:46:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4745,"nodeType":"ExpressionStatement","src":"9300:46:10"},{"expression":{"argumentTypes":null,"id":4752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4746,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4719,"src":"9360:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"9360:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4750,"indexExpression":{"argumentTypes":null,"id":4748,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"9373:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9360:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4751,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"9386:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9360:31:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4753,"nodeType":"ExpressionStatement","src":"9360:31:10"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4712,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9145:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4713,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"9149:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9145:11:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4755,"initializationExpression":{"assignments":[4709],"declarations":[{"constant":false,"id":4709,"name":"p","nodeType":"VariableDeclaration","scope":4755,"src":"9130:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4708,"name":"uint256","nodeType":"ElementaryTypeName","src":"9130:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4711,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9142:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9130:13:10"},"loopExpression":{"expression":{"argumentTypes":null,"id":4716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9158:3:10","subExpression":{"argumentTypes":null,"id":4715,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4709,"src":"9158:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4717,"nodeType":"ExpressionStatement","src":"9158:3:10"},"nodeType":"ForStatement","src":"9125:277:10"},{"expression":{"argumentTypes":null,"id":4761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4756,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"9412:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4759,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"9450:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4757,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"9430:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"9430:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9430:28:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9412:46:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4762,"nodeType":"ExpressionStatement","src":"9412:46:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4764,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9483:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9483:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4766,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4601,"src":"9495:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4767,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4589,"src":"9506:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4768,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4591,"src":"9515:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4763,"name":"LockToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4185,"src":"9473:9:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256)"}},"id":4769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9473:50:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4770,"nodeType":"EmitStatement","src":"9468:55:10"}]},"documentation":"@dev lock function\n@param _amount the amount of token to lock\n@param _period the number of batches that the tokens will be locked for\n@param _batchIndexToLockIn the batch index in which the locking period starts.\nMust be the currently active batch.\n@return lockingId","id":4772,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":4598,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4595,"src":"7912:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4599,"modifierName":{"argumentTypes":null,"id":4597,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"7902:9:10","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"7902:25:10"}],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":4596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4589,"name":"_amount","nodeType":"VariableDeclaration","scope":4772,"src":"7800:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4588,"name":"uint256","nodeType":"ElementaryTypeName","src":"7800:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4591,"name":"_period","nodeType":"VariableDeclaration","scope":4772,"src":"7817:15:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4590,"name":"uint256","nodeType":"ElementaryTypeName","src":"7817:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4593,"name":"_batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4772,"src":"7834:27:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4592,"name":"uint256","nodeType":"ElementaryTypeName","src":"7834:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4595,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":4772,"src":"7863:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4594,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7863:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7799:87:10"},"returnParameters":{"id":4602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4601,"name":"lockingId","nodeType":"VariableDeclaration","scope":4772,"src":"7940:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4600,"name":"uint256","nodeType":"ElementaryTypeName","src":"7940:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7939:19:10"},"scope":5140,"src":"7786:1744:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":4944,"nodeType":"Block","src":"9990:1501:10","statements":[{"assignments":[4787],"declarations":[{"constant":false,"id":4787,"name":"locker","nodeType":"VariableDeclaration","scope":4944,"src":"10000:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4786,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"10000:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4794,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4788,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"10022:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4791,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4789,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10030:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10030:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10022:19:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4793,"indexExpression":{"argumentTypes":null,"id":4792,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"10042:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10022:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10000:53:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4796,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"10071:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4797,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"10071:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4798,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10093:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10071:23:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f6c6f636b696e67496420646f6573206e6f74206578697374","id":4800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10096:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""},"value":"_lockingId does not exist"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78b40166a836226c1c5bacd1f919c80ec88a86b64e64d0e19f384405eab505b1","typeString":"literal_string \"_lockingId does not exist\""}],"id":4795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10063:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10063:61:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4802,"nodeType":"ExpressionStatement","src":"10063:61:10"},{"assignments":[4804],"declarations":[{"constant":false,"id":4804,"name":"remainBatches","nodeType":"VariableDeclaration","scope":4944,"src":"10233:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4803,"name":"uint256","nodeType":"ElementaryTypeName","src":"10233:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4823,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4821,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"10346:19:10","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":4818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4814,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"10319:9:10","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":4811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4808,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"10290:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4809,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"10290:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":4810,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"10304:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10290:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4805,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"10267:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"10267:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10267:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10267:47:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10267:51:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10267:62:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4816,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10266:64:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4817,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"10331:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10266:74:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4819,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10265:76:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10265:80:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10265:101:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10233:133:10"},{"assignments":[4825],"declarations":[{"constant":false,"id":4825,"name":"batchesCountFromCurrent","nodeType":"VariableDeclaration","scope":4944,"src":"10376:31:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4824,"name":"uint256","nodeType":"ElementaryTypeName","src":"10376:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4830,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4828,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"10428:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4826,"name":"remainBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4804,"src":"10410:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10410:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4829,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10410:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10376:66:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4832,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"10460:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4833,"name":"maxLockingBatches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4227,"src":"10487:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10460:44:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f64206578636565647320746865206d6178696d756d20616c6c6f776564","id":4835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10506:44:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_78f5e7fd96f9a8f37139d5bd714882553509854f71aeb7d49c2657ae96bd1bb4","typeString":"literal_string \"locking period exceeds the maximum allowed\""},"value":"locking period exceeds the maximum allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_78f5e7fd96f9a8f37139d5bd714882553509854f71aeb7d49c2657ae96bd1bb4","typeString":"literal_string \"locking period exceeds the maximum allowed\""}],"id":4831,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10452:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10452:99:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4837,"nodeType":"ExpressionStatement","src":"10452:99:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4839,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"10569:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10585:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10569:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f657874656e64506572696f64206d757374206265203e2030","id":4842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10588:27:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c577061e2e7c238d5afe42c1aa63dc826b2e7028791cfaf25bbf7730d131d2a6","typeString":"literal_string \"_extendPeriod must be > 0\""},"value":"_extendPeriod must be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c577061e2e7c238d5afe42c1aa63dc826b2e7028791cfaf25bbf7730d131d2a6","typeString":"literal_string \"_extendPeriod must be > 0\""}],"id":4838,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10561:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10561:55:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4844,"nodeType":"ExpressionStatement","src":"10561:55:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4848,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"10659:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4846,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"10635:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10635:23:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4849,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10635:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4850,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10634:50:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":4851,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"10688:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10634:69:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f657874656e64506572696f6420657863656564206d617820616c6c6f7765642062617463686573","id":4853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10713:42:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dd93fc059c33bf9e783e757ac4d65456721b84bc3dac49f177222597d8f4bfec","typeString":"literal_string \"_extendPeriod exceed max allowed batches\""},"value":"_extendPeriod exceed max allowed batches"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd93fc059c33bf9e783e757ac4d65456721b84bc3dac49f177222597d8f4bfec","typeString":"literal_string \"_extendPeriod exceed max allowed batches\""}],"id":4845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10626:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10626:130:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4855,"nodeType":"ExpressionStatement","src":"10626:130:10"},{"assignments":[4857],"declarations":[{"constant":false,"id":4857,"name":"batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4944,"src":"10820:26:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4856,"name":"uint256","nodeType":"ElementaryTypeName","src":"10820:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4864,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4858,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"10850:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4859,"name":"startTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4223,"src":"10856:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10850:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10849:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":4862,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"10869:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10849:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10820:58:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4866,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4857,"src":"10896:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":4867,"name":"_batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"10918:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10896:41:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e67206973206e6f7420616374697665","id":4869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10939:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_17b467c90cd73607a64b1beb9311020542a46527799d1c4353021dae893605d8","typeString":"literal_string \"locking is not active\""},"value":"locking is not active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_17b467c90cd73607a64b1beb9311020542a46527799d1c4353021dae893605d8","typeString":"literal_string \"locking is not active\""}],"id":4865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10888:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10888:75:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4871,"nodeType":"ExpressionStatement","src":"10888:75:10"},{"body":{"id":4925,"nodeType":"Block","src":"11068:292:10","statements":[{"assignments":[4883],"declarations":[{"constant":false,"id":4883,"name":"batch","nodeType":"VariableDeclaration","scope":4925,"src":"11082:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"},"typeName":{"contractScope":null,"id":4882,"name":"Batch","nodeType":"UserDefinedTypeName","referencedDeclaration":4200,"src":"11082:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch"}},"value":null,"visibility":"internal"}],"id":4889,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4884,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"11104:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":4888,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4885,"name":"batchIndexToLockIn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4857,"src":"11112:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":4886,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11133:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11112:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11104:31:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11082:53:10"},{"assignments":[4891],"declarations":[{"constant":false,"id":4891,"name":"score","nodeType":"VariableDeclaration","scope":4925,"src":"11149:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4890,"name":"uint256","nodeType":"ElementaryTypeName","src":"11149:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4900,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4897,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"11199:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11199:13:10","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":4894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4892,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"11166:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":4893,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11192:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11166:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":4895,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11165:29:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"11165:33:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11165:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11149:64:10"},{"expression":{"argumentTypes":null,"id":4915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4901,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11227:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4903,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"11227:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4910,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11278:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"11278:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4913,"indexExpression":{"argumentTypes":null,"id":4912,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"11291:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11278:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4907,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"11267:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4904,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11246:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalScore","nodeType":"MemberAccess","referencedDeclaration":4195,"src":"11246:16:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11246:20:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11246:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"11246:31:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11246:57:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11227:76:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4916,"nodeType":"ExpressionStatement","src":"11227:76:10"},{"expression":{"argumentTypes":null,"id":4923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4917,"name":"batch","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4883,"src":"11317:5:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Batch storage pointer"}},"id":4920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"11317:12:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":4921,"indexExpression":{"argumentTypes":null,"id":4919,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"11330:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11317:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":4922,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"11344:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11317:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4924,"nodeType":"ExpressionStatement","src":"11317:32:10"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":4876,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11034:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":4877,"name":"batchesCountFromCurrent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4825,"src":"11038:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11034:27:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4926,"initializationExpression":{"assignments":[4873],"declarations":[{"constant":false,"id":4873,"name":"p","nodeType":"VariableDeclaration","scope":4926,"src":"11019:9:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4872,"name":"uint256","nodeType":"ElementaryTypeName","src":"11019:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":4875,"initialValue":{"argumentTypes":null,"hexValue":"30","id":4874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11031:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"11019:13:10"},"loopExpression":{"expression":{"argumentTypes":null,"id":4880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11063:3:10","subExpression":{"argumentTypes":null,"id":4879,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"11063:1:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4881,"nodeType":"ExpressionStatement","src":"11063:3:10"},"nodeType":"ForStatement","src":"11014:346:10"},{"expression":{"argumentTypes":null,"id":4935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4927,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"11369:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"11369:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4933,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"11403:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4930,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4787,"src":"11385:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"11385:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"11385:17:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11385:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11369:48:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4936,"nodeType":"ExpressionStatement","src":"11369:48:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4938,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"11446:3:10","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11446:10:10","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":4940,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"11458:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":4941,"name":"_extendPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"11470:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":4937,"name":"ExtendLocking","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4193,"src":"11432:13:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":4942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11432:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4943,"nodeType":"EmitStatement","src":"11427:57:10"}]},"documentation":"@dev extendLocking function\n@param _extendPeriod the period to extend the locking. in batchTime.\n@param _batchIndexToLockIn index of the batch in which to start locking.\n@param _lockingId the locking id to extend","id":4945,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":4783,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4780,"src":"9970:14:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":4784,"modifierName":{"argumentTypes":null,"id":4782,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"9960:9:10","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"9960:25:10"}],"name":"extendLocking","nodeType":"FunctionDefinition","parameters":{"id":4781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4774,"name":"_extendPeriod","nodeType":"VariableDeclaration","scope":4945,"src":"9825:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4773,"name":"uint256","nodeType":"ElementaryTypeName","src":"9825:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4776,"name":"_batchIndexToLockIn","nodeType":"VariableDeclaration","scope":4945,"src":"9856:27:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4775,"name":"uint256","nodeType":"ElementaryTypeName","src":"9856:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4778,"name":"_lockingId","nodeType":"VariableDeclaration","scope":4945,"src":"9893:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4777,"name":"uint256","nodeType":"ElementaryTypeName","src":"9893:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":4780,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":4945,"src":"9921:22:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":4779,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9921:7:10","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9815:129:10"},"returnParameters":{"id":4785,"nodeType":"ParameterList","parameters":[],"src":"9990:0:10"},"scope":5140,"src":"9793:1698:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5017,"nodeType":"Block","src":"11762:545:10","statements":[{"assignments":[4955],"declarations":[{"constant":false,"id":4955,"name":"locker","nodeType":"VariableDeclaration","scope":5017,"src":"11772:19:10","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"},"typeName":{"contractScope":null,"id":4954,"name":"Lock","nodeType":"UserDefinedTypeName","referencedDeclaration":4207,"src":"11772:4:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock"}},"value":null,"visibility":"internal"}],"id":4961,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":4956,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4213,"src":"11794:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$_$","typeString":"mapping(address => mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref))"}},"id":4958,"indexExpression":{"argumentTypes":null,"id":4957,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"11802:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11794:21:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Lock_$4207_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Lock storage ref)"}},"id":4960,"indexExpression":{"argumentTypes":null,"id":4959,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4949,"src":"11816:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11794:33:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage","typeString":"struct ContinuousLocking4Reputation.Lock storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11772:55:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4963,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"11845:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11845:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":4965,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11861:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11845:17:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f20616d6f756e74206c65667420746f20756e6c6f636b","id":4967,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11864:26:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4aca0acf05fb3dc91653337f52224cb67cb93bd667f707d7a615b7acb7d9bfbb","typeString":"literal_string \"no amount left to unlock\""},"value":"no amount left to unlock"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4aca0acf05fb3dc91653337f52224cb67cb93bd667f707d7a615b7acb7d9bfbb","typeString":"literal_string \"no amount left to unlock\""}],"id":4962,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11837:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11837:54:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4969,"nodeType":"ExpressionStatement","src":"11837:54:10"},{"expression":{"argumentTypes":null,"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4970,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"11901:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4971,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"11910:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11910:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11901:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4974,"nodeType":"ExpressionStatement","src":"11901:22:10"},{"expression":{"argumentTypes":null,"id":4979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4975,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"11933:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":4202,"src":"11933:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":4978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11949:1:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11933:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4980,"nodeType":"ExpressionStatement","src":"11933:17:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4982,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"12022:5:10","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":4983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12022:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4987,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"12063:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4988,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"period","nodeType":"MemberAccess","referencedDeclaration":4206,"src":"12063:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":4989,"name":"batchTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4229,"src":"12077:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12063:23:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":4984,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4955,"src":"12040:6:10","typeDescriptions":{"typeIdentifier":"t_struct$_Lock_$4207_storage_ptr","typeString":"struct ContinuousLocking4Reputation.Lock storage pointer"}},"id":4985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"lockingTime","nodeType":"MemberAccess","referencedDeclaration":4204,"src":"12040:18:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"12040:22:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12040:47:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12022:65:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f64206973207374696c6c20616374697665","id":4993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12097:32:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c40486bf9146fcb6e8658b19b0782b2d089e98eaeae3475c075495b0bd3e196d","typeString":"literal_string \"locking period is still active\""},"value":"locking period is still active"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c40486bf9146fcb6e8658b19b0782b2d089e98eaeae3475c075495b0bd3e196d","typeString":"literal_string \"locking period is still active\""}],"id":4981,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12014:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":4994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12014:116:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4995,"nodeType":"ExpressionStatement","src":"12014:116:10"},{"expression":{"argumentTypes":null,"id":5001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":4996,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12140:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":4999,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"12178:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":4997,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4235,"src":"12158:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"12158:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12158:27:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12140:45:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5002,"nodeType":"ExpressionStatement","src":"12140:45:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5007,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"12223:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5008,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"12237:6:10","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":5004,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4231,"src":"12203:5:10","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":5003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12195:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12195:14:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"12195:27:10","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":5009,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12195:49:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5010,"nodeType":"ExpressionStatement","src":"12195:49:10"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5012,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4949,"src":"12267:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5013,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4947,"src":"12279:12:10","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5014,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4952,"src":"12293:6:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5011,"name":"Release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4175,"src":"12259:7:10","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":5015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12259:41:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5016,"nodeType":"EmitStatement","src":"12254:46:10"}]},"documentation":"@dev release function\n@param _beneficiary the beneficiary for the release\n@param _lockingId the locking id to release\n@return bool","id":5018,"implemented":true,"kind":"function","modifiers":[],"name":"release","nodeType":"FunctionDefinition","parameters":{"id":4950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4947,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5018,"src":"11689:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4946,"name":"address","nodeType":"ElementaryTypeName","src":"11689:7:10","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":4949,"name":"_lockingId","nodeType":"VariableDeclaration","scope":5018,"src":"11711:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4948,"name":"uint256","nodeType":"ElementaryTypeName","src":"11711:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11688:42:10"},"returnParameters":{"id":4953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4952,"name":"amount","nodeType":"VariableDeclaration","scope":5018,"src":"11746:14:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4951,"name":"uint256","nodeType":"ElementaryTypeName","src":"11746:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11745:16:10"},"scope":5140,"src":"11672:635:10","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5040,"nodeType":"Block","src":"12681:143:10","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5025,"name":"_batchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"12695:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":5026,"name":"batchesIndexCap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4241,"src":"12710:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12695:30:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5039,"nodeType":"IfStatement","src":"12691:127:10","trueBody":{"id":5038,"nodeType":"Block","src":"12727:91:10","statements":[{"expression":{"argumentTypes":null,"id":5036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5028,"name":"repReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5023,"src":"12741:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5030,"name":"repRewardConstA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4237,"src":"12757:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5033,"name":"_batchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5020,"src":"12794:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":5031,"name":"repRewardConstB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4239,"src":"12774:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pow","nodeType":"MemberAccess","referencedDeclaration":15159,"src":"12774:19:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5034,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12774:32:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5029,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5088,"src":"12753:3:10","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12753:54:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12741:66:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5037,"nodeType":"ExpressionStatement","src":"12741:66:10"}]}}]},"documentation":"@dev getRepRewardPerBatch function\nthe calculation is done the following formula:\nRepReward = repRewardConstA * (repRewardConstB**_batchIndex)\n@param _batchIndex the index of the batch to calc rep reward of\n@return repReward","id":5041,"implemented":true,"kind":"function","modifiers":[],"name":"getRepRewardPerBatch","nodeType":"FunctionDefinition","parameters":{"id":5021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5020,"name":"_batchIndex","nodeType":"VariableDeclaration","scope":5041,"src":"12620:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5019,"name":"uint256","nodeType":"ElementaryTypeName","src":"12620:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12619:22:10"},"returnParameters":{"id":5024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5023,"name":"repReward","nodeType":"VariableDeclaration","scope":5041,"src":"12662:17:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5022,"name":"uint256","nodeType":"ElementaryTypeName","src":"12662:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12661:19:10"},"scope":5140,"src":"12590:234:10","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":5057,"nodeType":"Block","src":"13133:63:10","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5050,"name":"batches","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4217,"src":"13150:7:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Batch_$4200_storage_$","typeString":"mapping(uint256 => struct ContinuousLocking4Reputation.Batch storage ref)"}},"id":5052,"indexExpression":{"argumentTypes":null,"id":5051,"name":"_batchIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5043,"src":"13158:11:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13150:20:10","typeDescriptions":{"typeIdentifier":"t_struct$_Batch_$4200_storage","typeString":"struct ContinuousLocking4Reputation.Batch storage ref"}},"id":5053,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scores","nodeType":"MemberAccess","referencedDeclaration":4199,"src":"13150:27:10","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":5055,"indexExpression":{"argumentTypes":null,"id":5054,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5045,"src":"13178:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13150:39:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5049,"id":5056,"nodeType":"Return","src":"13143:46:10"}]},"documentation":"@dev getLockingIdScore function\nreturn score of lockingId at specific bach index\n@param _batchIndex batch index\n@param _lockingId lockingId\n@return score","id":5058,"implemented":true,"kind":"function","modifiers":[],"name":"getLockingIdScore","nodeType":"FunctionDefinition","parameters":{"id":5046,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5043,"name":"_batchIndex","nodeType":"VariableDeclaration","scope":5058,"src":"13062:20:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5042,"name":"uint256","nodeType":"ElementaryTypeName","src":"13062:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5045,"name":"_lockingId","nodeType":"VariableDeclaration","scope":5058,"src":"13084:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5044,"name":"uint256","nodeType":"ElementaryTypeName","src":"13084:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13061:42:10"},"returnParameters":{"id":5049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5048,"name":"","nodeType":"VariableDeclaration","scope":5058,"src":"13124:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5047,"name":"uint256","nodeType":"ElementaryTypeName","src":"13124:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13123:9:10"},"scope":5140,"src":"13035:161:10","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":5087,"nodeType":"Block","src":"13350:309:10","statements":[{"assignments":[5068],"declarations":[{"constant":false,"id":5068,"name":"res","nodeType":"VariableDeclaration","scope":5087,"src":"13527:11:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5067,"name":"uint256","nodeType":"ElementaryTypeName","src":"13527:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":5072,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5069,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"13541:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":5070,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"13549:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13541:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13527:27:10"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5074,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5068,"src":"13572:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":5075,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5060,"src":"13576:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13572:9:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":5077,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5062,"src":"13585:5:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13572:18:10","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5265616c4d617468206d756c206f766572666c6f77","id":5079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13592:23:10","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""},"value":"RealMath mul overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""}],"id":5073,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13564:7:10","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13564:52:10","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5081,"nodeType":"ExpressionStatement","src":"13564:52:10"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5082,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5068,"src":"13634:3:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"argumentTypes":null,"id":5083,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4244,"src":"13641:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13634:17:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5085,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"13633:19:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5066,"id":5086,"nodeType":"Return","src":"13626:26:10"}]},"documentation":"Multiply one real by another. Truncates overflows.","id":5088,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":5063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5060,"name":"realA","nodeType":"VariableDeclaration","scope":5088,"src":"13289:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5059,"name":"uint256","nodeType":"ElementaryTypeName","src":"13289:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5062,"name":"realB","nodeType":"VariableDeclaration","scope":5088,"src":"13304:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5061,"name":"uint256","nodeType":"ElementaryTypeName","src":"13304:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13288:30:10"},"returnParameters":{"id":5066,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5065,"name":"","nodeType":"VariableDeclaration","scope":5088,"src":"13341:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5064,"name":"uint256","nodeType":"ElementaryTypeName","src":"13341:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13340:9:10"},"scope":5140,"src":"13276:383:10","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":5101,"nodeType":"Block","src":"13796:49:10","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5096,"name":"ipart","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5090,"src":"13821:5:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":5095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13813:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13813:14:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":5098,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"13830:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13813:25:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5094,"id":5100,"nodeType":"Return","src":"13806:32:10"}]},"documentation":"Convert an integer to a real. Preserves sign.","id":5102,"implemented":true,"kind":"function","modifiers":[],"name":"toReal","nodeType":"FunctionDefinition","parameters":{"id":5091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5090,"name":"ipart","nodeType":"VariableDeclaration","scope":5102,"src":"13750:13:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":5089,"name":"uint216","nodeType":"ElementaryTypeName","src":"13750:7:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"13749:15:10"},"returnParameters":{"id":5094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5093,"name":"","nodeType":"VariableDeclaration","scope":5102,"src":"13787:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5092,"name":"uint256","nodeType":"ElementaryTypeName","src":"13787:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13786:9:10"},"scope":5140,"src":"13734:111:10","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":5115,"nodeType":"Block","src":"13989:54:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5110,"name":"_realValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"14014:10:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":5111,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"14027:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14014:21:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5109,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14006:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":5113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14006:30:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"functionReturnParameters":5108,"id":5114,"nodeType":"Return","src":"13999:37:10"}]},"documentation":"Convert a real to an integer. Preserves sign.","id":5116,"implemented":true,"kind":"function","modifiers":[],"name":"fromReal","nodeType":"FunctionDefinition","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5104,"name":"_realValue","nodeType":"VariableDeclaration","scope":5116,"src":"13938:18:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5103,"name":"uint256","nodeType":"ElementaryTypeName","src":"13938:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13937:20:10"},"returnParameters":{"id":5108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5107,"name":"","nodeType":"VariableDeclaration","scope":5116,"src":"13980:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":5106,"name":"uint216","nodeType":"ElementaryTypeName","src":"13980:7:10","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"13979:9:10"},"scope":5140,"src":"13920:123:10","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":5138,"nodeType":"Block","src":"14218:261:10","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5127,"name":"realNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5118,"src":"14418:13:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14410:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14410:22:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":5129,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4251,"src":"14435:8:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14410:33:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14409:35:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5133,"name":"realDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5120,"src":"14455:15:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5132,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14447:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14447:24:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14409:62:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14401:7:10","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14401:71:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5124,"id":5137,"nodeType":"Return","src":"14394:78:10"}]},"documentation":"Divide one real by another real. Truncates overflows.","id":5139,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":5121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5118,"name":"realNumerator","nodeType":"VariableDeclaration","scope":5139,"src":"14139:21:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5117,"name":"uint256","nodeType":"ElementaryTypeName","src":"14139:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5120,"name":"realDenominator","nodeType":"VariableDeclaration","scope":5139,"src":"14162:23:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5119,"name":"uint256","nodeType":"ElementaryTypeName","src":"14162:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14138:48:10"},"returnParameters":{"id":5124,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5123,"name":"","nodeType":"VariableDeclaration","scope":5139,"src":"14209:7:10","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5122,"name":"uint256","nodeType":"ElementaryTypeName","src":"14209:7:10","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14208:9:10"},"scope":5140,"src":"14126:353:10","stateMutability":"pure","superFunction":null,"visibility":"private"}],"scope":5141,"src":"389:14093:10"}],"src":"0:14483:10"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.088Z","devdoc":{"methods":{"extendLocking(uint256,uint256,uint256,bytes32)":{"details":"extendLocking function","params":{"_batchIndexToLockIn":"index of the batch in which to start locking.","_extendPeriod":"the period to extend the locking. in batchTime.","_lockingId":"the locking id to extend"}},"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"getLockingIdScore(uint256,uint256)":{"details":"getLockingIdScore function return score of lockingId at specific bach index","params":{"_batchIndex":"batch index","_lockingId":"lockingId"},"return":"score"},"getRepRewardPerBatch(uint256)":{"details":"getRepRewardPerBatch function the calculation is done the following formula: RepReward = repRewardConstA * (repRewardConstB**_batchIndex)","params":{"_batchIndex":"the index of the batch to calc rep reward of"},"return":"repReward"},"initialize(address,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256,address,bytes32)":{"details":"initialize","params":{"_agreementHash":"is a hash of agreement required to be added to the TX by participants","_avatar":"the avatar to mint reputation from","_batchTime":"batch time (in seconds)","_batchesIndexCap":"the length of the locking period (in batches). This value capped by BATCHES_HARDCAP .","_maxLockingBatches":"- maximum number of locking batches that a user can lock (or extend) her tokens for","_redeemEnableTime":"redeem enable time, in seconds since epoch redeem reputation can be done after this time.","_repRewardConstA":"- the total amount of reputation allocation per batch is calculated by : _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex)","_repRewardConstB":"- the total amount of reputation allocation per batch is calculated by : _repRewardConstA * ((_repRewardConstB/1000) ** batchIndex). _repRewardConstB must be < 1000","_reputationReward":"the total amount of reputation that can be minted by this contract","_startTime":"locking period start time, in seconds since epoch","_token":"the locking token"}},"lock(uint256,uint256,uint256,bytes32)":{"details":"lock function","params":{"_amount":"the amount of token to lock","_batchIndexToLockIn":"the batch index in which the locking period starts. Must be the currently active batch.","_period":"the number of batches that the tokens will be locked for"},"return":"lockingId"},"redeem(address,uint256)":{"details":"redeem reputation function","params":{"_beneficiary":"the beneficiary to redeem.","_lockingId":"the lockingId to redeem from."},"return":"uint256 reputation rewarded"},"release(address,uint256)":{"details":"release function","params":{"_beneficiary":"the beneficiary for the release","_lockingId":"the locking id to release"},"return":"bool"}},"title":"A scheme for continuous locking ERC20 Token for reputation"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContributionReward.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContributionReward.json new file mode 100644 index 00000000..166ba836 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContributionReward.json @@ -0,0 +1 @@ +{"contractName":"ContributionReward","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"},{"indexed":false,"internalType":"int256","name":"_reputationChange","type":"int256"},{"indexed":false,"internalType":"uint256[5]","name":"_rewards","type":"uint256[5]"},{"indexed":false,"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"indexed":false,"internalType":"address","name":"_beneficiary","type":"address"}],"name":"NewContributionProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemExternalToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemNativeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"int256","name":"_amount","type":"int256"}],"name":"RedeemReputation","type":"event"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationsProposals","outputs":[{"internalType":"uint256","name":"nativeTokenReward","type":"uint256"},{"internalType":"int256","name":"reputationChange","type":"int256"},{"internalType":"uint256","name":"ethReward","type":"uint256"},{"internalType":"contract IERC20","name":"externalToken","type":"address"},{"internalType":"uint256","name":"externalTokenReward","type":"uint256"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"periodLength","type":"uint256"},{"internalType":"uint256","name":"numberOfPeriods","type":"uint256"},{"internalType":"uint256","name":"executionTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"bytes32","name":"voteApproveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"intVote","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_param","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_voteApproveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"string","name":"_descriptionHash","type":"string"},{"internalType":"int256","name":"_reputationChange","type":"int256"},{"internalType":"uint256[5]","name":"_rewards","type":"uint256[5]"},{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address payable","name":"_beneficiary","type":"address"}],"name":"proposeContributionReward","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"redeemReputation","outputs":[{"internalType":"int256","name":"reputation","type":"int256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"redeemNativeToken","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"redeemEther","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"redeemExternalToken","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"bool[4]","name":"_whatToRedeem","type":"bool[4]"}],"name":"redeem","outputs":[{"internalType":"int256","name":"reputationReward","type":"int256"},{"internalType":"uint256","name":"nativeTokenReward","type":"uint256"},{"internalType":"uint256","name":"etherReward","type":"uint256"},{"internalType":"uint256","name":"externalTokenReward","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_redeemType","type":"uint256"}],"name":"getPeriodsToPay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_redeemType","type":"uint256"}],"name":"getRedeemedPeriods","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"getProposalEthReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"getProposalExternalTokenReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"getProposalExternalToken","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"getProposalExecutionTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_voteApproveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_reputationChange\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256[5]\",\"name\":\"_rewards\",\"type\":\"uint256[5]\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"NewContributionProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemEther\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemExternalToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemNativeToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_amount\",\"type\":\"int256\"}],\"name\":\"RedeemReputation\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteApproveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_redeemType\",\"type\":\"uint256\"}],\"name\":\"getPeriodsToPay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getProposalEthReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getProposalExecutionTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getProposalExternalToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getProposalExternalTokenReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_redeemType\",\"type\":\"uint256\"}],\"name\":\"getRedeemedPeriods\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationsProposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"reputationChange\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"externalToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"externalTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"periodLength\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numberOfPeriods\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"executionTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"voteApproveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"intVote\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"_reputationChange\",\"type\":\"int256\"},{\"internalType\":\"uint256[5]\",\"name\":\"_rewards\",\"type\":\"uint256[5]\"},{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"proposeContributionReward\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"bool[4]\",\"name\":\"_whatToRedeem\",\"type\":\"bool[4]\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"reputationReward\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"nativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"etherReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalTokenReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"redeemEther\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"redeemExternalToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"redeemNativeToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"redeemReputation\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"reputation\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteApproveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An agent can ask an organization to recognize a contribution and reward him with token, reputation, ether or any combination.\",\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_param\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"getParametersHash(bytes32,address)\":{\"details\":\"return a hash of the given parameters\",\"params\":{\"_intVote\":\"the voting machine used to approve a contribution\",\"_voteApproveParams\":\"parameters for the voting machine used to approve a contribution\"},\"return\":\"a hash of the parameters\"},\"getPeriodsToPay(bytes32,address,uint256)\":{\"details\":\"getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken. The function ignore the reward amount to be paid (which can be zero).\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\",\"_redeemType\":\"- the type of the reward : 0 - reputation 1 - nativeTokenReward 2 - Ether 3 - ExternalToken\"},\"return\":\"periods left to be paid.\"},\"getRedeemedPeriods(bytes32,address,uint256)\":{\"details\":\"getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken.\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\",\"_redeemType\":\"- the type of the reward : 0 - reputation 1 - nativeTokenReward 2 - Ether 3 - ExternalToken\"},\"return\":\"redeemed period.\"},\"proposeContributionReward(address,string,int256,uint256[5],address,address)\":{\"details\":\"Submit a proposal for a reward for a contribution:\",\"params\":{\"_avatar\":\"Avatar of the organization that the contribution was made for\",\"_beneficiary\":\"Who gets the rewards\",\"_descriptionHash\":\"A hash of the proposal's description\",\"_externalToken\":\"Address of external token, if reward is requested there\",\"_reputationChange\":\"- Amount of reputation change requested .Can be negative.\",\"_rewards\":\"rewards array: rewards[0] - Amount of tokens requested per period rewards[1] - Amount of ETH requested per period rewards[2] - Amount of external tokens requested per period rewards[3] - Period length - if set to zero it allows immediate redeeming after execution. rewards[4] - Number of periods\"}},\"redeem(bytes32,address,bool[4])\":{\"details\":\"redeem rewards for proposal\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\",\"_whatToRedeem\":\"whatToRedeem array: whatToRedeem[0] - reputation whatToRedeem[1] - nativeTokenReward whatToRedeem[2] - Ether whatToRedeem[3] - ExternalToken\"},\"return\":\"result boolean array for each redeem type.\"},\"redeemEther(bytes32,address)\":{\"details\":\"RedeemEther reward for proposal\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"amount ether redeemed amount\"},\"redeemExternalToken(bytes32,address)\":{\"details\":\"RedeemNativeToken reward for proposal\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"amount the external token redeemed amount\"},\"redeemNativeToken(bytes32,address)\":{\"details\":\"RedeemNativeToken reward for proposal\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"amount the redeemed nativeToken.\"},\"redeemReputation(bytes32,address)\":{\"details\":\"RedeemReputation reward for proposal\",\"params\":{\"_avatar\":\"address of the controller\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"reputation the redeemed reputation.\"},\"setParameters(bytes32,address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\"}},\"title\":\"A scheme for proposing and rewarding contributions to an organization\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol\":\"ContributionReward\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol\":{\"keccak256\":\"0x7284ec6ef657f09af4f909362e1598e089fb10d2d33ab944526f669e6f9607bb\",\"urls\":[\"bzz-raw://c973f9e5259da1936c23b52af570c287c2ae7ea70649e109cd9c80dbf23b0781\",\"dweb:/ipfs/QmV1QwnpMmp2t7dPEbSWNUBjjM2Luw6ss4YAhb8cvsWzRn\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"499:18650:38:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:18650:38;;;;;;;","deployedSourceMap":"499:18650:38:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;499:18650:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2687:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2687:46:38;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2687:46:38;;;;;;;;;;;;;;;;2288:86;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2288:86:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2288:86:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7149:1328;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7149:1328:38;;;;;;-1:-1:-1;;;;;7149:1328:38;;:::i;:::-;;;;;;;;;;;;;;;;15985:196;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15985:196:38;;;;;;-1:-1:-1;;;;;15985:196:38;;:::i;16848:220::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16848:220:38;;;;;;-1:-1:-1;;;;;16848:220:38;;:::i;16386:184::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16386:184:38;;;;;;-1:-1:-1;;;;;16386:184:38;;:::i;15803:176::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15803:176:38;;;;;;-1:-1:-1;;;;;15803:176:38;;:::i;598:73:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;3836:396:38:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3836:396:38;;;;;;-1:-1:-1;;;;;3836:396:38;;:::i;1973:346:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;5073:1842:38:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;5073:1842:38;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5073:1842:38;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5073:1842:38;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5073:1842:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;5073:1842:38;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5073:1842:38;-1:-1:-1;5073:1842:38;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;5073:1842:38;;-1:-1:-1;;;5073:1842:38;;-1:-1:-1;;;;;5073:1842:38;;;;-1:-1:-1;5073:1842:38;;;;;;;:::i;2666:345:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2999:734:38:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2999:734:38;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2325:335:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;15571:226:38:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15571:226:38;;;-1:-1:-1;;;;;15571:226:38;;;;;;;;;;:::i;8709:1046::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8709:1046:38;;;;;;-1:-1:-1;;;;;8709:1046:38;;:::i;1492:475:50:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;9977:992:38:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9977:992:38;;;;;;-1:-1:-1;;;;;9977:992:38;;:::i;678:401:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;12924:673:38:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;12924:673:38;;;;;;;;;;;;-1:-1:-1;;;;;12924:673:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;12924:673:38;;-1:-1:-1;12924:673:38;;-1:-1:-1;;;;12924:673:38:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14136:975;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14136:975:38;;;-1:-1:-1;;;;;14136:975:38;;;;;;;;;;:::i;11210:1257::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11210:1257:38;;;;;;-1:-1:-1;;;;;11210:1257:38;;:::i;16187:193::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16187:193:38;;;;;;-1:-1:-1;;;;;16187:193:38;;:::i;:::-;;;;-1:-1:-1;;;;;16187:193:38;;;;;;;;;;;;;;1085:401:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;2687:46:38:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2687:46:38;;:::o;2288:86::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2288:86:38;;;;;;;;;;;;;:::o;7149:1328::-;7227:17;7257:37;;:::i;:::-;-1:-1:-1;;;;;7297:40:38;;;;;;;:22;:40;;;;;;;;:53;;;;;;;;;7257:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7297:53;;7257:93;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7257:93:38;;;;-1:-1:-1;;;;;;;;7400:40:38;;7360:37;7400:40;;;:22;:40;;;;;;;;:53;;;;;;;;7471:22;;;;7257:93;;-1:-1:-1;7400:53:38;7463:36;;;;;;7509:20;7532:49;7548:11;7569:7;7579:1;7532:15;:49::i;:::-;7688:1;7660:25;;;:29;;;7732:26;;;;7712:46;;;-1:-1:-1;7509:72:38;;-1:-1:-1;7772:14:38;;7768:373;;;7847:7;-1:-1:-1;;;;;7847:13:38;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7847:15:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7847:15:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7847:15:38;7897:21;;;;7823:114;;;-1:-1:-1;;;7823:114:38;;;;;;;;-1:-1:-1;;;;;7823:114:38;;;;;;;;;;;;;;;;:55;;;;;;;:114;;;;;7847:15;;7823:114;;;;;;;-1:-1:-1;7823:55:38;:114;;;5:2:-1;;;;30:1;27;20:12;5:2;7823:114:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7823:114:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7823:114:38;7802:136;;;;;;7768:373;;;7972:1;7959:10;:14;7955:186;;;8034:7;-1:-1:-1;;;;;8034:13:38;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8034:15:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8034:15:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8034:15:38;8089:21;;;;8010:119;;;-1:-1:-1;;;8010:119:38;;8071:15;;;;8010:119;;;;-1:-1:-1;;;;;8010:119:38;;;;;;;;;;;;;;;;:55;;;;;;;:119;;;;;8034:15;;8010:119;;;;;;;;;:55;:119;;;5:2:-1;;;;30:1;27;20:12;5:2;8010:119:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8010:119:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8010:119:38;7989:141;;;;;;8154:15;;8150:222;;8215:45;8247:12;8215:24;;;8240:1;8215:27;;;;:45;:31;:45;:::i;:::-;8185:24;;;:75;8327:21;;;;8279:82;;;;;;;;-1:-1:-1;;;;;8279:82:38;;;;8314:11;;8279:82;;;;;;;;;;;;;8150:222;-1:-1:-1;8444:26:38;;;;;8416:25;;;;:54;7149:1328;;-1:-1:-1;;7149:1328:38:o;15985:196::-;-1:-1:-1;;;;;16110:31:38;;16084:7;16110:31;;;:22;:31;;;;;;;;:44;;;;;;;;:64;;;15985:196;;;;;:::o;16848:220::-;17013:46;;;;;;;;;;;;;;;;-1:-1:-1;;17013:46:38;;;;;;;26:21:-1;;;22:32;;6:49;;17013:46:38;;;;;;17003:57;;;;;;16848:220::o;16386:184::-;-1:-1:-1;;;;;16505:31:38;16479:7;16505:31;;;:22;:31;;;;;;;;:44;;;;;;;:58;;;;16386:184::o;15803:176::-;-1:-1:-1;;;;;15918:31:38;15892:7;15918:31;;;:22;:31;;;;;;;;:44;;;;;;;:54;;;;15803:176::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;3836:396:38:-;3951:7;3974:18;3995:81;4026:18;4058:8;3995:17;:81::i;:::-;4086:22;;;;:10;:22;;;;;:61;;;4157:30;;:41;;-1:-1:-1;;;;;4157:41:38;;-1:-1:-1;;;;;;4157:41:38;;;;;;3974:102;-1:-1:-1;;3836:396:38;;;;:::o;1973:346:50:-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;1973:346;-1:-1:-1;;;;1973:346:50:o;5073:1842:38:-;5337:7;5360:51;5383:17;5402:8;5360:22;:51::i;:::-;5421:34;;:::i;:::-;5458:10;:48;5469:36;5497:7;5469:27;:36::i;:::-;5458:48;;;;;;;;;;;;;;-1:-1:-1;5458:48:38;;;5421:85;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5421:85:38;;;;;;;;;5542:143;;-1:-1:-1;;;5542:143:38;;5584:1;5542:143;;;;;;;;;;;5639:10;5542:143;;;;;;;;;;;;;5421:85;;-1:-1:-1;;;5542:32:38;;:143;;;;;;;;;;-1:-1:-1;5421:85:38;5542:143;;;5:2:-1;;;;30:1;27;20:12;5:2;5542:143:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5542:143:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5542:143:38;;-1:-1:-1;5726:12:38;-1:-1:-1;;;;;5752:25:38;;5748:80;;-1:-1:-1;5807:10:38;5748:80;5838:36;;:::i;:::-;5877:465;;;;;;;;5931:11;;5877:465;;5931:11;5877:465;;;;;;6016:11;;;5877:465;;;;-1:-1:-1;;;;;5877:465:38;;;;;;;;;;;6105:11;;;;5877:465;;;;;;;;;;6182:11;;;;5877:465;;;;;;;5931:11;6233:1;6224:11;;;;5877:465;;;;6264:1;5877:465;;;;;;;;;;;;6301:1;5877:465;;;;6310:1;5877:465;;;;6319:1;5877:465;;;;6328:1;5877:465;;;;;;5838:504;;6411:8;6352:22;:40;6383:7;-1:-1:-1;;;;;6352:40:38;-1:-1:-1;;;;;6352:40:38;;;;;;;;;;;;:56;6393:14;6352:56;;;;;;;;;;;:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6352:67:38;;;;;-1:-1:-1;;;;;6352:67:38;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6352:67:38;;;;;-1:-1:-1;;;;;6352:67:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;6538:16;:24;;;-1:-1:-1;;;;;6435:274:38;6502:14;6480:7;-1:-1:-1;;;;;6435:274:38;;6577:16;6607:17;6638:8;6660:14;6688:11;6435:274;;;;;;;;;;;;;;;;;;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;6435:274:38;;;;;;;-1:-1:-1;;;;;6435:274:38;-1:-1:-1;;;;;6435:274:38;;;;;;-1:-1:-1;;;;;6435:274:38;-1:-1:-1;;;;;6435:274:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6435:274:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6787:90:38;;;;;;;;6826:12;6787:90;;-1:-1:-1;;;;;6787:90:38;;;;;;;;;;6742:24;;;;6720:48;;-1:-1:-1;6720:48:38;;;;;;;;;:64;;;;;;;;;;:157;;;;;;;;;;;-1:-1:-1;;;;;;6720:157:38;;;;;;;;;;;;-1:-1:-1;6720:64:38;;5073:1842;-1:-1:-1;;;;;5073:1842:38:o;2666:345:50:-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2999:734:38;443:10:50;3108:4:38;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;3087:11:38;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;3124:28:38;;:::i;:::-;-1:-1:-1;3169:10:38;3155:13;:25;;;;;;;;;;;:38;;;;;;;;3124:69;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3124:69:38;;;;;;;3211:48;;;;;;;;:61;;;;;;;;;:75;;;:80;3203:89;;;;;;3341:15;;;;;-1:-1:-1;;;;;3310:48:38;;;3395:1;3310:48;;;:22;:48;;;;;;:61;;;;;;;;;;:73;;;;3302:96;;;;;;3453:6;3463:1;3453:11;3449:179;;;3567:15;;;;;-1:-1:-1;;;;;3536:48:38;;;;;:22;:48;;;;;;:61;;;;;;;3614:3;3536:75;;;;:81;3449:179;3685:11;3667:8;:15;;;-1:-1:-1;;;;;3642:63:38;;3698:6;3642:63;;;;;;;;;;;;;;;;;;-1:-1:-1;3722:4:38;;2999:734;-1:-1:-1;;;;2999:734:38:o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;15571:226:38:-;-1:-1:-1;;;;;15717:31:38;;15691:7;15717:31;;;:22;:31;;;;;;;;:44;;;;;;;;:60;;15778:11;15717:73;;;;;;;;;15710:80;;15571:226;;;;;;:::o;8709:1046::-;8788:14;8815:37;;:::i;:::-;-1:-1:-1;;;;;8855:40:38;;;;;;;:22;:40;;;;;;;;:53;;;;;;;;;8815:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8855:53;;8815:93;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;8815:93:38;;;;-1:-1:-1;;;;;;;;8958:40:38;;8918:37;8958:40;;;:22;:40;;;;;;;;:53;;;;;;;;9029:22;;;;8815:93;;-1:-1:-1;8958:53:38;9021:36;;;;;;9067:20;9090:49;9106:11;9127:7;9137:1;9090:15;:49::i;:::-;9247:1;9218:30;;9285:27;;9067:72;;-1:-1:-1;9268:45:38;;9067:72;;9268:45;:16;:45;:::i;:::-;9259:54;-1:-1:-1;9327:10:38;;9323:324;;9372:7;-1:-1:-1;;;;;9372:13:38;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9372:15:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9372:15:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9372:15:38;9408:21;;;;9361:87;;;-1:-1:-1;;;9361:87:38;;;;;;;;-1:-1:-1;;;;;9361:87:38;;;;;;;;;;;;;;;;:38;;;;;;;:87;;;;;9372:15;;9361:87;;;;;;;-1:-1:-1;9361:38:38;:87;;;5:2:-1;;;;30:1;27;20:12;5:2;9361:87:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9361:87:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9361:87:38;9353:96;;;;;;9493:45;9525:12;9493:24;;;9518:1;9493:27;;:45;9463:27;;;:75;9606:21;;;;9557:79;;;;;;;;-1:-1:-1;;;;;9557:79:38;;;;9593:11;;9557:79;;;;;;;;;;;;;9323:324;-1:-1:-1;9721:27:38;;9692:56;;8709:1046;;-1:-1:-1;;8709:1046:38:o;1492:475:50:-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;9977:992:38:-;10050:14;10077:37;;:::i;:::-;-1:-1:-1;;;;;10117:40:38;;;;;;;:22;:40;;;;;;;;:53;;;;;;;;;10077:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10117:53;;10077:93;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;10077:93:38;;;;-1:-1:-1;;;;;;;;10220:40:38;;10180:37;10220:40;;;:22;:40;;;;;;;;:53;;;;;;;;10291:22;;;;10077:93;;-1:-1:-1;10220:53:38;10283:36;;;;;;10329:20;10352:49;10368:11;10389:7;10399:1;10352:15;:49::i;:::-;10501:1;10480:18;;;:22;10538:19;;;;10329:72;;-1:-1:-1;10521:37:38;;10329:72;;10521:37;:16;:37;:::i;:::-;10512:46;-1:-1:-1;10573:10:38;;10569:308;;10618:7;-1:-1:-1;;;;;10618:13:38;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10618:15:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10618:15:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10618:15:38;10653:21;;;;10607:77;;;-1:-1:-1;;;10607:77:38;;;;;;;;-1:-1:-1;;;;;10607:77:38;;;;;;;;;;;;;;;;:37;;;;;;;:77;;;;;10618:15;;10607:77;;;;;;;-1:-1:-1;10607:37:38;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;10607:77:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10607:77:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10607:77:38;10599:86;;;;;;10729:45;10761:12;10729:24;;;10754:1;10729:27;;:45;10699:27;;;:75;10836:21;;;;10793:73;;;;;;;;-1:-1:-1;;;;;10793:73:38;;;;10823:11;;10793:73;;;;;;;;;;;;;10569:308;-1:-1:-1;10943:19:38;;;;;10922:18;;;;:40;9977:992;;-1:-1:-1;;9977:992:38:o;678:401:50:-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;12924:673:38:-;13030:23;;;;13151:13;13030:23;13151:16;;;;13147:104;;;13202:38;13219:11;13232:7;13202:16;:38::i;:::-;13183:57;;13147:104;13265:16;;;;13261:106;;;13317:39;13335:11;13348:7;13317:17;:39::i;:::-;13297:59;;13261:106;13381:16;;;;13377:94;;;13427:33;13439:11;13452:7;13427:11;:33::i;:::-;13413:47;;13377:94;13485:16;;;;13481:110;;;13539:41;13559:11;13572:7;13539:19;:41::i;:::-;13517:63;;13481:110;12924:673;;;;;;;:::o;14136:975::-;14241:7;14283:1;14268:11;:16;;14260:67;;;;-1:-1:-1;;;14260:67:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14337:37;;:::i;:::-;-1:-1:-1;;;;;14377:31:38;;;;;;;:22;:31;;;;;;;;:44;;;;;;;;;14337:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14377:44;;14337:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14435:9;:23;;;14462:1;14435:28;14431:54;;;14484:1;14477:8;;;;;14431:54;14537:22;;;;14495:28;;14537:26;14533:195;;14694:22;;;;14667:23;;;;14659:32;;:3;;:32;:7;:32;:::i;:::-;14658:59;;;;;;14635:82;;14533:195;14737:20;14772:9;:22;;;14798:1;14772:27;14771:84;;;;14829:9;:25;;;14805:20;:49;;14771:84;14767:309;;;14886:69;14916:9;:25;;;14942:11;14916:38;;;;;;;;;;;14886:25;;;;;:69;:29;:69;:::i;:::-;14871:84;;14767:309;;;15001:64;15026:9;:25;;;15052:11;15026:38;;;;;;;;;;;15001:20;;:64;:24;:64;:::i;:::-;14986:79;;14767:309;15092:12;14136:975;-1:-1:-1;;;;;;14136:975:38:o;11210:1257::-;11291:14;11318:37;;:::i;:::-;-1:-1:-1;;;;;11358:40:38;;;;;;;:22;:40;;;;;;;;:53;;;;;;;;;11318:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11358:53;;11318:93;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;11318:93:38;;;;-1:-1:-1;;;;;;;;11461:40:38;;11421:37;11461:40;;;:22;:40;;;;;;;;:53;;;;;;;;11532:22;;;;11318:93;;-1:-1:-1;11461:53:38;11524:36;;;;;;11570:20;11593:49;11609:11;11630:7;11640:1;11593:15;:49::i;:::-;11752:1;11721:28;;;:32;11768:22;;;;11570:72;;-1:-1:-1;;;;;;11768:22:38;:35;;;;:72;;;11839:1;11807:9;:29;;;:33;11768:72;11764:592;;;11882:29;;;;11865:47;;:12;;:47;:16;:47;:::i;:::-;11856:56;-1:-1:-1;11930:10:38;;11926:420;;12013:7;-1:-1:-1;;;;;12013:13:38;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12013:15:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;12013:15:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12013:15:38;12069:23;;;;12094:21;;;;11985:148;;;-1:-1:-1;;;11985:148:38;;-1:-1:-1;;;;;11985:148:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;:83;;;;;;;:148;;;;;12013:15;;11985:148;;;;;;;-1:-1:-1;11985:83:38;:148;;;5:2:-1;;;;30:1;27;20:12;5:2;11985:148:38;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11985:148:38;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11985:148:38;11960:174;;;;;;12182:45;12214:12;12182:24;;;12207:1;12182:27;;:45;12152:27;;;:75;12301:21;;;;12250:81;;;;;;;;-1:-1:-1;;;;;12250:81:38;;;;12288:11;;12250:81;;;;;;;;;;;;;11926:420;-1:-1:-1;12431:29:38;;;;;12400:28;;;;:60;11210:1257;;-1:-1:-1;;11210:1257:38:o;16187:193::-;-1:-1:-1;;;;;16314:31:38;;;16280:7;16314:31;;;:22;:31;;;;;;;;:44;;;;;;;;;;:58;;;;;16187:193::o;1085:401:50:-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;834:176:66;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;17768:1378:38;17884:11;;;;:15;;;17883:39;;-1:-1:-1;17905:11:38;;;;17920:1;17905:16;17883:39;17874:106;;;;-1:-1:-1;;;17874:106:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17994:11;;;;:15;17990:1150;;18120:11;;;;-1:-1:-1;;18116:22:38;:56;;;;;18142:17;-1:-1:-1;;;18142:30:38;18116:56;18114:59;18106:133;;;;-1:-1:-1;;;18106:133:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18384:11;;;;18400:17;;18340:36;;;18384:11;18339:57;;;;;:78;18331:151;;;;-1:-1:-1;;;18331:151:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18622:11;;18607;;;;18578:25;;;18607:11;18577:41;;;;;:56;18569:124;;;;-1:-1:-1;;;18569:124:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18831:11;;;;18816;;;;18787:25;;;18816:11;18786:41;;;;;:56;18778:122;;;;-1:-1:-1;;;18778:122:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19049:11;;;;19034;;;;19005:25;;;19034:11;19004:41;;;;;:56;18996:133;;;;-1:-1:-1;;;18996:133:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17768:1378;;:::o;290:322:43:-;365:7;403;-1:-1:-1;;;;;403:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;403:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;403:15:43;392:79;;;-1:-1:-1;;;392:79:43;;447:4;392:79;;;;-1:-1:-1;;;;;392:79:43;;;;;;;;;:46;;;;;;;:79;;;;;403:15;;392:79;;;;;;;:46;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;392:79:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;392:79:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;392:79:43;384:124;;;;;-1:-1:-1;;;384:124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;-1:-1:-1;;;;;536:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;536:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;536:15:43;525:80;;;-1:-1:-1;;;525:80:43;;581:4;525:80;;;;-1:-1:-1;;;;;525:80:43;;;;;;;;;:47;;;;;;;:80;;;;;536:15;;525:80;;;;;;;:47;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;525:80:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;525:80:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;525:80:43;;290:322;-1:-1:-1;;290:322:43:o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:134;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;499:18650:38:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;499:18650:38;;;;;;;;;;;-1:-1:-1;;;;;499:18650:38;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;499:18650:38;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;499:18650:38;;;-1:-1:-1;499:18650:38;:::i;:::-;;;:::o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;499:18650:38;;;-1:-1:-1;;499:18650:38:o;:::-;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"./UniversalScheme.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\n/**\n * @title A scheme for proposing and rewarding contributions to an organization\n * @dev An agent can ask an organization to recognize a contribution and reward\n * him with token, reputation, ether or any combination.\n */\n\ncontract ContributionReward is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface {\n using SafeMath for uint;\n\n event NewContributionProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n string _descriptionHash,\n int256 _reputationChange,\n uint[5] _rewards,\n IERC20 _externalToken,\n address _beneficiary\n );\n\n event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param);\n\n event RedeemReputation(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n int256 _amount);\n\n event RedeemEther(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n uint256 _amount);\n\n event RedeemNativeToken(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n uint256 _amount);\n\n event RedeemExternalToken(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n uint256 _amount);\n\n // A struct holding the data for a contribution proposal\n struct ContributionProposal {\n uint256 nativeTokenReward; // Reward asked in the native token of the organization.\n int256 reputationChange; // Organization reputation reward requested.\n uint256 ethReward;\n IERC20 externalToken;\n uint256 externalTokenReward;\n address payable beneficiary;\n uint256 periodLength;\n uint256 numberOfPeriods;\n uint256 executionTime;\n uint[4] redeemedPeriods;\n }\n\n // A mapping from the organization (Avatar) address to the saved data of the organization:\n mapping(address=>mapping(bytes32=>ContributionProposal)) public organizationsProposals;\n\n // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n struct Parameters {\n bytes32 voteApproveParams;\n IntVoteInterface intVote;\n }\n\n // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n mapping(bytes32=>Parameters) public parameters;\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _param a parameter of the voting result, 1 yes and 2 is no.\n */\n function executeProposal(bytes32 _proposalId, int256 _param) external onlyVotingMachine(_proposalId) returns(bool) {\n ProposalInfo memory proposal = proposalsInfo[msg.sender][_proposalId];\n require(organizationsProposals[address(proposal.avatar)][_proposalId].executionTime == 0);\n require(organizationsProposals[address(proposal.avatar)][_proposalId].beneficiary != address(0));\n // Check if vote was successful:\n if (_param == 1) {\n // solhint-disable-next-line not-rely-on-time\n organizationsProposals[address(proposal.avatar)][_proposalId].executionTime = now;\n }\n emit ProposalExecuted(address(proposal.avatar), _proposalId, _param);\n return true;\n }\n\n /**\n * @dev hash the parameters, save them if necessary, and return the hash value\n */\n function setParameters(\n bytes32 _voteApproveParams,\n IntVoteInterface _intVote\n ) public returns(bytes32)\n {\n bytes32 paramsHash = getParametersHash(\n _voteApproveParams,\n _intVote\n );\n parameters[paramsHash].voteApproveParams = _voteApproveParams;\n parameters[paramsHash].intVote = _intVote;\n return paramsHash;\n }\n\n /**\n * @dev Submit a proposal for a reward for a contribution:\n * @param _avatar Avatar of the organization that the contribution was made for\n * @param _descriptionHash A hash of the proposal's description\n * @param _reputationChange - Amount of reputation change requested .Can be negative.\n * @param _rewards rewards array:\n * rewards[0] - Amount of tokens requested per period\n * rewards[1] - Amount of ETH requested per period\n * rewards[2] - Amount of external tokens requested per period\n * rewards[3] - Period length - if set to zero it allows immediate redeeming after execution.\n * rewards[4] - Number of periods\n * @param _externalToken Address of external token, if reward is requested there\n * @param _beneficiary Who gets the rewards\n */\n function proposeContributionReward(\n Avatar _avatar,\n string memory _descriptionHash,\n int256 _reputationChange,\n uint[5] memory _rewards,\n IERC20 _externalToken,\n address payable _beneficiary\n )\n public\n returns(bytes32)\n {\n validateProposalParams(_reputationChange, _rewards);\n Parameters memory controllerParams = parameters[getParametersFromController(_avatar)];\n\n bytes32 contributionId = controllerParams.intVote.propose(\n 2,\n controllerParams.voteApproveParams,\n msg.sender,\n address(_avatar)\n );\n\n address payable beneficiary = _beneficiary;\n if (beneficiary == address(0)) {\n beneficiary = msg.sender;\n }\n\n ContributionProposal memory proposal = ContributionProposal({\n nativeTokenReward: _rewards[0],\n reputationChange: _reputationChange,\n ethReward: _rewards[1],\n externalToken: _externalToken,\n externalTokenReward: _rewards[2],\n beneficiary: beneficiary,\n periodLength: _rewards[3],\n numberOfPeriods: _rewards[4],\n executionTime: 0,\n redeemedPeriods:[uint(0), uint(0), uint(0), uint(0)]\n });\n organizationsProposals[address(_avatar)][contributionId] = proposal;\n\n emit NewContributionProposal(\n address(_avatar),\n contributionId,\n address(controllerParams.intVote),\n _descriptionHash,\n _reputationChange,\n _rewards,\n _externalToken,\n beneficiary\n );\n\n proposalsInfo[address(controllerParams.intVote)][contributionId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return contributionId;\n }\n\n /**\n * @dev RedeemReputation reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @return reputation the redeemed reputation.\n */\n function redeemReputation(bytes32 _proposalId, Avatar _avatar) public returns(int256 reputation) {\n\n ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId];\n ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId];\n require(proposal.executionTime != 0);\n uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 0);\n\n //set proposal reward to zero to prevent reentrancy attack.\n proposal.reputationChange = 0;\n reputation = int(periodsToPay) * _proposal.reputationChange;\n if (reputation > 0) {\n require(\n Controller(\n _avatar.owner()).mintReputation(uint(reputation), _proposal.beneficiary, address(_avatar)));\n } else if (reputation < 0) {\n require(\n Controller(\n _avatar.owner()).burnReputation(uint(reputation*(-1)), _proposal.beneficiary, address(_avatar)));\n }\n if (reputation != 0) {\n proposal.redeemedPeriods[0] = proposal.redeemedPeriods[0].add(periodsToPay);\n emit RedeemReputation(address(_avatar), _proposalId, _proposal.beneficiary, reputation);\n }\n //restore proposal reward.\n proposal.reputationChange = _proposal.reputationChange;\n }\n\n /**\n * @dev RedeemNativeToken reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @return amount the redeemed nativeToken.\n */\n function redeemNativeToken(bytes32 _proposalId, Avatar _avatar) public returns(uint256 amount) {\n\n ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId];\n ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId];\n require(proposal.executionTime != 0);\n uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 1);\n //set proposal rewards to zero to prevent reentrancy attack.\n proposal.nativeTokenReward = 0;\n\n amount = periodsToPay.mul(_proposal.nativeTokenReward);\n if (amount > 0) {\n require(Controller(_avatar.owner()).mintTokens(amount, _proposal.beneficiary, address(_avatar)));\n proposal.redeemedPeriods[1] = proposal.redeemedPeriods[1].add(periodsToPay);\n emit RedeemNativeToken(address(_avatar), _proposalId, _proposal.beneficiary, amount);\n }\n\n //restore proposal reward.\n proposal.nativeTokenReward = _proposal.nativeTokenReward;\n }\n\n /**\n * @dev RedeemEther reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @return amount ether redeemed amount\n */\n function redeemEther(bytes32 _proposalId, Avatar _avatar) public returns(uint256 amount) {\n\n ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId];\n ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId];\n require(proposal.executionTime != 0);\n uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 2);\n //set proposal rewards to zero to prevent reentrancy attack.\n proposal.ethReward = 0;\n amount = periodsToPay.mul(_proposal.ethReward);\n\n if (amount > 0) {\n require(Controller(_avatar.owner()).sendEther(amount, _proposal.beneficiary, _avatar));\n proposal.redeemedPeriods[2] = proposal.redeemedPeriods[2].add(periodsToPay);\n emit RedeemEther(address(_avatar), _proposalId, _proposal.beneficiary, amount);\n }\n\n //restore proposal reward.\n proposal.ethReward = _proposal.ethReward;\n }\n\n /**\n * @dev RedeemNativeToken reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @return amount the external token redeemed amount\n */\n function redeemExternalToken(bytes32 _proposalId, Avatar _avatar) public returns(uint256 amount) {\n\n ContributionProposal memory _proposal = organizationsProposals[address(_avatar)][_proposalId];\n ContributionProposal storage proposal = organizationsProposals[address(_avatar)][_proposalId];\n require(proposal.executionTime != 0);\n uint256 periodsToPay = getPeriodsToPay(_proposalId, address(_avatar), 3);\n //set proposal rewards to zero to prevent reentrancy attack.\n proposal.externalTokenReward = 0;\n\n if (proposal.externalToken != IERC20(0) && _proposal.externalTokenReward > 0) {\n amount = periodsToPay.mul(_proposal.externalTokenReward);\n if (amount > 0) {\n require(\n Controller(\n _avatar.owner())\n .externalTokenTransfer(_proposal.externalToken, _proposal.beneficiary, amount, _avatar));\n proposal.redeemedPeriods[3] = proposal.redeemedPeriods[3].add(periodsToPay);\n emit RedeemExternalToken(address(_avatar), _proposalId, _proposal.beneficiary, amount);\n }\n }\n //restore proposal reward.\n proposal.externalTokenReward = _proposal.externalTokenReward;\n }\n\n /**\n * @dev redeem rewards for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @param _whatToRedeem whatToRedeem array:\n * whatToRedeem[0] - reputation\n * whatToRedeem[1] - nativeTokenReward\n * whatToRedeem[2] - Ether\n * whatToRedeem[3] - ExternalToken\n * @return result boolean array for each redeem type.\n */\n function redeem(bytes32 _proposalId, Avatar _avatar, bool[4] memory _whatToRedeem)\n public\n returns(int256 reputationReward, uint256 nativeTokenReward, uint256 etherReward, uint256 externalTokenReward)\n {\n\n if (_whatToRedeem[0]) {\n reputationReward = redeemReputation(_proposalId, _avatar);\n }\n\n if (_whatToRedeem[1]) {\n nativeTokenReward = redeemNativeToken(_proposalId, _avatar);\n }\n\n if (_whatToRedeem[2]) {\n etherReward = redeemEther(_proposalId, _avatar);\n }\n\n if (_whatToRedeem[3]) {\n externalTokenReward = redeemExternalToken(_proposalId, _avatar);\n }\n }\n\n /**\n * @dev getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken.\n * The function ignore the reward amount to be paid (which can be zero).\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @param _redeemType - the type of the reward :\n * 0 - reputation\n * 1 - nativeTokenReward\n * 2 - Ether\n * 3 - ExternalToken\n * @return periods left to be paid.\n */\n function getPeriodsToPay(bytes32 _proposalId, address _avatar, uint256 _redeemType) public view returns (uint256) {\n require(_redeemType <= 3, \"should be in the redeemedPeriods range\");\n ContributionProposal memory _proposal = organizationsProposals[_avatar][_proposalId];\n if (_proposal.executionTime == 0)\n return 0;\n uint256 periodsFromExecution;\n if (_proposal.periodLength > 0) {\n // solhint-disable-next-line not-rely-on-time\n periodsFromExecution = (now.sub(_proposal.executionTime))/(_proposal.periodLength);\n }\n uint256 periodsToPay;\n if ((_proposal.periodLength == 0) || (periodsFromExecution >= _proposal.numberOfPeriods)) {\n periodsToPay = _proposal.numberOfPeriods.sub(_proposal.redeemedPeriods[_redeemType]);\n } else {\n periodsToPay = periodsFromExecution.sub(_proposal.redeemedPeriods[_redeemType]);\n }\n return periodsToPay;\n }\n\n /**\n * @dev getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @param _redeemType - the type of the reward :\n * 0 - reputation\n * 1 - nativeTokenReward\n * 2 - Ether\n * 3 - ExternalToken\n * @return redeemed period.\n */\n function getRedeemedPeriods(bytes32 _proposalId, address _avatar, uint256 _redeemType)\n public\n view\n returns (uint256) {\n return organizationsProposals[_avatar][_proposalId].redeemedPeriods[_redeemType];\n }\n\n function getProposalEthReward(bytes32 _proposalId, address _avatar) public view returns (uint256) {\n return organizationsProposals[_avatar][_proposalId].ethReward;\n }\n\n function getProposalExternalTokenReward(bytes32 _proposalId, address _avatar) public view returns (uint256) {\n return organizationsProposals[_avatar][_proposalId].externalTokenReward;\n }\n\n function getProposalExternalToken(bytes32 _proposalId, address _avatar) public view returns (address) {\n return address(organizationsProposals[_avatar][_proposalId].externalToken);\n }\n\n function getProposalExecutionTime(bytes32 _proposalId, address _avatar) public view returns (uint256) {\n return organizationsProposals[_avatar][_proposalId].executionTime;\n }\n\n /**\n * @dev return a hash of the given parameters\n * @param _voteApproveParams parameters for the voting machine used to approve a contribution\n * @param _intVote the voting machine used to approve a contribution\n * @return a hash of the parameters\n */\n function getParametersHash(\n bytes32 _voteApproveParams,\n IntVoteInterface _intVote\n ) public pure returns(bytes32)\n {\n return (keccak256(abi.encodePacked(_voteApproveParams, _intVote)));\n }\n\n /**\n * @dev validateProposalParams validate proposal's rewards parameters.\n * The function check for potential overflow upon proposal's redeem.\n * The function reverts if the params are not valid.\n * @param _reputationChange - Amount of reputation change requested .Can be negative.\n * @param _rewards rewards array:\n * rewards[0] - Amount of tokens requested per period\n * rewards[1] - Amount of ETH requested per period\n * rewards[2] - Amount of external tokens requested per period\n * rewards[3] - Period length - if set to zero it allows immediate redeeming after execution.\n * rewards[4] - Number of periods\n */\n function validateProposalParams(int256 _reputationChange, uint[5] memory _rewards) private pure {\n require(((_rewards[3] > 0) || (_rewards[4] == 1)), \"periodLength equal 0 require numberOfPeriods to be 1\");\n if (_rewards[4] > 0) {\n // This is the only case of overflow not detected by the check below\n require(!(int(_rewards[4]) == -1 && _reputationChange == (-2**255)),\n \"numberOfPeriods * _reputationChange will overflow\");\n //check that numberOfPeriods * _reputationChange will not overflow\n require((int(_rewards[4]) * _reputationChange) / int(_rewards[4]) == _reputationChange,\n \"numberOfPeriods * reputationChange will overflow\");\n //check that numberOfPeriods * tokenReward will not overflow\n require((_rewards[4] * _rewards[0]) / _rewards[4] == _rewards[0],\n \"numberOfPeriods * tokenReward will overflow\");\n //check that numberOfPeriods * ethReward will not overflow\n require((_rewards[4] * _rewards[1]) / _rewards[4] == _rewards[1],\n \"numberOfPeriods * ethReward will overflow\");\n //check that numberOfPeriods * texternalTokenReward will not overflow\n require((_rewards[4] * _rewards[2]) / _rewards[4] == _rewards[2],\n \"numberOfPeriods * texternalTokenReward will overflow\");\n }\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol","exportedSymbols":{"ContributionReward":[10909]},"id":10910,"nodeType":"SourceUnit","nodes":[{"id":9623,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:38"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":9624,"nodeType":"ImportDirective","scope":10910,"sourceUnit":19817,"src":"25:71:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":9625,"nodeType":"ImportDirective","scope":10910,"sourceUnit":20032,"src":"97:86:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":9626,"nodeType":"ImportDirective","scope":10910,"sourceUnit":12635,"src":"184:31:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":9627,"nodeType":"ImportDirective","scope":10910,"sourceUnit":14651,"src":"216:54:38","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9628,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"530:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":9629,"nodeType":"InheritanceSpecifier","src":"530:15:38"},{"arguments":null,"baseName":{"contractScope":null,"id":9630,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"547:22:38","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":9631,"nodeType":"InheritanceSpecifier","src":"547:22:38"},{"arguments":null,"baseName":{"contractScope":null,"id":9632,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"571:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":9633,"nodeType":"InheritanceSpecifier","src":"571:24:38"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme for proposing and rewarding contributions to an organization\n@dev An agent can ask an organization to recognize a contribution and reward\nhim with token, reputation, ether or any combination.","fullyImplemented":true,"id":10909,"linearizedBaseContracts":[10909,19828,14650,20031,12634,12645],"name":"ContributionReward","nodeType":"ContractDefinition","nodes":[{"id":9636,"libraryName":{"contractScope":null,"id":9634,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"608:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"602:24:38","typeName":{"id":9635,"name":"uint","nodeType":"ElementaryTypeName","src":"621:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":9656,"name":"NewContributionProposal","nodeType":"EventDefinition","parameters":{"id":9655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9638,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9656,"src":"671:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9637,"name":"address","nodeType":"ElementaryTypeName","src":"671:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9640,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9656,"src":"704:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"704:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9642,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":9656,"src":"741:33:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9641,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9644,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":9656,"src":"784:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9643,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":9646,"indexed":false,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":9656,"src":"817:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9645,"name":"int256","nodeType":"ElementaryTypeName","src":"817:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9650,"indexed":false,"name":"_rewards","nodeType":"VariableDeclaration","scope":9656,"src":"851:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":9647,"name":"uint","nodeType":"ElementaryTypeName","src":"851:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9649,"length":{"argumentTypes":null,"hexValue":"35","id":9648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"856:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"851:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"},{"constant":false,"id":9652,"indexed":false,"name":"_externalToken","nodeType":"VariableDeclaration","scope":9656,"src":"878:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9651,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"878:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":9654,"indexed":false,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9656,"src":"909:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9653,"name":"address","nodeType":"ElementaryTypeName","src":"909:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"661:274:38"},"src":"632:304:38"},{"anonymous":false,"documentation":null,"id":9664,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":9663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9658,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9664,"src":"965:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9657,"name":"address","nodeType":"ElementaryTypeName","src":"965:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9660,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9664,"src":"990:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"990:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9662,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":9664,"src":"1019:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9661,"name":"int256","nodeType":"ElementaryTypeName","src":"1019:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"964:69:38"},"src":"942:92:38"},{"anonymous":false,"documentation":null,"id":9674,"name":"RedeemReputation","nodeType":"EventDefinition","parameters":{"id":9673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9666,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9674,"src":"1072:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9665,"name":"address","nodeType":"ElementaryTypeName","src":"1072:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9668,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9674,"src":"1105:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1105:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9670,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9674,"src":"1142:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9669,"name":"address","nodeType":"ElementaryTypeName","src":"1142:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9672,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9674,"src":"1180:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9671,"name":"int256","nodeType":"ElementaryTypeName","src":"1180:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1062:133:38"},"src":"1040:156:38"},{"anonymous":false,"documentation":null,"id":9684,"name":"RedeemEther","nodeType":"EventDefinition","parameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9676,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9684,"src":"1220:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9675,"name":"address","nodeType":"ElementaryTypeName","src":"1220:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9678,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9684,"src":"1253:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1253:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9680,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9684,"src":"1290:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9679,"name":"address","nodeType":"ElementaryTypeName","src":"1290:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9682,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9684,"src":"1328:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9681,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1219:125:38"},"src":"1202:143:38"},{"anonymous":false,"documentation":null,"id":9694,"name":"RedeemNativeToken","nodeType":"EventDefinition","parameters":{"id":9693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9686,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9694,"src":"1375:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9685,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9688,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9694,"src":"1408:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1408:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9690,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9694,"src":"1445:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9689,"name":"address","nodeType":"ElementaryTypeName","src":"1445:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9692,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9694,"src":"1483:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9691,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1374:125:38"},"src":"1351:149:38"},{"anonymous":false,"documentation":null,"id":9704,"name":"RedeemExternalToken","nodeType":"EventDefinition","parameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9696,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9704,"src":"1532:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9695,"name":"address","nodeType":"ElementaryTypeName","src":"1532:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9698,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9704,"src":"1565:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1565:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9700,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9704,"src":"1602:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9699,"name":"address","nodeType":"ElementaryTypeName","src":"1602:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9702,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9704,"src":"1640:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1531:125:38"},"src":"1506:151:38"},{"canonicalName":"ContributionReward.ContributionProposal","id":9727,"members":[{"constant":false,"id":9706,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":9727,"src":"1762:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9705,"name":"uint256","nodeType":"ElementaryTypeName","src":"1762:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9708,"name":"reputationChange","nodeType":"VariableDeclaration","scope":9727,"src":"1854:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9707,"name":"int256","nodeType":"ElementaryTypeName","src":"1854:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9710,"name":"ethReward","nodeType":"VariableDeclaration","scope":9727,"src":"1932:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9712,"name":"externalToken","nodeType":"VariableDeclaration","scope":9727,"src":"1959:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9711,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1959:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":9714,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":9727,"src":"1989:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9713,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9716,"name":"beneficiary","nodeType":"VariableDeclaration","scope":9727,"src":"2026:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9715,"name":"address","nodeType":"ElementaryTypeName","src":"2026:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":9718,"name":"periodLength","nodeType":"VariableDeclaration","scope":9727,"src":"2063:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9717,"name":"uint256","nodeType":"ElementaryTypeName","src":"2063:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9720,"name":"numberOfPeriods","nodeType":"VariableDeclaration","scope":9727,"src":"2093:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9719,"name":"uint256","nodeType":"ElementaryTypeName","src":"2093:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9722,"name":"executionTime","nodeType":"VariableDeclaration","scope":9727,"src":"2126:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9721,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9726,"name":"redeemedPeriods","nodeType":"VariableDeclaration","scope":9727,"src":"2157:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":9723,"name":"uint","nodeType":"ElementaryTypeName","src":"2157:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9725,"length":{"argumentTypes":null,"hexValue":"34","id":9724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"2157:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"value":null,"visibility":"internal"}],"name":"ContributionProposal","nodeType":"StructDefinition","scope":10909,"src":"1724:463:38","visibility":"public"},{"constant":false,"id":9733,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":10909,"src":"2288:86:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal))"},"typeName":{"id":9732,"keyType":{"id":9728,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2288:56:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal))"},"valueType":{"id":9731,"keyType":{"id":9729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2313:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2305:38:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal)"},"valueType":{"contractScope":null,"id":9730,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"2322:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"ContributionReward.Parameters","id":9738,"members":[{"constant":false,"id":9735,"name":"voteApproveParams","nodeType":"VariableDeclaration","scope":9738,"src":"2512:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2512:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9737,"name":"intVote","nodeType":"VariableDeclaration","scope":9738,"src":"2547:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":9736,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"2547:16:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":10909,"src":"2484:94:38","visibility":"public"},{"constant":false,"id":9742,"name":"parameters","nodeType":"VariableDeclaration","scope":10909,"src":"2687:46:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters)"},"typeName":{"id":9741,"keyType":{"id":9739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2695:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2687:28:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters)"},"valueType":{"contractScope":null,"id":9740,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":9738,"src":"2704:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage_ptr","typeString":"struct ContributionReward.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":9821,"nodeType":"Block","src":"3114:619:38","statements":[{"assignments":[9755],"declarations":[{"constant":false,"id":9755,"name":"proposal","nodeType":"VariableDeclaration","scope":9821,"src":"3124:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"},"typeName":{"contractScope":null,"id":9754,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"3124:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}},"value":null,"visibility":"internal"}],"id":9762,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9756,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"3155:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":9759,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9757,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3169:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3169:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3155:25:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":9761,"indexExpression":{"argumentTypes":null,"id":9760,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3181:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3155:38:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3124:69:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9764,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"3211:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9769,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9766,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3242:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3242:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3234:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3234:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3211:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9771,"indexExpression":{"argumentTypes":null,"id":9770,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3260:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3211:61:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"3211:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3290:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3211:80:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3203:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3203:89:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9776,"nodeType":"ExpressionStatement","src":"3203:89:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":9790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9778,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"3310:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9783,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9780,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3341:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3341:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3333:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3333:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3310:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9785,"indexExpression":{"argumentTypes":null,"id":9784,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3359:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3310:61:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"3310:73:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3395:1:38","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":9787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3387:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3387:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3310:87:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9777,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3302:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3302:96:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9792,"nodeType":"ExpressionStatement","src":"3302:96:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9793,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9746,"src":"3453:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":9794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3463:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3453:11:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9809,"nodeType":"IfStatement","src":"3449:179:38","trueBody":{"id":9808,"nodeType":"Block","src":"3466:162:38","statements":[{"expression":{"argumentTypes":null,"id":9806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9796,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"3536:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9802,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9798,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3567:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3567:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3559:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3559:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3536:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9803,"indexExpression":{"argumentTypes":null,"id":9801,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3585:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3536:61:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"3536:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9805,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3614:3:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3536:81:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9807,"nodeType":"ExpressionStatement","src":"3536:81:38"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9812,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3667:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3667:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3659:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":9815,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3685:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":9816,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9746,"src":"3698:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9810,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"3642:16:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":9817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3642:63:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9818,"nodeType":"EmitStatement","src":"3637:68:38"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3722:4:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9753,"id":9820,"nodeType":"Return","src":"3715:11:38"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":9822,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":9749,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3087:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":9750,"modifierName":{"argumentTypes":null,"id":9748,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"3069:17:38","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3069:30:38"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":9747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9744,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9822,"src":"3024:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3024:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9746,"name":"_param","nodeType":"VariableDeclaration","scope":9822,"src":"3045:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9745,"name":"int256","nodeType":"ElementaryTypeName","src":"3045:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"3023:36:38"},"returnParameters":{"id":9753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9752,"name":"","nodeType":"VariableDeclaration","scope":9822,"src":"3108:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9751,"name":"bool","nodeType":"ElementaryTypeName","src":"3108:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3107:6:38"},"scope":10909,"src":"2999:734:38","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":9854,"nodeType":"Block","src":"3964:268:38","statements":[{"assignments":[9832],"declarations":[{"constant":false,"id":9832,"name":"paramsHash","nodeType":"VariableDeclaration","scope":9854,"src":"3974:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3974:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":9837,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9834,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"4026:18:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":9835,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4058:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":9833,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10771,"src":"3995:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":9836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3995:81:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3974:102:38"},{"expression":{"argumentTypes":null,"id":9843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9838,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"4086:10:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters storage ref)"}},"id":9840,"indexExpression":{"argumentTypes":null,"id":9839,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4097:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4086:22:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage","typeString":"struct ContributionReward.Parameters storage ref"}},"id":9841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteApproveParams","nodeType":"MemberAccess","referencedDeclaration":9735,"src":"4086:40:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9842,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"4129:18:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4086:61:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9844,"nodeType":"ExpressionStatement","src":"4086:61:38"},{"expression":{"argumentTypes":null,"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9845,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"4157:10:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters storage ref)"}},"id":9847,"indexExpression":{"argumentTypes":null,"id":9846,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4168:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4157:22:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage","typeString":"struct ContributionReward.Parameters storage ref"}},"id":9848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"4157:30:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9849,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4190:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"4157:41:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":9851,"nodeType":"ExpressionStatement","src":"4157:41:38"},{"expression":{"argumentTypes":null,"id":9852,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4215:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9830,"id":9853,"nodeType":"Return","src":"4208:17:38"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":9855,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":9827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9824,"name":"_voteApproveParams","nodeType":"VariableDeclaration","scope":9855,"src":"3868:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3868:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9826,"name":"_intVote","nodeType":"VariableDeclaration","scope":9855,"src":"3904:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":9825,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3904:16:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3858:77:38"},"returnParameters":{"id":9830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9829,"name":"","nodeType":"VariableDeclaration","scope":9855,"src":"3951:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3951:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3950:9:38"},"scope":10909,"src":"3836:396:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9998,"nodeType":"Block","src":"5350:1565:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9875,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"5383:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":9876,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"5402:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}],"id":9874,"name":"validateProposalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10908,"src":"5360:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_array$_t_uint256_$5_memory_ptr_$returns$__$","typeString":"function (int256,uint256[5] memory) pure"}},"id":9877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5360:51:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9878,"nodeType":"ExpressionStatement","src":"5360:51:38"},{"assignments":[9880],"declarations":[{"constant":false,"id":9880,"name":"controllerParams","nodeType":"VariableDeclaration","scope":9998,"src":"5421:34:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters"},"typeName":{"contractScope":null,"id":9879,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":9738,"src":"5421:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage_ptr","typeString":"struct ContributionReward.Parameters"}},"value":null,"visibility":"internal"}],"id":9886,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9881,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"5458:10:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters storage ref)"}},"id":9885,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9883,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"5497:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9882,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"5469:27:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":9884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5469:36:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5458:48:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage","typeString":"struct ContributionReward.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5421:85:38"},{"assignments":[9888],"declarations":[{"constant":false,"id":9888,"name":"contributionId","nodeType":"VariableDeclaration","scope":9998,"src":"5517:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5517:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":9901,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":9892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5584:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9893,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"5595:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteApproveParams","nodeType":"MemberAccess","referencedDeclaration":9735,"src":"5595:34:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9895,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5639:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5639:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9898,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"5667:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5659:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5659:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9889,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"5542:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"5542:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":9891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"5542:32:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:143:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5517:168:38"},{"assignments":[9903],"declarations":[{"constant":false,"id":9903,"name":"beneficiary","nodeType":"VariableDeclaration","scope":9998,"src":"5696:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9902,"name":"address","nodeType":"ElementaryTypeName","src":"5696:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":9905,"initialValue":{"argumentTypes":null,"id":9904,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9869,"src":"5726:12:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"5696:42:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":9910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9906,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"5752:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5775:1:38","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":9907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5767:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5767:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5752:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9917,"nodeType":"IfStatement","src":"5748:80:38","trueBody":{"id":9916,"nodeType":"Block","src":"5779:49:38","statements":[{"expression":{"argumentTypes":null,"id":9914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9911,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"5793:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9912,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5807:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5807:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5793:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9915,"nodeType":"ExpressionStatement","src":"5793:24:38"}]}},{"assignments":[9919],"declarations":[{"constant":false,"id":9919,"name":"proposal","nodeType":"VariableDeclaration","scope":9998,"src":"5838:36:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":9918,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"5838:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":9954,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9921,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"5931:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9923,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":9922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5940:1:38","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":"5931:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9924,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"5974:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9925,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6016:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9927,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":9926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6025:1:38","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":"6016:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9928,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9867,"src":"6056:14:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9929,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6105:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9931,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":9930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6114:1:38","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":"6105:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9932,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"6143:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9933,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6182:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9935,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":9934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6191:1:38","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":"6182:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9936,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6224:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9938,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":9937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6233:1:38","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":"6224:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":9939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6264:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6301:1:38","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":9940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6296:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6296:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6310:1:38","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":9943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6305:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6305:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6319:1:38","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":9946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6314:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6314:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6328:1:38","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":9949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6323:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6323:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9952,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6295:36:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}],"id":9920,"name":"ContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9727,"src":"5877:20:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ContributionProposal_$9727_storage_ptr_$","typeString":"type(struct ContributionReward.ContributionProposal storage pointer)"}},"id":9953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nativeTokenReward","reputationChange","ethReward","externalToken","externalTokenReward","beneficiary","periodLength","numberOfPeriods","executionTime","redeemedPeriods"],"nodeType":"FunctionCall","src":"5877:465:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory","typeString":"struct ContributionReward.ContributionProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"5838:504:38"},{"expression":{"argumentTypes":null,"id":9963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9955,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"6352:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9960,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9957,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"6383:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6375:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6375:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9961,"indexExpression":{"argumentTypes":null,"id":9959,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6393:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6352:56:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9962,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"6411:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"src":"6352:67:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9964,"nodeType":"ExpressionStatement","src":"6352:67:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9967,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"6480:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6472:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6472:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":9969,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6502:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9971,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"6538:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"6538:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":9970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6530:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6530:33:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9974,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9859,"src":"6577:16:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":9975,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"6607:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":9976,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6638:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},{"argumentTypes":null,"id":9977,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9867,"src":"6660:14:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":9978,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"6688:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9965,"name":"NewContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"6435:23:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_string_memory_ptr_$_t_int256_$_t_array$_t_uint256_$5_memory_ptr_$_t_contract$_IERC20_$21017_$_t_address_$returns$__$","typeString":"function (address,bytes32,address,string memory,int256,uint256[5] memory,contract IERC20,address)"}},"id":9979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6435:274:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9980,"nodeType":"EmitStatement","src":"6430:279:38"},{"expression":{"argumentTypes":null,"id":9994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9981,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6720:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":9987,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9983,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"6742:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"6742:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":9982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6734:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6734:33:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6720:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":9988,"indexExpression":{"argumentTypes":null,"id":9986,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6769:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6720:64:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9990,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"6826:5:38","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6826:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9992,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"6859:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9989,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"6787:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":9993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"6787:90:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6720:157:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":9995,"nodeType":"ExpressionStatement","src":"6720:157:38"},{"expression":{"argumentTypes":null,"id":9996,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6894:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9873,"id":9997,"nodeType":"Return","src":"6887:21:38"}]},"documentation":"@dev Submit a proposal for a reward for a contribution:\n@param _avatar Avatar of the organization that the contribution was made for\n@param _descriptionHash A hash of the proposal's description\n@param _reputationChange - Amount of reputation change requested .Can be negative.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested per period\n rewards[1] - Amount of ETH requested per period\n rewards[2] - Amount of external tokens requested per period\n rewards[3] - Period length - if set to zero it allows immediate redeeming after execution.\n rewards[4] - Number of periods\n@param _externalToken Address of external token, if reward is requested there\n@param _beneficiary Who gets the rewards","id":9999,"implemented":true,"kind":"function","modifiers":[],"name":"proposeContributionReward","nodeType":"FunctionDefinition","parameters":{"id":9870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9857,"name":"_avatar","nodeType":"VariableDeclaration","scope":9999,"src":"5117:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":9856,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"5117:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":9859,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":9999,"src":"5141:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9858,"name":"string","nodeType":"ElementaryTypeName","src":"5141:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":9861,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":9999,"src":"5181:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9860,"name":"int256","nodeType":"ElementaryTypeName","src":"5181:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9865,"name":"_rewards","nodeType":"VariableDeclaration","scope":9999,"src":"5215:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":9862,"name":"uint","nodeType":"ElementaryTypeName","src":"5215:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9864,"length":{"argumentTypes":null,"hexValue":"35","id":9863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5220:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"5215:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"},{"constant":false,"id":9867,"name":"_externalToken","nodeType":"VariableDeclaration","scope":9999,"src":"5248:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9866,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"5248:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":9869,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9999,"src":"5279:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9868,"name":"address","nodeType":"ElementaryTypeName","src":"5279:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"5107:206:38"},"returnParameters":{"id":9873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9872,"name":"","nodeType":"VariableDeclaration","scope":9999,"src":"5337:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5337:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5336:9:38"},"scope":10909,"src":"5073:1842:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10146,"nodeType":"Block","src":"7246:1231:38","statements":[{"assignments":[10009],"declarations":[{"constant":false,"id":10009,"name":"_proposal","nodeType":"VariableDeclaration","scope":10146,"src":"7257:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10008,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"7257:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10017,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10010,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"7297:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10014,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10012,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7328:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7320:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7297:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10016,"indexExpression":{"argumentTypes":null,"id":10015,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7338:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7297:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7257:93:38"},{"assignments":[10019],"declarations":[{"constant":false,"id":10019,"name":"proposal","nodeType":"VariableDeclaration","scope":10146,"src":"7360:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10018,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"7360:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10027,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10020,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"7400:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10024,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10022,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7431:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7423:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7423:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7400:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10026,"indexExpression":{"argumentTypes":null,"id":10025,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7441:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7400:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7360:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10029,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"7471:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"7471:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7497:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7471:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10028,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7463:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7463:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10034,"nodeType":"ExpressionStatement","src":"7463:36:38"},{"assignments":[10036],"declarations":[{"constant":false,"id":10036,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10146,"src":"7509:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10035,"name":"uint256","nodeType":"ElementaryTypeName","src":"7509:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10044,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10038,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7548:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10040,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7569:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7561:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7561:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":10042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7579:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10037,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"7532:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7532:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7509:72:38"},{"expression":{"argumentTypes":null,"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10045,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"7660:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"7660:25:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7688:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7660:29:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10050,"nodeType":"ExpressionStatement","src":"7660:29:38"},{"expression":{"argumentTypes":null,"id":10058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10051,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7699:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10053,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"7716:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7712:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7712:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10055,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7732:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"7732:26:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7712:46:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7699:59:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10059,"nodeType":"ExpressionStatement","src":"7699:59:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10060,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7772:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7785:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7772:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10082,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7959:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7972:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7959:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10108,"nodeType":"IfStatement","src":"7955:186:38","trueBody":{"id":10107,"nodeType":"Block","src":"7975:166:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10093,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"8071:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":10095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"8083:2:38","subExpression":{"argumentTypes":null,"hexValue":"31","id":10094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8084:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"id":10096,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8082:4:38","typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"8071:15:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8066:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":10098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8066:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10099,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"8089:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"8089:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10102,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"8120:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8112:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8112:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10087,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"8034:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"8034:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8034:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10086,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"8010:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8010:40:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"8010:55:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":10104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8010:119:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7989:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7989:141:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10106,"nodeType":"ExpressionStatement","src":"7989:141:38"}]}},"id":10109,"nodeType":"IfStatement","src":"7768:373:38","trueBody":{"id":10081,"nodeType":"Block","src":"7788:161:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10071,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7884:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7879:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7879:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10073,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7897:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"7897:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10076,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7928:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7920:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7920:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10065,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7847:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"7847:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7847:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10064,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7823:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7823:40:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"7823:55:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":10078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7823:114:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10063,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7802:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7802:136:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10080,"nodeType":"ExpressionStatement","src":"7802:136:38"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10110,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"8154:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8168:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8154:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10138,"nodeType":"IfStatement","src":"8150:222:38","trueBody":{"id":10137,"nodeType":"Block","src":"8171:201:38","statements":[{"expression":{"argumentTypes":null,"id":10125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10113,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"8185:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"8185:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10117,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8210:1:38","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":"8185:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10123,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"8247:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"8215:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"8215:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10121,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8240:1:38","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":"8215:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8215:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8215:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8185:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10126,"nodeType":"ExpressionStatement","src":"8185:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10129,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"8304:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8296:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8296:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10131,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"8314:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10132,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"8327:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"8327:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10134,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"8350:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10127,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"8279:16:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,bytes32,address,int256)"}},"id":10135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8279:82:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10136,"nodeType":"EmitStatement","src":"8274:87:38"}]}},{"expression":{"argumentTypes":null,"id":10144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10139,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"8416:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"8416:25:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10142,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"8444:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"8444:26:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8416:54:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10145,"nodeType":"ExpressionStatement","src":"8416:54:38"}]},"documentation":"@dev RedeemReputation reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return reputation the redeemed reputation.","id":10147,"implemented":true,"kind":"function","modifiers":[],"name":"redeemReputation","nodeType":"FunctionDefinition","parameters":{"id":10004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10001,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10147,"src":"7175:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7175:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10003,"name":"_avatar","nodeType":"VariableDeclaration","scope":10147,"src":"7196:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10002,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"7196:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"7174:37:38"},"returnParameters":{"id":10007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10006,"name":"reputation","nodeType":"VariableDeclaration","scope":10147,"src":"7227:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10005,"name":"int256","nodeType":"ElementaryTypeName","src":"7227:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"7226:19:38"},"scope":10909,"src":"7149:1328:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10259,"nodeType":"Block","src":"8804:951:38","statements":[{"assignments":[10157],"declarations":[{"constant":false,"id":10157,"name":"_proposal","nodeType":"VariableDeclaration","scope":10259,"src":"8815:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10156,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"8815:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10165,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10158,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"8855:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10162,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10160,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"8886:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8878:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8878:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8855:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10164,"indexExpression":{"argumentTypes":null,"id":10163,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"8896:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8855:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8815:93:38"},{"assignments":[10167],"declarations":[{"constant":false,"id":10167,"name":"proposal","nodeType":"VariableDeclaration","scope":10259,"src":"8918:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10166,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"8918:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10175,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10168,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"8958:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10172,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10170,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"8989:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8981:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8981:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8958:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10174,"indexExpression":{"argumentTypes":null,"id":10173,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"8999:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8958:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8918:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10177,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9029:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"9029:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9055:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9029:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"9021:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9021:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10182,"nodeType":"ExpressionStatement","src":"9021:36:38"},{"assignments":[10184],"declarations":[{"constant":false,"id":10184,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10259,"src":"9067:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10183,"name":"uint256","nodeType":"ElementaryTypeName","src":"9067:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10192,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10186,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"9106:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10188,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9127:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9119:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9119:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"31","id":10190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9137:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":10185,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"9090:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9090:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9067:72:38"},{"expression":{"argumentTypes":null,"id":10197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10193,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9218:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9218:26:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9247:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9218:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10198,"nodeType":"ExpressionStatement","src":"9218:30:38"},{"expression":{"argumentTypes":null,"id":10205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10199,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9259:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10202,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9285:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9285:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10200,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10184,"src":"9268:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"9268:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9268:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9259:54:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10206,"nodeType":"ExpressionStatement","src":"9259:54:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10207,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9327:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9336:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9327:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10251,"nodeType":"IfStatement","src":"9323:324:38","trueBody":{"id":10250,"nodeType":"Block","src":"9339:308:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10217,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9400:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10218,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9408:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"9408:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10221,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9439:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9431:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9431:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10212,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9372:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"9372:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9372:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10211,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"9361:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9361:27:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"9361:38:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":10223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9361:87:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"9353:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9353:96:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10225,"nodeType":"ExpressionStatement","src":"9353:96:38"},{"expression":{"argumentTypes":null,"id":10238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9463:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"9463:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10230,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9488:1:38","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":"9463:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10236,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10184,"src":"9525:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10231,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9493:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"9493:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10234,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9518:1:38","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":"9493:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"9493:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9493:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9463:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10239,"nodeType":"ExpressionStatement","src":"9463:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10242,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9583:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9575:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9575:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10244,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"9593:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10245,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9606:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"9606:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9629:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10240,"name":"RedeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9694,"src":"9557:17:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":10248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9557:79:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10249,"nodeType":"EmitStatement","src":"9552:84:38"}]}},{"expression":{"argumentTypes":null,"id":10257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10252,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9692:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9692:26:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10255,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9721:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9721:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9692:56:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10258,"nodeType":"ExpressionStatement","src":"9692:56:38"}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return amount the redeemed nativeToken.","id":10260,"implemented":true,"kind":"function","modifiers":[],"name":"redeemNativeToken","nodeType":"FunctionDefinition","parameters":{"id":10152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10149,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10260,"src":"8736:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8736:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10151,"name":"_avatar","nodeType":"VariableDeclaration","scope":10260,"src":"8757:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10150,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"8757:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"8735:37:38"},"returnParameters":{"id":10155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10154,"name":"amount","nodeType":"VariableDeclaration","scope":10260,"src":"8788:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10153,"name":"uint256","nodeType":"ElementaryTypeName","src":"8788:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8787:16:38"},"scope":10909,"src":"8709:1046:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10370,"nodeType":"Block","src":"10066:903:38","statements":[{"assignments":[10270],"declarations":[{"constant":false,"id":10270,"name":"_proposal","nodeType":"VariableDeclaration","scope":10370,"src":"10077:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10269,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"10077:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10278,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10271,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"10117:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10275,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10273,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10148:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10140:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10140:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10117:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10277,"indexExpression":{"argumentTypes":null,"id":10276,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10158:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10117:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10077:93:38"},{"assignments":[10280],"declarations":[{"constant":false,"id":10280,"name":"proposal","nodeType":"VariableDeclaration","scope":10370,"src":"10180:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10279,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"10180:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10288,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10281,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"10220:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10285,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10283,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10251:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10243:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10243:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10220:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10287,"indexExpression":{"argumentTypes":null,"id":10286,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10261:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10220:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10180:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10290,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10291:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"10291:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10317:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10291:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10283:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10283:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10295,"nodeType":"ExpressionStatement","src":"10283:36:38"},{"assignments":[10297],"declarations":[{"constant":false,"id":10297,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10370,"src":"10329:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10296,"name":"uint256","nodeType":"ElementaryTypeName","src":"10329:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10305,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10299,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10368:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10301,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10389:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10381:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10381:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"32","id":10303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10399:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":10298,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"10352:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10352:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10329:72:38"},{"expression":{"argumentTypes":null,"id":10310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10306,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10480:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10480:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10501:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10480:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10311,"nodeType":"ExpressionStatement","src":"10480:22:38"},{"expression":{"argumentTypes":null,"id":10318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10312,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10512:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10315,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10538:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10538:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10313,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"10521:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"10521:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10521:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10512:46:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10319,"nodeType":"ExpressionStatement","src":"10512:46:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10320,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10573:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10582:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10573:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10362,"nodeType":"IfStatement","src":"10569:308:38","trueBody":{"id":10361,"nodeType":"Block","src":"10585:292:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10330,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10645:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10331,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10653:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"10653:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10333,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10676:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10325,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10618:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"10618:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10618:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10324,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"10607:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10607:27:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendEther","nodeType":"MemberAccess","referencedDeclaration":1503,"src":"10607:37:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_payable_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (uint256,address payable,contract Avatar) external returns (bool)"}},"id":10334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10607:77:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10599:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10599:86:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10336,"nodeType":"ExpressionStatement","src":"10599:86:38"},{"expression":{"argumentTypes":null,"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10337,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10699:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"10699:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10341,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10724:1:38","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":"10699:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10347,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"10761:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10342,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10729:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"10729:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10345,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10754:1:38","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":"10729:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10729:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10729:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10699:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10350,"nodeType":"ExpressionStatement","src":"10699:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10353,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10813:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10805:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10805:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10355,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10823:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10356,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10836:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"10836:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10358,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10859:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10351,"name":"RedeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9684,"src":"10793:11:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10793:73:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10360,"nodeType":"EmitStatement","src":"10788:78:38"}]}},{"expression":{"argumentTypes":null,"id":10368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10363,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10922:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10922:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10366,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10943:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10943:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10922:40:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10369,"nodeType":"ExpressionStatement","src":"10922:40:38"}]},"documentation":"@dev RedeemEther reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return amount ether redeemed amount","id":10371,"implemented":true,"kind":"function","modifiers":[],"name":"redeemEther","nodeType":"FunctionDefinition","parameters":{"id":10265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10371,"src":"9998:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9998:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10264,"name":"_avatar","nodeType":"VariableDeclaration","scope":10371,"src":"10019:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10263,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"10019:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"9997:37:38"},"returnParameters":{"id":10268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10267,"name":"amount","nodeType":"VariableDeclaration","scope":10371,"src":"10050:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10266,"name":"uint256","nodeType":"ElementaryTypeName","src":"10050:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10049:16:38"},"scope":10909,"src":"9977:992:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10496,"nodeType":"Block","src":"11307:1160:38","statements":[{"assignments":[10381],"declarations":[{"constant":false,"id":10381,"name":"_proposal","nodeType":"VariableDeclaration","scope":10496,"src":"11318:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10380,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"11318:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10389,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10382,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"11358:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10386,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10384,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"11389:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11381:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11381:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11358:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10388,"indexExpression":{"argumentTypes":null,"id":10387,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"11399:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11358:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11318:93:38"},{"assignments":[10391],"declarations":[{"constant":false,"id":10391,"name":"proposal","nodeType":"VariableDeclaration","scope":10496,"src":"11421:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10390,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"11421:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10399,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10392,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"11461:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10396,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10394,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"11492:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11484:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11484:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11461:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10398,"indexExpression":{"argumentTypes":null,"id":10397,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"11502:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11461:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11421:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"11532:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"11532:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11558:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11532:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10400,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11524:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11524:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10406,"nodeType":"ExpressionStatement","src":"11524:36:38"},{"assignments":[10408],"declarations":[{"constant":false,"id":10408,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10496,"src":"11570:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10407,"name":"uint256","nodeType":"ElementaryTypeName","src":"11570:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10416,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10410,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"11609:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10412,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"11630:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11622:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11622:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"33","id":10414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11640:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":10409,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"11593:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11593:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11570:72:38"},{"expression":{"argumentTypes":null,"id":10421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10417,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"11721:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"11721:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11752:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11721:32:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10422,"nodeType":"ExpressionStatement","src":"11721:32:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":10428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"11768:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":9712,"src":"11768:22:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11801:1:38","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":10425,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"11794:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11794:9:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"11768:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10429,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"11807:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"11807:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11839:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11807:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11768:72:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10488,"nodeType":"IfStatement","src":"11764:592:38","trueBody":{"id":10487,"nodeType":"Block","src":"11842:514:38","statements":[{"expression":{"argumentTypes":null,"id":10440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10434,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"11856:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10437,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"11882:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"11882:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10435,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"11865:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"11865:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11865:47:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11856:56:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10441,"nodeType":"ExpressionStatement","src":"11856:56:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10442,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"11930:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11939:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11930:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10486,"nodeType":"IfStatement","src":"11926:420:38","trueBody":{"id":10485,"nodeType":"Block","src":"11942:404:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10452,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12069:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":9712,"src":"12069:23:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10454,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12094:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"12094:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10456,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"12117:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":10457,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"12125:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10447,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"12013:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"12013:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12013:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10446,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"11985:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11985:44:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1534,"src":"11985:83:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,contract Avatar) external returns (bool)"}},"id":10458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11985:148:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11960:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11960:174:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10460,"nodeType":"ExpressionStatement","src":"11960:174:38"},{"expression":{"argumentTypes":null,"id":10473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10461,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"12152:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"12152:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10465,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12177:1:38","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":"12152:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10471,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"12214:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10466,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"12182:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"12182:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10469,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12207:1:38","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":"12182:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"12182:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12182:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12152:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10474,"nodeType":"ExpressionStatement","src":"12152:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10477,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"12278:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12270:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12270:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10479,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"12288:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10480,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12301:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"12301:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10482,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"12324:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10475,"name":"RedeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9704,"src":"12250:19:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":10483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12250:81:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10484,"nodeType":"EmitStatement","src":"12245:86:38"}]}}]}},{"expression":{"argumentTypes":null,"id":10494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"12400:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"12400:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10492,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12431:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"12431:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12400:60:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10495,"nodeType":"ExpressionStatement","src":"12400:60:38"}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return amount the external token redeemed amount","id":10497,"implemented":true,"kind":"function","modifiers":[],"name":"redeemExternalToken","nodeType":"FunctionDefinition","parameters":{"id":10376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10373,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10497,"src":"11239:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11239:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10375,"name":"_avatar","nodeType":"VariableDeclaration","scope":10497,"src":"11260:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10374,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"11260:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"11238:37:38"},"returnParameters":{"id":10379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10378,"name":"amount","nodeType":"VariableDeclaration","scope":10497,"src":"11291:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10377,"name":"uint256","nodeType":"ElementaryTypeName","src":"11291:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11290:16:38"},"scope":10909,"src":"11210:1257:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10564,"nodeType":"Block","src":"13136:461:38","statements":[{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10516,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13151:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10518,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13165:1:38","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":"13151:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10527,"nodeType":"IfStatement","src":"13147:104:38","trueBody":{"id":10526,"nodeType":"Block","src":"13169:82:38","statements":[{"expression":{"argumentTypes":null,"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10519,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"13183:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10521,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13219:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10522,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13232:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10520,"name":"redeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"13202:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_int256_$","typeString":"function (bytes32,contract Avatar) returns (int256)"}},"id":10523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13202:38:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13183:57:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10525,"nodeType":"ExpressionStatement","src":"13183:57:38"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10528,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13265:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10530,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13279:1:38","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":"13265:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10539,"nodeType":"IfStatement","src":"13261:106:38","trueBody":{"id":10538,"nodeType":"Block","src":"13283:84:38","statements":[{"expression":{"argumentTypes":null,"id":10536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10531,"name":"nativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10510,"src":"13297:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10533,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13335:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10534,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13348:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10532,"name":"redeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10260,"src":"13317:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_uint256_$","typeString":"function (bytes32,contract Avatar) returns (uint256)"}},"id":10535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13317:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13297:59:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10537,"nodeType":"ExpressionStatement","src":"13297:59:38"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10540,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13381:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10542,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13395:1:38","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":"13381:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10551,"nodeType":"IfStatement","src":"13377:94:38","trueBody":{"id":10550,"nodeType":"Block","src":"13399:72:38","statements":[{"expression":{"argumentTypes":null,"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10543,"name":"etherReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10512,"src":"13413:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10545,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13439:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10546,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13452:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10544,"name":"redeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10371,"src":"13427:11:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_uint256_$","typeString":"function (bytes32,contract Avatar) returns (uint256)"}},"id":10547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13427:33:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13413:47:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10549,"nodeType":"ExpressionStatement","src":"13413:47:38"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10552,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13485:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10554,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13499:1:38","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":"13485:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10563,"nodeType":"IfStatement","src":"13481:110:38","trueBody":{"id":10562,"nodeType":"Block","src":"13503:88:38","statements":[{"expression":{"argumentTypes":null,"id":10560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10555,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"13517:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10557,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13559:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10558,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13572:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10556,"name":"redeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10497,"src":"13539:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_uint256_$","typeString":"function (bytes32,contract Avatar) returns (uint256)"}},"id":10559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13539:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13517:63:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10561,"nodeType":"ExpressionStatement","src":"13517:63:38"}]}}]},"documentation":"@dev redeem rewards for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _whatToRedeem whatToRedeem array:\n whatToRedeem[0] - reputation\n whatToRedeem[1] - nativeTokenReward\n whatToRedeem[2] - Ether\n whatToRedeem[3] - ExternalToken\n@return result boolean array for each redeem type.","id":10565,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":10506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10499,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10565,"src":"12940:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12940:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10501,"name":"_avatar","nodeType":"VariableDeclaration","scope":10565,"src":"12961:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10500,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"12961:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":10505,"name":"_whatToRedeem","nodeType":"VariableDeclaration","scope":10565,"src":"12977:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":10502,"name":"bool","nodeType":"ElementaryTypeName","src":"12977:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10504,"length":{"argumentTypes":null,"hexValue":"34","id":10503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12982:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"12977:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"src":"12939:67:38"},"returnParameters":{"id":10515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10508,"name":"reputationReward","nodeType":"VariableDeclaration","scope":10565,"src":"13030:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10507,"name":"int256","nodeType":"ElementaryTypeName","src":"13030:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10510,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":10565,"src":"13055:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10509,"name":"uint256","nodeType":"ElementaryTypeName","src":"13055:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10512,"name":"etherReward","nodeType":"VariableDeclaration","scope":10565,"src":"13082:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10511,"name":"uint256","nodeType":"ElementaryTypeName","src":"13082:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10514,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":10565,"src":"13103:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10513,"name":"uint256","nodeType":"ElementaryTypeName","src":"13103:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13029:102:38"},"scope":10909,"src":"12924:673:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10660,"nodeType":"Block","src":"14250:861:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10577,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"14268:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"33","id":10578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14283:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14268:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73686f756c6420626520696e207468652072656465656d6564506572696f64732072616e6765","id":10580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14286:40:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_bd4ef719b23c5e3871f26867b3b48c4c02d5ad3d8d736edd8425236f128c30e7","typeString":"literal_string \"should be in the redeemedPeriods range\""},"value":"should be in the redeemedPeriods range"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd4ef719b23c5e3871f26867b3b48c4c02d5ad3d8d736edd8425236f128c30e7","typeString":"literal_string \"should be in the redeemedPeriods range\""}],"id":10576,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"14260:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14260:67:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10582,"nodeType":"ExpressionStatement","src":"14260:67:38"},{"assignments":[10584],"declarations":[{"constant":false,"id":10584,"name":"_proposal","nodeType":"VariableDeclaration","scope":10660,"src":"14337:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10583,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"14337:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10590,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10585,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"14377:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10587,"indexExpression":{"argumentTypes":null,"id":10586,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10569,"src":"14400:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14377:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10589,"indexExpression":{"argumentTypes":null,"id":10588,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10567,"src":"14409:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14377:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14337:84:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10591,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14435:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"14435:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14462:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14435:28:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10597,"nodeType":"IfStatement","src":"14431:54:38","trueBody":{"expression":{"argumentTypes":null,"hexValue":"30","id":10595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14484:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":10575,"id":10596,"nodeType":"Return","src":"14477:8:38"}},{"assignments":[10599],"declarations":[{"constant":false,"id":10599,"name":"periodsFromExecution","nodeType":"VariableDeclaration","scope":10660,"src":"14495:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10598,"name":"uint256","nodeType":"ElementaryTypeName","src":"14495:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10600,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14495:28:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10601,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14537:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"periodLength","nodeType":"MemberAccess","referencedDeclaration":9718,"src":"14537:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14562:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14537:26:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10619,"nodeType":"IfStatement","src":"14533:195:38","trueBody":{"id":10618,"nodeType":"Block","src":"14565:163:38","statements":[{"expression":{"argumentTypes":null,"id":10616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10605,"name":"periodsFromExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10599,"src":"14635:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10608,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14667:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"14667:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10606,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"14659:3:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"14659:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14659:32:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14658:34:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10612,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14694:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"periodLength","nodeType":"MemberAccess","referencedDeclaration":9718,"src":"14694:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14693:24:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14658:59:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14635:82:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10617,"nodeType":"ExpressionStatement","src":"14635:82:38"}]}},{"assignments":[10621],"declarations":[{"constant":false,"id":10621,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10660,"src":"14737:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10620,"name":"uint256","nodeType":"ElementaryTypeName","src":"14737:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10622,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14737:20:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10623,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14772:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"periodLength","nodeType":"MemberAccess","referencedDeclaration":9718,"src":"14772:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14798:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14772:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14771:29:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10628,"name":"periodsFromExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10599,"src":"14805:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10629,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14829:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfPeriods","nodeType":"MemberAccess","referencedDeclaration":9720,"src":"14829:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14805:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10632,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14804:51:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:84:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10656,"nodeType":"Block","src":"14972:104:38","statements":[{"expression":{"argumentTypes":null,"id":10654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10646,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"14986:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10649,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"15026:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"15026:25:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory","typeString":"uint256[4] memory"}},"id":10652,"indexExpression":{"argumentTypes":null,"id":10651,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"15052:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15026:38:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10647,"name":"periodsFromExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10599,"src":"15001:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"15001:24:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15001:64:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14986:79:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10655,"nodeType":"ExpressionStatement","src":"14986:79:38"}]},"id":10657,"nodeType":"IfStatement","src":"14767:309:38","trueBody":{"id":10645,"nodeType":"Block","src":"14857:109:38","statements":[{"expression":{"argumentTypes":null,"id":10643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10634,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"14871:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10638,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14916:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"14916:25:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory","typeString":"uint256[4] memory"}},"id":10641,"indexExpression":{"argumentTypes":null,"id":10640,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"14942:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14916:38:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10635,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14886:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfPeriods","nodeType":"MemberAccess","referencedDeclaration":9720,"src":"14886:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"14886:29:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14886:69:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14871:84:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10644,"nodeType":"ExpressionStatement","src":"14871:84:38"}]}},{"expression":{"argumentTypes":null,"id":10658,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"15092:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10575,"id":10659,"nodeType":"Return","src":"15085:19:38"}]},"documentation":"@dev getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken.\nThe function ignore the reward amount to be paid (which can be zero).\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _redeemType - the type of the reward :\n 0 - reputation\n 1 - nativeTokenReward\n 2 - Ether\n 3 - ExternalToken\n@return periods left to be paid.","id":10661,"implemented":true,"kind":"function","modifiers":[],"name":"getPeriodsToPay","nodeType":"FunctionDefinition","parameters":{"id":10572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10567,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10661,"src":"14161:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14161:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10569,"name":"_avatar","nodeType":"VariableDeclaration","scope":10661,"src":"14182:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10568,"name":"address","nodeType":"ElementaryTypeName","src":"14182:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":10571,"name":"_redeemType","nodeType":"VariableDeclaration","scope":10661,"src":"14199:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10570,"name":"uint256","nodeType":"ElementaryTypeName","src":"14199:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14160:59:38"},"returnParameters":{"id":10575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10574,"name":"","nodeType":"VariableDeclaration","scope":10661,"src":"14241:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10573,"name":"uint256","nodeType":"ElementaryTypeName","src":"14241:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14240:9:38"},"scope":10909,"src":"14136:975:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10681,"nodeType":"Block","src":"15700:97:38","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10672,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"15717:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10674,"indexExpression":{"argumentTypes":null,"id":10673,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10665,"src":"15740:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15717:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10676,"indexExpression":{"argumentTypes":null,"id":10675,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10663,"src":"15749:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15717:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"15717:60:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10679,"indexExpression":{"argumentTypes":null,"id":10678,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10667,"src":"15778:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15717:73:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10671,"id":10680,"nodeType":"Return","src":"15710:80:38"}]},"documentation":"@dev getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken.\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _redeemType - the type of the reward :\n 0 - reputation\n 1 - nativeTokenReward\n 2 - Ether\n 3 - ExternalToken\n@return redeemed period.","id":10682,"implemented":true,"kind":"function","modifiers":[],"name":"getRedeemedPeriods","nodeType":"FunctionDefinition","parameters":{"id":10668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10663,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10682,"src":"15599:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15599:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10665,"name":"_avatar","nodeType":"VariableDeclaration","scope":10682,"src":"15620:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10664,"name":"address","nodeType":"ElementaryTypeName","src":"15620:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":10667,"name":"_redeemType","nodeType":"VariableDeclaration","scope":10682,"src":"15637:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10666,"name":"uint256","nodeType":"ElementaryTypeName","src":"15637:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15598:59:38"},"returnParameters":{"id":10671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10670,"name":"","nodeType":"VariableDeclaration","scope":10682,"src":"15691:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10669,"name":"uint256","nodeType":"ElementaryTypeName","src":"15691:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15690:9:38"},"scope":10909,"src":"15571:226:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10698,"nodeType":"Block","src":"15901:78:38","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10691,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"15918:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10693,"indexExpression":{"argumentTypes":null,"id":10692,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"15941:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15918:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10695,"indexExpression":{"argumentTypes":null,"id":10694,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"15950:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15918:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"15918:54:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10690,"id":10697,"nodeType":"Return","src":"15911:61:38"}]},"documentation":null,"id":10699,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalEthReward","nodeType":"FunctionDefinition","parameters":{"id":10687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10684,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10699,"src":"15833:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15833:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10686,"name":"_avatar","nodeType":"VariableDeclaration","scope":10699,"src":"15854:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10685,"name":"address","nodeType":"ElementaryTypeName","src":"15854:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"15832:38:38"},"returnParameters":{"id":10690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10689,"name":"","nodeType":"VariableDeclaration","scope":10699,"src":"15892:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10688,"name":"uint256","nodeType":"ElementaryTypeName","src":"15892:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15891:9:38"},"scope":10909,"src":"15803:176:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10715,"nodeType":"Block","src":"16093:88:38","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10708,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"16110:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10710,"indexExpression":{"argumentTypes":null,"id":10709,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10703,"src":"16133:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16110:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10712,"indexExpression":{"argumentTypes":null,"id":10711,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10701,"src":"16142:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16110:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"16110:64:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10707,"id":10714,"nodeType":"Return","src":"16103:71:38"}]},"documentation":null,"id":10716,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalTokenReward","nodeType":"FunctionDefinition","parameters":{"id":10704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10701,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10716,"src":"16025:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16025:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10703,"name":"_avatar","nodeType":"VariableDeclaration","scope":10716,"src":"16046:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10702,"name":"address","nodeType":"ElementaryTypeName","src":"16046:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16024:38:38"},"returnParameters":{"id":10707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10706,"name":"","nodeType":"VariableDeclaration","scope":10716,"src":"16084:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10705,"name":"uint256","nodeType":"ElementaryTypeName","src":"16084:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16083:9:38"},"scope":10909,"src":"15985:196:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10734,"nodeType":"Block","src":"16289:91:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10726,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"16314:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10728,"indexExpression":{"argumentTypes":null,"id":10727,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10720,"src":"16337:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16314:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10730,"indexExpression":{"argumentTypes":null,"id":10729,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"16346:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16314:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":9712,"src":"16314:58:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":10725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16306:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16306:67:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10724,"id":10733,"nodeType":"Return","src":"16299:74:38"}]},"documentation":null,"id":10735,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalToken","nodeType":"FunctionDefinition","parameters":{"id":10721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10718,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10735,"src":"16221:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16221:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10720,"name":"_avatar","nodeType":"VariableDeclaration","scope":10735,"src":"16242:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10719,"name":"address","nodeType":"ElementaryTypeName","src":"16242:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16220:38:38"},"returnParameters":{"id":10724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10723,"name":"","nodeType":"VariableDeclaration","scope":10735,"src":"16280:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10722,"name":"address","nodeType":"ElementaryTypeName","src":"16280:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16279:9:38"},"scope":10909,"src":"16187:193:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10751,"nodeType":"Block","src":"16488:82:38","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10744,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"16505:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10746,"indexExpression":{"argumentTypes":null,"id":10745,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10739,"src":"16528:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16505:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10748,"indexExpression":{"argumentTypes":null,"id":10747,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10737,"src":"16537:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16505:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"16505:58:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10743,"id":10750,"nodeType":"Return","src":"16498:65:38"}]},"documentation":null,"id":10752,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExecutionTime","nodeType":"FunctionDefinition","parameters":{"id":10740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10737,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10752,"src":"16420:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16420:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10739,"name":"_avatar","nodeType":"VariableDeclaration","scope":10752,"src":"16441:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10738,"name":"address","nodeType":"ElementaryTypeName","src":"16441:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16419:38:38"},"returnParameters":{"id":10743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10742,"name":"","nodeType":"VariableDeclaration","scope":10752,"src":"16479:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10741,"name":"uint256","nodeType":"ElementaryTypeName","src":"16479:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16478:9:38"},"scope":10909,"src":"16386:184:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10770,"nodeType":"Block","src":"16985:83:38","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10764,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"17030:18:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10765,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10756,"src":"17050:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":10762,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"17013:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17013:16:38","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17013:46:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10761,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"17003:9:38","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17003:57:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10768,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17002:59:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10760,"id":10769,"nodeType":"Return","src":"16995:66:38"}]},"documentation":"@dev return a hash of the given parameters\n@param _voteApproveParams parameters for the voting machine used to approve a contribution\n@param _intVote the voting machine used to approve a contribution\n@return a hash of the parameters","id":10771,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":10757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10754,"name":"_voteApproveParams","nodeType":"VariableDeclaration","scope":10771,"src":"16884:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16884:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10756,"name":"_intVote","nodeType":"VariableDeclaration","scope":10771,"src":"16920:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":10755,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"16920:16:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"16874:77:38"},"returnParameters":{"id":10760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10759,"name":"","nodeType":"VariableDeclaration","scope":10771,"src":"16972:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16972:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"16971:9:38"},"scope":10909,"src":"16848:220:38","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":10907,"nodeType":"Block","src":"17864:1282:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10781,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"17884:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10783,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17893:1:38","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":"17884:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17898:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17884:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10786,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17883:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10787,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"17905:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10789,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17914:1:38","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":"17905:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":10790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17920:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17905:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17904:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17883:39:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17882:41:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"706572696f644c656e67746820657175616c20302072657175697265206e756d6265724f66506572696f647320746f2062652031","id":10795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17925:54:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_184adae7a751af32b21a6c9ed23b7708e5a5b5f5f10a65f1b2801f2057c75169","typeString":"literal_string \"periodLength equal 0 require numberOfPeriods to be 1\""},"value":"periodLength equal 0 require numberOfPeriods to be 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_184adae7a751af32b21a6c9ed23b7708e5a5b5f5f10a65f1b2801f2057c75169","typeString":"literal_string \"periodLength equal 0 require numberOfPeriods to be 1\""}],"id":10780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"17874:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17874:106:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10797,"nodeType":"ExpressionStatement","src":"17874:106:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10798,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"17994:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10800,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18003:1:38","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":"17994:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18008:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17994:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10906,"nodeType":"IfStatement","src":"17990:1150:38","trueBody":{"id":10905,"nodeType":"Block","src":"18011:1129:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18114:59:38","subExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10805,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18120:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10807,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:38","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":"18120:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18116:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18116:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":10810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"18136:2:38","subExpression":{"argumentTypes":null,"hexValue":"31","id":10809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18137:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"18116:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10812,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"18142:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"},"id":10816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"18164:2:38","subExpression":{"argumentTypes":null,"hexValue":"32","id":10813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18165:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_2_by_1","typeString":"int_const -2"}},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"argumentTypes":null,"hexValue":"323535","id":10815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18168:3:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"18164:7:38","typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}}],"id":10817,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18163:9:38","typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"src":"18142:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18116:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18115:58:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a205f72657075746174696f6e4368616e67652077696c6c206f766572666c6f77","id":10822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18187:51:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ab8a2e4ee4d3597bb0351c7c743538e634e63d778d3320ee5b31ef158832372d","typeString":"literal_string \"numberOfPeriods * _reputationChange will overflow\""},"value":"numberOfPeriods * _reputationChange will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab8a2e4ee4d3597bb0351c7c743538e634e63d778d3320ee5b31ef158832372d","typeString":"literal_string \"numberOfPeriods * _reputationChange will overflow\""}],"id":10803,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18106:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18106:133:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10824,"nodeType":"ExpressionStatement","src":"18106:133:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10827,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18344:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10829,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18353:1:38","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":"18344:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18340:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18340:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":10831,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"18359:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18340:36:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10833,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18339:38:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10835,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18384:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10837,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18393:1:38","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":"18384:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18380:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18380:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18339:57:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":10840,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"18400:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18339:78:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a2072657075746174696f6e4368616e67652077696c6c206f766572666c6f77","id":10842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18431:50:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6fa768ac293f7b05b3e87a1ebad2012e5a6a340f67643b77311417d6dafa9436","typeString":"literal_string \"numberOfPeriods * reputationChange will overflow\""},"value":"numberOfPeriods * reputationChange will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fa768ac293f7b05b3e87a1ebad2012e5a6a340f67643b77311417d6dafa9436","typeString":"literal_string \"numberOfPeriods * reputationChange will overflow\""}],"id":10825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18331:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18331:151:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10844,"nodeType":"ExpressionStatement","src":"18331:151:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10846,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18578:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10848,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18587:1:38","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":"18578:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10849,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18592:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10851,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18601:1:38","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":"18592:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18578:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10853,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18577:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10854,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18607:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10856,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18616:1:38","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":"18607:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18577:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10858,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18622:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10860,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18631:1:38","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":"18622:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18577:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a20746f6b656e5265776172642077696c6c206f766572666c6f77","id":10862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18647:45:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6af13b0395690350c64b9a73bd65817f03553aafcbf4e1b169882296373f78b8","typeString":"literal_string \"numberOfPeriods * tokenReward will overflow\""},"value":"numberOfPeriods * tokenReward will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6af13b0395690350c64b9a73bd65817f03553aafcbf4e1b169882296373f78b8","typeString":"literal_string \"numberOfPeriods * tokenReward will overflow\""}],"id":10845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18569:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18569:124:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10864,"nodeType":"ExpressionStatement","src":"18569:124:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10866,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18787:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10868,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18796:1:38","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":"18787:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10869,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18801:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10871,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18810:1:38","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":"18801:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18787:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18786:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10874,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18816:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10876,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18825:1:38","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":"18816:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18786:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10878,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18831:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10880,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18840:1:38","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":"18831:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18786:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a206574685265776172642077696c6c206f766572666c6f77","id":10882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18856:43:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24f587c8d5849a935969c8a76b899afed1548d7c31a3a3fa2c0a3a3c99f2f3","typeString":"literal_string \"numberOfPeriods * ethReward will overflow\""},"value":"numberOfPeriods * ethReward will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d24f587c8d5849a935969c8a76b899afed1548d7c31a3a3fa2c0a3a3c99f2f3","typeString":"literal_string \"numberOfPeriods * ethReward will overflow\""}],"id":10865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18778:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18778:122:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10884,"nodeType":"ExpressionStatement","src":"18778:122:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10886,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19005:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10888,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19014:1:38","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":"19005:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10889,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19019:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10891,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19028:1:38","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":"19019:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19005:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10893,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19004:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10894,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19034:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10896,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19043:1:38","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":"19034:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19004:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10898,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19049:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10900,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19058:1:38","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":"19049:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19004:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a207465787465726e616c546f6b656e5265776172642077696c6c206f766572666c6f77","id":10902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19074:54:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f05de1d5fb12283a79df3f3169c88e709d30361f769bc8d3b5767984dc30ab5e","typeString":"literal_string \"numberOfPeriods * texternalTokenReward will overflow\""},"value":"numberOfPeriods * texternalTokenReward will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f05de1d5fb12283a79df3f3169c88e709d30361f769bc8d3b5767984dc30ab5e","typeString":"literal_string \"numberOfPeriods * texternalTokenReward will overflow\""}],"id":10885,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18996:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18996:133:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10904,"nodeType":"ExpressionStatement","src":"18996:133:38"}]}}]},"documentation":"@dev validateProposalParams validate proposal's rewards parameters.\nThe function check for potential overflow upon proposal's redeem.\nThe function reverts if the params are not valid.\n@param _reputationChange - Amount of reputation change requested .Can be negative.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested per period\n rewards[1] - Amount of ETH requested per period\n rewards[2] - Amount of external tokens requested per period\n rewards[3] - Period length - if set to zero it allows immediate redeeming after execution.\n rewards[4] - Number of periods","id":10908,"implemented":true,"kind":"function","modifiers":[],"name":"validateProposalParams","nodeType":"FunctionDefinition","parameters":{"id":10778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10773,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":10908,"src":"17800:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10772,"name":"int256","nodeType":"ElementaryTypeName","src":"17800:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10777,"name":"_rewards","nodeType":"VariableDeclaration","scope":10908,"src":"17826:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":10774,"name":"uint","nodeType":"ElementaryTypeName","src":"17826:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10776,"length":{"argumentTypes":null,"hexValue":"35","id":10775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17831:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"17826:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"}],"src":"17799:51:38"},"returnParameters":{"id":10779,"nodeType":"ParameterList","parameters":[],"src":"17864:0:38"},"scope":10909,"src":"17768:1378:38","stateMutability":"pure","superFunction":null,"visibility":"private"}],"scope":10910,"src":"499:18650:38"}],"src":"0:19150:38"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol","exportedSymbols":{"ContributionReward":[10909]},"id":10910,"nodeType":"SourceUnit","nodes":[{"id":9623,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:38"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":9624,"nodeType":"ImportDirective","scope":10910,"sourceUnit":19817,"src":"25:71:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":9625,"nodeType":"ImportDirective","scope":10910,"sourceUnit":20032,"src":"97:86:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":9626,"nodeType":"ImportDirective","scope":10910,"sourceUnit":12635,"src":"184:31:38","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":9627,"nodeType":"ImportDirective","scope":10910,"sourceUnit":14651,"src":"216:54:38","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9628,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"530:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":9629,"nodeType":"InheritanceSpecifier","src":"530:15:38"},{"arguments":null,"baseName":{"contractScope":null,"id":9630,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"547:22:38","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":9631,"nodeType":"InheritanceSpecifier","src":"547:22:38"},{"arguments":null,"baseName":{"contractScope":null,"id":9632,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"571:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":9633,"nodeType":"InheritanceSpecifier","src":"571:24:38"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme for proposing and rewarding contributions to an organization\n@dev An agent can ask an organization to recognize a contribution and reward\nhim with token, reputation, ether or any combination.","fullyImplemented":true,"id":10909,"linearizedBaseContracts":[10909,19828,14650,20031,12634,12645],"name":"ContributionReward","nodeType":"ContractDefinition","nodes":[{"id":9636,"libraryName":{"contractScope":null,"id":9634,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"608:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"602:24:38","typeName":{"id":9635,"name":"uint","nodeType":"ElementaryTypeName","src":"621:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":9656,"name":"NewContributionProposal","nodeType":"EventDefinition","parameters":{"id":9655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9638,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9656,"src":"671:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9637,"name":"address","nodeType":"ElementaryTypeName","src":"671:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9640,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9656,"src":"704:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"704:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9642,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":9656,"src":"741:33:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9641,"name":"address","nodeType":"ElementaryTypeName","src":"741:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9644,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":9656,"src":"784:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9643,"name":"string","nodeType":"ElementaryTypeName","src":"784:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":9646,"indexed":false,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":9656,"src":"817:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9645,"name":"int256","nodeType":"ElementaryTypeName","src":"817:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9650,"indexed":false,"name":"_rewards","nodeType":"VariableDeclaration","scope":9656,"src":"851:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":9647,"name":"uint","nodeType":"ElementaryTypeName","src":"851:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9649,"length":{"argumentTypes":null,"hexValue":"35","id":9648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"856:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"851:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"},{"constant":false,"id":9652,"indexed":false,"name":"_externalToken","nodeType":"VariableDeclaration","scope":9656,"src":"878:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9651,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"878:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":9654,"indexed":false,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9656,"src":"909:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9653,"name":"address","nodeType":"ElementaryTypeName","src":"909:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"661:274:38"},"src":"632:304:38"},{"anonymous":false,"documentation":null,"id":9664,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":9663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9658,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9664,"src":"965:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9657,"name":"address","nodeType":"ElementaryTypeName","src":"965:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9660,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9664,"src":"990:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9659,"name":"bytes32","nodeType":"ElementaryTypeName","src":"990:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9662,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":9664,"src":"1019:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9661,"name":"int256","nodeType":"ElementaryTypeName","src":"1019:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"964:69:38"},"src":"942:92:38"},{"anonymous":false,"documentation":null,"id":9674,"name":"RedeemReputation","nodeType":"EventDefinition","parameters":{"id":9673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9666,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9674,"src":"1072:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9665,"name":"address","nodeType":"ElementaryTypeName","src":"1072:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9668,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9674,"src":"1105:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9667,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1105:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9670,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9674,"src":"1142:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9669,"name":"address","nodeType":"ElementaryTypeName","src":"1142:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9672,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9674,"src":"1180:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9671,"name":"int256","nodeType":"ElementaryTypeName","src":"1180:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1062:133:38"},"src":"1040:156:38"},{"anonymous":false,"documentation":null,"id":9684,"name":"RedeemEther","nodeType":"EventDefinition","parameters":{"id":9683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9676,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9684,"src":"1220:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9675,"name":"address","nodeType":"ElementaryTypeName","src":"1220:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9678,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9684,"src":"1253:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1253:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9680,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9684,"src":"1290:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9679,"name":"address","nodeType":"ElementaryTypeName","src":"1290:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9682,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9684,"src":"1328:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9681,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1219:125:38"},"src":"1202:143:38"},{"anonymous":false,"documentation":null,"id":9694,"name":"RedeemNativeToken","nodeType":"EventDefinition","parameters":{"id":9693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9686,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9694,"src":"1375:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9685,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9688,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9694,"src":"1408:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1408:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9690,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9694,"src":"1445:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9689,"name":"address","nodeType":"ElementaryTypeName","src":"1445:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9692,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9694,"src":"1483:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9691,"name":"uint256","nodeType":"ElementaryTypeName","src":"1483:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1374:125:38"},"src":"1351:149:38"},{"anonymous":false,"documentation":null,"id":9704,"name":"RedeemExternalToken","nodeType":"EventDefinition","parameters":{"id":9703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9696,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":9704,"src":"1532:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9695,"name":"address","nodeType":"ElementaryTypeName","src":"1532:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9698,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9704,"src":"1565:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9697,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1565:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9700,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9704,"src":"1602:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9699,"name":"address","nodeType":"ElementaryTypeName","src":"1602:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9702,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":9704,"src":"1640:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1531:125:38"},"src":"1506:151:38"},{"canonicalName":"ContributionReward.ContributionProposal","id":9727,"members":[{"constant":false,"id":9706,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":9727,"src":"1762:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9705,"name":"uint256","nodeType":"ElementaryTypeName","src":"1762:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9708,"name":"reputationChange","nodeType":"VariableDeclaration","scope":9727,"src":"1854:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9707,"name":"int256","nodeType":"ElementaryTypeName","src":"1854:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9710,"name":"ethReward","nodeType":"VariableDeclaration","scope":9727,"src":"1932:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1932:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9712,"name":"externalToken","nodeType":"VariableDeclaration","scope":9727,"src":"1959:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9711,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1959:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":9714,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":9727,"src":"1989:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9713,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9716,"name":"beneficiary","nodeType":"VariableDeclaration","scope":9727,"src":"2026:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9715,"name":"address","nodeType":"ElementaryTypeName","src":"2026:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":9718,"name":"periodLength","nodeType":"VariableDeclaration","scope":9727,"src":"2063:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9717,"name":"uint256","nodeType":"ElementaryTypeName","src":"2063:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9720,"name":"numberOfPeriods","nodeType":"VariableDeclaration","scope":9727,"src":"2093:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9719,"name":"uint256","nodeType":"ElementaryTypeName","src":"2093:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9722,"name":"executionTime","nodeType":"VariableDeclaration","scope":9727,"src":"2126:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9721,"name":"uint256","nodeType":"ElementaryTypeName","src":"2126:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9726,"name":"redeemedPeriods","nodeType":"VariableDeclaration","scope":9727,"src":"2157:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"},"typeName":{"baseType":{"id":9723,"name":"uint","nodeType":"ElementaryTypeName","src":"2157:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9725,"length":{"argumentTypes":null,"hexValue":"34","id":9724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2162:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"2157:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage_ptr","typeString":"uint256[4]"}},"value":null,"visibility":"internal"}],"name":"ContributionProposal","nodeType":"StructDefinition","scope":10909,"src":"1724:463:38","visibility":"public"},{"constant":false,"id":9733,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":10909,"src":"2288:86:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal))"},"typeName":{"id":9732,"keyType":{"id":9728,"name":"address","nodeType":"ElementaryTypeName","src":"2296:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2288:56:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal))"},"valueType":{"id":9731,"keyType":{"id":9729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2313:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2305:38:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal)"},"valueType":{"contractScope":null,"id":9730,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"2322:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"ContributionReward.Parameters","id":9738,"members":[{"constant":false,"id":9735,"name":"voteApproveParams","nodeType":"VariableDeclaration","scope":9738,"src":"2512:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9734,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2512:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9737,"name":"intVote","nodeType":"VariableDeclaration","scope":9738,"src":"2547:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":9736,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"2547:16:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":10909,"src":"2484:94:38","visibility":"public"},{"constant":false,"id":9742,"name":"parameters","nodeType":"VariableDeclaration","scope":10909,"src":"2687:46:38","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters)"},"typeName":{"id":9741,"keyType":{"id":9739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2695:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2687:28:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters)"},"valueType":{"contractScope":null,"id":9740,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":9738,"src":"2704:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage_ptr","typeString":"struct ContributionReward.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":9821,"nodeType":"Block","src":"3114:619:38","statements":[{"assignments":[9755],"declarations":[{"constant":false,"id":9755,"name":"proposal","nodeType":"VariableDeclaration","scope":9821,"src":"3124:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"},"typeName":{"contractScope":null,"id":9754,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"3124:12:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}},"value":null,"visibility":"internal"}],"id":9762,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9756,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"3155:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":9759,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9757,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3169:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3169:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3155:25:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":9761,"indexExpression":{"argumentTypes":null,"id":9760,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3181:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3155:38:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3124:69:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9764,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"3211:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9769,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9766,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3242:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3242:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9765,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3234:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3234:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3211:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9771,"indexExpression":{"argumentTypes":null,"id":9770,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3260:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3211:61:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9772,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"3211:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3290:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3211:80:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9763,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3203:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3203:89:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9776,"nodeType":"ExpressionStatement","src":"3203:89:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":9790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9778,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"3310:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9783,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9780,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3341:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9781,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3341:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9779,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3333:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3333:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3310:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9785,"indexExpression":{"argumentTypes":null,"id":9784,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3359:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3310:61:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"3310:73:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3395:1:38","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":9787,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3387:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9789,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3387:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3310:87:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9777,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3302:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3302:96:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9792,"nodeType":"ExpressionStatement","src":"3302:96:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":9795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9793,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9746,"src":"3453:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":9794,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3463:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3453:11:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9809,"nodeType":"IfStatement","src":"3449:179:38","trueBody":{"id":9808,"nodeType":"Block","src":"3466:162:38","statements":[{"expression":{"argumentTypes":null,"id":9806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9796,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"3536:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9802,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9798,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3567:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9799,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3567:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3559:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3559:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3536:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9803,"indexExpression":{"argumentTypes":null,"id":9801,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3585:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3536:61:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9804,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"3536:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9805,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3614:3:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3536:81:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9807,"nodeType":"ExpressionStatement","src":"3536:81:38"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9812,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9755,"src":"3667:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":9813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"3667:15:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3659:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3659:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":9815,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3685:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":9816,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9746,"src":"3698:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":9810,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9664,"src":"3642:16:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":9817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3642:63:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9818,"nodeType":"EmitStatement","src":"3637:68:38"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3722:4:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9753,"id":9820,"nodeType":"Return","src":"3715:11:38"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":9822,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":9749,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9744,"src":"3087:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":9750,"modifierName":{"argumentTypes":null,"id":9748,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"3069:17:38","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3069:30:38"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":9747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9744,"name":"_proposalId","nodeType":"VariableDeclaration","scope":9822,"src":"3024:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9743,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3024:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9746,"name":"_param","nodeType":"VariableDeclaration","scope":9822,"src":"3045:13:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9745,"name":"int256","nodeType":"ElementaryTypeName","src":"3045:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"3023:36:38"},"returnParameters":{"id":9753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9752,"name":"","nodeType":"VariableDeclaration","scope":9822,"src":"3108:4:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9751,"name":"bool","nodeType":"ElementaryTypeName","src":"3108:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3107:6:38"},"scope":10909,"src":"2999:734:38","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":9854,"nodeType":"Block","src":"3964:268:38","statements":[{"assignments":[9832],"declarations":[{"constant":false,"id":9832,"name":"paramsHash","nodeType":"VariableDeclaration","scope":9854,"src":"3974:18:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9831,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3974:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":9837,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9834,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"4026:18:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":9835,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4058:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":9833,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10771,"src":"3995:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":9836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3995:81:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3974:102:38"},{"expression":{"argumentTypes":null,"id":9843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9838,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"4086:10:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters storage ref)"}},"id":9840,"indexExpression":{"argumentTypes":null,"id":9839,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4097:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4086:22:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage","typeString":"struct ContributionReward.Parameters storage ref"}},"id":9841,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteApproveParams","nodeType":"MemberAccess","referencedDeclaration":9735,"src":"4086:40:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9842,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9824,"src":"4129:18:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4086:61:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":9844,"nodeType":"ExpressionStatement","src":"4086:61:38"},{"expression":{"argumentTypes":null,"id":9850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9845,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"4157:10:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters storage ref)"}},"id":9847,"indexExpression":{"argumentTypes":null,"id":9846,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4168:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4157:22:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage","typeString":"struct ContributionReward.Parameters storage ref"}},"id":9848,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"4157:30:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9849,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9826,"src":"4190:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"4157:41:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":9851,"nodeType":"ExpressionStatement","src":"4157:41:38"},{"expression":{"argumentTypes":null,"id":9852,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9832,"src":"4215:10:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9830,"id":9853,"nodeType":"Return","src":"4208:17:38"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":9855,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":9827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9824,"name":"_voteApproveParams","nodeType":"VariableDeclaration","scope":9855,"src":"3868:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9823,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3868:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9826,"name":"_intVote","nodeType":"VariableDeclaration","scope":9855,"src":"3904:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":9825,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3904:16:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3858:77:38"},"returnParameters":{"id":9830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9829,"name":"","nodeType":"VariableDeclaration","scope":9855,"src":"3951:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3951:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3950:9:38"},"scope":10909,"src":"3836:396:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9998,"nodeType":"Block","src":"5350:1565:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9875,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"5383:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":9876,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"5402:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}],"id":9874,"name":"validateProposalParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10908,"src":"5360:22:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_int256_$_t_array$_t_uint256_$5_memory_ptr_$returns$__$","typeString":"function (int256,uint256[5] memory) pure"}},"id":9877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5360:51:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9878,"nodeType":"ExpressionStatement","src":"5360:51:38"},{"assignments":[9880],"declarations":[{"constant":false,"id":9880,"name":"controllerParams","nodeType":"VariableDeclaration","scope":9998,"src":"5421:34:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters"},"typeName":{"contractScope":null,"id":9879,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":9738,"src":"5421:10:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage_ptr","typeString":"struct ContributionReward.Parameters"}},"value":null,"visibility":"internal"}],"id":9886,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9881,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9742,"src":"5458:10:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$9738_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.Parameters storage ref)"}},"id":9885,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9883,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"5497:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9882,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"5469:27:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":9884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5469:36:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5458:48:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_storage","typeString":"struct ContributionReward.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5421:85:38"},{"assignments":[9888],"declarations":[{"constant":false,"id":9888,"name":"contributionId","nodeType":"VariableDeclaration","scope":9998,"src":"5517:22:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9887,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5517:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":9901,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":9892,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5584:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9893,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"5595:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteApproveParams","nodeType":"MemberAccess","referencedDeclaration":9735,"src":"5595:34:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9895,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5639:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9896,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5639:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9898,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"5667:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5659:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5659:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9889,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"5542:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9890,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"5542:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":9891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"5542:32:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":9900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5542:143:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5517:168:38"},{"assignments":[9903],"declarations":[{"constant":false,"id":9903,"name":"beneficiary","nodeType":"VariableDeclaration","scope":9998,"src":"5696:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9902,"name":"address","nodeType":"ElementaryTypeName","src":"5696:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":9905,"initialValue":{"argumentTypes":null,"id":9904,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9869,"src":"5726:12:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"5696:42:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":9910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9906,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"5752:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5775:1:38","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":9907,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5767:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5767:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5752:25:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9917,"nodeType":"IfStatement","src":"5748:80:38","trueBody":{"id":9916,"nodeType":"Block","src":"5779:49:38","statements":[{"expression":{"argumentTypes":null,"id":9914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9911,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"5793:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9912,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5807:3:38","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5807:10:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5793:24:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9915,"nodeType":"ExpressionStatement","src":"5793:24:38"}]}},{"assignments":[9919],"declarations":[{"constant":false,"id":9919,"name":"proposal","nodeType":"VariableDeclaration","scope":9998,"src":"5838:36:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":9918,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"5838:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":9954,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9921,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"5931:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9923,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":9922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5940:1:38","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":"5931:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9924,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"5974:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9925,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6016:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9927,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":9926,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6025:1:38","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":"6016:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9928,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9867,"src":"6056:14:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9929,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6105:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9931,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":9930,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6114:1:38","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":"6105:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9932,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"6143:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9933,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6182:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9935,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":9934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6191:1:38","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":"6182:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9936,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6224:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":9938,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":9937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6233:1:38","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":"6224:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":9939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6264:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6301:1:38","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":9940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6296:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6296:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6310:1:38","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":9943,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6305:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6305:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6319:1:38","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":9946,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6314:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6314:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9950,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6328:1:38","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":9949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6323:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":9951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6323:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9952,"isConstant":false,"isInlineArray":true,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6295:36:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_array$_t_uint256_$4_memory_ptr","typeString":"uint256[4] memory"}],"id":9920,"name":"ContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9727,"src":"5877:20:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ContributionProposal_$9727_storage_ptr_$","typeString":"type(struct ContributionReward.ContributionProposal storage pointer)"}},"id":9953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nativeTokenReward","reputationChange","ethReward","externalToken","externalTokenReward","beneficiary","periodLength","numberOfPeriods","executionTime","redeemedPeriods"],"nodeType":"FunctionCall","src":"5877:465:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory","typeString":"struct ContributionReward.ContributionProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"5838:504:38"},{"expression":{"argumentTypes":null,"id":9963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9955,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"6352:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":9960,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9957,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"6383:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9956,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6375:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9958,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6375:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":9961,"indexExpression":{"argumentTypes":null,"id":9959,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6393:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6352:56:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9962,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9919,"src":"6411:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"src":"6352:67:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":9964,"nodeType":"ExpressionStatement","src":"6352:67:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9967,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"6480:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9966,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6472:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6472:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":9969,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6502:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9971,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"6538:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9972,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"6538:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":9970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6530:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6530:33:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9974,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9859,"src":"6577:16:38","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":9975,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9861,"src":"6607:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":9976,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9865,"src":"6638:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},{"argumentTypes":null,"id":9977,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9867,"src":"6660:14:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":9978,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9903,"src":"6688:11:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":9965,"name":"NewContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9656,"src":"6435:23:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_string_memory_ptr_$_t_int256_$_t_array$_t_uint256_$5_memory_ptr_$_t_contract$_IERC20_$21017_$_t_address_$returns$__$","typeString":"function (address,bytes32,address,string memory,int256,uint256[5] memory,contract IERC20,address)"}},"id":9979,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6435:274:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9980,"nodeType":"EmitStatement","src":"6430:279:38"},{"expression":{"argumentTypes":null,"id":9994,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9981,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6720:13:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":9987,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9983,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9880,"src":"6742:16:38","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$9738_memory_ptr","typeString":"struct ContributionReward.Parameters memory"}},"id":9984,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":9737,"src":"6742:24:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":9982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6734:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6734:33:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6720:48:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":9988,"indexExpression":{"argumentTypes":null,"id":9986,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6769:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6720:64:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9990,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"6826:5:38","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":9991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6826:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9992,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9857,"src":"6859:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":9989,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"6787:12:38","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":9993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"6787:90:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6720:157:38","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":9995,"nodeType":"ExpressionStatement","src":"6720:157:38"},{"expression":{"argumentTypes":null,"id":9996,"name":"contributionId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9888,"src":"6894:14:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":9873,"id":9997,"nodeType":"Return","src":"6887:21:38"}]},"documentation":"@dev Submit a proposal for a reward for a contribution:\n@param _avatar Avatar of the organization that the contribution was made for\n@param _descriptionHash A hash of the proposal's description\n@param _reputationChange - Amount of reputation change requested .Can be negative.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested per period\n rewards[1] - Amount of ETH requested per period\n rewards[2] - Amount of external tokens requested per period\n rewards[3] - Period length - if set to zero it allows immediate redeeming after execution.\n rewards[4] - Number of periods\n@param _externalToken Address of external token, if reward is requested there\n@param _beneficiary Who gets the rewards","id":9999,"implemented":true,"kind":"function","modifiers":[],"name":"proposeContributionReward","nodeType":"FunctionDefinition","parameters":{"id":9870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9857,"name":"_avatar","nodeType":"VariableDeclaration","scope":9999,"src":"5117:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":9856,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"5117:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":9859,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":9999,"src":"5141:30:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":9858,"name":"string","nodeType":"ElementaryTypeName","src":"5141:6:38","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":9861,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":9999,"src":"5181:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":9860,"name":"int256","nodeType":"ElementaryTypeName","src":"5181:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9865,"name":"_rewards","nodeType":"VariableDeclaration","scope":9999,"src":"5215:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":9862,"name":"uint","nodeType":"ElementaryTypeName","src":"5215:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9864,"length":{"argumentTypes":null,"hexValue":"35","id":9863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5220:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"5215:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"},{"constant":false,"id":9867,"name":"_externalToken","nodeType":"VariableDeclaration","scope":9999,"src":"5248:21:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9866,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"5248:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":9869,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9999,"src":"5279:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9868,"name":"address","nodeType":"ElementaryTypeName","src":"5279:15:38","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"5107:206:38"},"returnParameters":{"id":9873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9872,"name":"","nodeType":"VariableDeclaration","scope":9999,"src":"5337:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5337:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5336:9:38"},"scope":10909,"src":"5073:1842:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10146,"nodeType":"Block","src":"7246:1231:38","statements":[{"assignments":[10009],"declarations":[{"constant":false,"id":10009,"name":"_proposal","nodeType":"VariableDeclaration","scope":10146,"src":"7257:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10008,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"7257:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10017,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10010,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"7297:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10014,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10012,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7328:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7320:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7320:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7297:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10016,"indexExpression":{"argumentTypes":null,"id":10015,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7338:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7297:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7257:93:38"},{"assignments":[10019],"declarations":[{"constant":false,"id":10019,"name":"proposal","nodeType":"VariableDeclaration","scope":10146,"src":"7360:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10018,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"7360:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10027,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10020,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"7400:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10024,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10022,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7431:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7423:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7423:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7400:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10026,"indexExpression":{"argumentTypes":null,"id":10025,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7441:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7400:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7360:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10029,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"7471:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"7471:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7497:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7471:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10028,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7463:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7463:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10034,"nodeType":"ExpressionStatement","src":"7463:36:38"},{"assignments":[10036],"declarations":[{"constant":false,"id":10036,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10146,"src":"7509:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10035,"name":"uint256","nodeType":"ElementaryTypeName","src":"7509:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10044,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10038,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"7548:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10040,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7569:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10039,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7561:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7561:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":10042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7579:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":10037,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"7532:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7532:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7509:72:38"},{"expression":{"argumentTypes":null,"id":10049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10045,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"7660:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"7660:25:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7688:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7660:29:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10050,"nodeType":"ExpressionStatement","src":"7660:29:38"},{"expression":{"argumentTypes":null,"id":10058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10051,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7699:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10053,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"7716:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7712:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7712:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10055,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7732:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"7732:26:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7712:46:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"7699:59:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10059,"nodeType":"ExpressionStatement","src":"7699:59:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10060,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7772:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7785:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7772:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10082,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7959:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7972:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7959:14:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10108,"nodeType":"IfStatement","src":"7955:186:38","trueBody":{"id":10107,"nodeType":"Block","src":"7975:166:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10093,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"8071:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":10095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"8083:2:38","subExpression":{"argumentTypes":null,"hexValue":"31","id":10094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8084:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"id":10096,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8082:4:38","typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"8071:15:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8066:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":10098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8066:21:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10099,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"8089:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10100,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"8089:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10102,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"8120:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8112:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8112:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10087,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"8034:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"8034:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8034:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10086,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"8010:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8010:40:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"8010:55:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":10104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8010:119:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10085,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7989:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7989:141:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10106,"nodeType":"ExpressionStatement","src":"7989:141:38"}]}},"id":10109,"nodeType":"IfStatement","src":"7768:373:38","trueBody":{"id":10081,"nodeType":"Block","src":"7788:161:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10071,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"7884:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10070,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7879:4:38","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":10072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7879:16:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10073,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"7897:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"7897:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10076,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7928:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10075,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7920:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7920:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10065,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"7847:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"7847:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7847:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10064,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7823:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7823:40:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"7823:55:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":10078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7823:114:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10063,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7802:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7802:136:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10080,"nodeType":"ExpressionStatement","src":"7802:136:38"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10110,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"8154:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8168:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8154:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10138,"nodeType":"IfStatement","src":"8150:222:38","trueBody":{"id":10137,"nodeType":"Block","src":"8171:201:38","statements":[{"expression":{"argumentTypes":null,"id":10125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10113,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"8185:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10116,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"8185:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10117,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10115,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8210:1:38","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":"8185:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10123,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10036,"src":"8247:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"8215:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"8215:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10121,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8240:1:38","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":"8215:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8215:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8215:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8185:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10126,"nodeType":"ExpressionStatement","src":"8185:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10129,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10003,"src":"8304:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8296:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8296:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10131,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10001,"src":"8314:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10132,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"8327:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10133,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"8327:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10134,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10006,"src":"8350:10:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":10127,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9674,"src":"8279:16:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,bytes32,address,int256)"}},"id":10135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8279:82:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10136,"nodeType":"EmitStatement","src":"8274:87:38"}]}},{"expression":{"argumentTypes":null,"id":10144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10139,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10019,"src":"8416:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"8416:25:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10142,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10009,"src":"8444:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":9708,"src":"8444:26:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8416:54:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10145,"nodeType":"ExpressionStatement","src":"8416:54:38"}]},"documentation":"@dev RedeemReputation reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return reputation the redeemed reputation.","id":10147,"implemented":true,"kind":"function","modifiers":[],"name":"redeemReputation","nodeType":"FunctionDefinition","parameters":{"id":10004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10001,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10147,"src":"7175:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10000,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7175:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10003,"name":"_avatar","nodeType":"VariableDeclaration","scope":10147,"src":"7196:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10002,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"7196:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"7174:37:38"},"returnParameters":{"id":10007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10006,"name":"reputation","nodeType":"VariableDeclaration","scope":10147,"src":"7227:17:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10005,"name":"int256","nodeType":"ElementaryTypeName","src":"7227:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"7226:19:38"},"scope":10909,"src":"7149:1328:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10259,"nodeType":"Block","src":"8804:951:38","statements":[{"assignments":[10157],"declarations":[{"constant":false,"id":10157,"name":"_proposal","nodeType":"VariableDeclaration","scope":10259,"src":"8815:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10156,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"8815:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10165,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10158,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"8855:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10162,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10160,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"8886:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10159,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8878:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8878:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8855:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10164,"indexExpression":{"argumentTypes":null,"id":10163,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"8896:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8855:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8815:93:38"},{"assignments":[10167],"declarations":[{"constant":false,"id":10167,"name":"proposal","nodeType":"VariableDeclaration","scope":10259,"src":"8918:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10166,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"8918:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10175,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10168,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"8958:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10172,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10170,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"8989:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8981:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8981:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8958:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10174,"indexExpression":{"argumentTypes":null,"id":10173,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"8999:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8958:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"8918:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10177,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9029:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"9029:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9055:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9029:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10176,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"9021:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9021:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10182,"nodeType":"ExpressionStatement","src":"9021:36:38"},{"assignments":[10184],"declarations":[{"constant":false,"id":10184,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10259,"src":"9067:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10183,"name":"uint256","nodeType":"ElementaryTypeName","src":"9067:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10192,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10186,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"9106:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10188,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9127:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9119:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9119:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"31","id":10190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9137:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":10185,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"9090:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9090:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9067:72:38"},{"expression":{"argumentTypes":null,"id":10197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10193,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9218:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9218:26:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10196,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9247:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9218:30:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10198,"nodeType":"ExpressionStatement","src":"9218:30:38"},{"expression":{"argumentTypes":null,"id":10205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10199,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9259:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10202,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9285:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9285:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10200,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10184,"src":"9268:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"9268:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9268:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9259:54:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10206,"nodeType":"ExpressionStatement","src":"9259:54:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10207,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9327:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9336:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9327:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10251,"nodeType":"IfStatement","src":"9323:324:38","trueBody":{"id":10250,"nodeType":"Block","src":"9339:308:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10217,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9400:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10218,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9408:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"9408:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10221,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9439:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10220,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9431:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9431:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10212,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9372:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"9372:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10214,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9372:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10211,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"9361:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9361:27:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"9361:38:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":10223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9361:87:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10210,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"9353:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9353:96:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10225,"nodeType":"ExpressionStatement","src":"9353:96:38"},{"expression":{"argumentTypes":null,"id":10238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9463:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"9463:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10230,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9488:1:38","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":"9463:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10236,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10184,"src":"9525:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10231,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9493:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"9493:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10234,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9518:1:38","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":"9493:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"9493:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9493:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9463:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10239,"nodeType":"ExpressionStatement","src":"9463:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10242,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10151,"src":"9583:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9575:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9575:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10244,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10149,"src":"9593:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10245,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9606:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"9606:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10247,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10154,"src":"9629:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10240,"name":"RedeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9694,"src":"9557:17:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":10248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9557:79:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10249,"nodeType":"EmitStatement","src":"9552:84:38"}]}},{"expression":{"argumentTypes":null,"id":10257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10252,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10167,"src":"9692:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9692:26:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10255,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10157,"src":"9721:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":9706,"src":"9721:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9692:56:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10258,"nodeType":"ExpressionStatement","src":"9692:56:38"}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return amount the redeemed nativeToken.","id":10260,"implemented":true,"kind":"function","modifiers":[],"name":"redeemNativeToken","nodeType":"FunctionDefinition","parameters":{"id":10152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10149,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10260,"src":"8736:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8736:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10151,"name":"_avatar","nodeType":"VariableDeclaration","scope":10260,"src":"8757:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10150,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"8757:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"8735:37:38"},"returnParameters":{"id":10155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10154,"name":"amount","nodeType":"VariableDeclaration","scope":10260,"src":"8788:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10153,"name":"uint256","nodeType":"ElementaryTypeName","src":"8788:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8787:16:38"},"scope":10909,"src":"8709:1046:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10370,"nodeType":"Block","src":"10066:903:38","statements":[{"assignments":[10270],"declarations":[{"constant":false,"id":10270,"name":"_proposal","nodeType":"VariableDeclaration","scope":10370,"src":"10077:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10269,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"10077:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10278,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10271,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"10117:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10275,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10273,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10148:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10140:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10140:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10117:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10277,"indexExpression":{"argumentTypes":null,"id":10276,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10158:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10117:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10077:93:38"},{"assignments":[10280],"declarations":[{"constant":false,"id":10280,"name":"proposal","nodeType":"VariableDeclaration","scope":10370,"src":"10180:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10279,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"10180:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10288,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10281,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"10220:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10285,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10283,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10251:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10243:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10243:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10220:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10287,"indexExpression":{"argumentTypes":null,"id":10286,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10261:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10220:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10180:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10290,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10291:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"10291:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10317:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10291:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10289,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10283:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10283:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10295,"nodeType":"ExpressionStatement","src":"10283:36:38"},{"assignments":[10297],"declarations":[{"constant":false,"id":10297,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10370,"src":"10329:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10296,"name":"uint256","nodeType":"ElementaryTypeName","src":"10329:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10305,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10299,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10368:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10301,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10389:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10381:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10381:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"32","id":10303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10399:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":10298,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"10352:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10352:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"10329:72:38"},{"expression":{"argumentTypes":null,"id":10310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10306,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10480:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10308,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10480:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10501:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10480:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10311,"nodeType":"ExpressionStatement","src":"10480:22:38"},{"expression":{"argumentTypes":null,"id":10318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10312,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10512:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10315,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10538:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10538:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10313,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"10521:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"10521:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10521:37:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10512:46:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10319,"nodeType":"ExpressionStatement","src":"10512:46:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10320,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10573:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10582:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10573:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10362,"nodeType":"IfStatement","src":"10569:308:38","trueBody":{"id":10361,"nodeType":"Block","src":"10585:292:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10330,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10645:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10331,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10653:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10332,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"10653:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10333,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10676:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10325,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10618:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"10618:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10618:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10324,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"10607:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10607:27:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendEther","nodeType":"MemberAccess","referencedDeclaration":1503,"src":"10607:37:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_payable_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (uint256,address payable,contract Avatar) external returns (bool)"}},"id":10334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10607:77:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10599:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10599:86:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10336,"nodeType":"ExpressionStatement","src":"10599:86:38"},{"expression":{"argumentTypes":null,"id":10349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10337,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10699:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"10699:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10341,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10724:1:38","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":"10699:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10347,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10297,"src":"10761:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10342,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10729:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"10729:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10345,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10754:1:38","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":"10729:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10729:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10729:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10699:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10350,"nodeType":"ExpressionStatement","src":"10699:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10353,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10264,"src":"10813:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10352,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10805:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10805:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10355,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10262,"src":"10823:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10356,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10836:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"10836:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10358,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10267,"src":"10859:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10351,"name":"RedeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9684,"src":"10793:11:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":10359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10793:73:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10360,"nodeType":"EmitStatement","src":"10788:78:38"}]}},{"expression":{"argumentTypes":null,"id":10368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10363,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10280,"src":"10922:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10365,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10922:18:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10366,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10270,"src":"10943:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"10943:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10922:40:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10369,"nodeType":"ExpressionStatement","src":"10922:40:38"}]},"documentation":"@dev RedeemEther reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return amount ether redeemed amount","id":10371,"implemented":true,"kind":"function","modifiers":[],"name":"redeemEther","nodeType":"FunctionDefinition","parameters":{"id":10265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10262,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10371,"src":"9998:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10261,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9998:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10264,"name":"_avatar","nodeType":"VariableDeclaration","scope":10371,"src":"10019:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10263,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"10019:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"9997:37:38"},"returnParameters":{"id":10268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10267,"name":"amount","nodeType":"VariableDeclaration","scope":10371,"src":"10050:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10266,"name":"uint256","nodeType":"ElementaryTypeName","src":"10050:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10049:16:38"},"scope":10909,"src":"9977:992:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10496,"nodeType":"Block","src":"11307:1160:38","statements":[{"assignments":[10381],"declarations":[{"constant":false,"id":10381,"name":"_proposal","nodeType":"VariableDeclaration","scope":10496,"src":"11318:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10380,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"11318:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10389,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10382,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"11358:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10386,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10384,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"11389:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11381:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11381:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11358:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10388,"indexExpression":{"argumentTypes":null,"id":10387,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"11399:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11358:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11318:93:38"},{"assignments":[10391],"declarations":[{"constant":false,"id":10391,"name":"proposal","nodeType":"VariableDeclaration","scope":10496,"src":"11421:37:38","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10390,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"11421:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10399,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10392,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"11461:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10396,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10394,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"11492:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11484:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11484:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11461:40:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10398,"indexExpression":{"argumentTypes":null,"id":10397,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"11502:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11461:53:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11421:93:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"11532:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"11532:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10403,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11558:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11532:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10400,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11524:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11524:36:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10406,"nodeType":"ExpressionStatement","src":"11524:36:38"},{"assignments":[10408],"declarations":[{"constant":false,"id":10408,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10496,"src":"11570:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10407,"name":"uint256","nodeType":"ElementaryTypeName","src":"11570:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10416,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10410,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"11609:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10412,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"11630:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11622:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11622:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"33","id":10414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11640:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"id":10409,"name":"getPeriodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10661,"src":"11593:15:38","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view returns (uint256)"}},"id":10415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11593:49:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11570:72:38"},{"expression":{"argumentTypes":null,"id":10421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10417,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"11721:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"11721:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":10420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11752:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11721:32:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10422,"nodeType":"ExpressionStatement","src":"11721:32:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":10428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"11768:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":9712,"src":"11768:22:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11801:1:38","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":10425,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"11794:6:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":10427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11794:9:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"11768:35:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10429,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"11807:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"11807:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10431,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11839:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11807:33:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11768:72:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10488,"nodeType":"IfStatement","src":"11764:592:38","trueBody":{"id":10487,"nodeType":"Block","src":"11842:514:38","statements":[{"expression":{"argumentTypes":null,"id":10440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10434,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"11856:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10437,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"11882:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"11882:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10435,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"11865:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"11865:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11865:47:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11856:56:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10441,"nodeType":"ExpressionStatement","src":"11856:56:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10442,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"11930:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10443,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11939:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11930:10:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10486,"nodeType":"IfStatement","src":"11926:420:38","trueBody":{"id":10485,"nodeType":"Block","src":"11942:404:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10452,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12069:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":9712,"src":"12069:23:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10454,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12094:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"12094:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10456,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"12117:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":10457,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"12125:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":10447,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"12013:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":10448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"12013:13:38","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":10449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12013:15:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":10446,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"11985:10:38","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":10450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11985:44:38","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1534,"src":"11985:83:38","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,contract Avatar) external returns (bool)"}},"id":10458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11985:148:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10445,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11960:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11960:174:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10460,"nodeType":"ExpressionStatement","src":"11960:174:38"},{"expression":{"argumentTypes":null,"id":10473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10461,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"12152:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"12152:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10465,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12177:1:38","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":"12152:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10471,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10408,"src":"12214:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10466,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"12182:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"12182:24:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10469,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12207:1:38","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":"12182:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"12182:31:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12182:45:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12152:75:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10474,"nodeType":"ExpressionStatement","src":"12152:75:38"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10477,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10375,"src":"12278:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12270:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12270:16:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10479,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10373,"src":"12288:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10480,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12301:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":9716,"src":"12301:21:38","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":10482,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10378,"src":"12324:6:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10475,"name":"RedeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9704,"src":"12250:19:38","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":10483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12250:81:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10484,"nodeType":"EmitStatement","src":"12245:86:38"}]}}]}},{"expression":{"argumentTypes":null,"id":10494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10391,"src":"12400:8:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal storage pointer"}},"id":10491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"12400:28:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10492,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10381,"src":"12431:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"12431:29:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12400:60:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10495,"nodeType":"ExpressionStatement","src":"12400:60:38"}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@return amount the external token redeemed amount","id":10497,"implemented":true,"kind":"function","modifiers":[],"name":"redeemExternalToken","nodeType":"FunctionDefinition","parameters":{"id":10376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10373,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10497,"src":"11239:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11239:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10375,"name":"_avatar","nodeType":"VariableDeclaration","scope":10497,"src":"11260:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10374,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"11260:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"11238:37:38"},"returnParameters":{"id":10379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10378,"name":"amount","nodeType":"VariableDeclaration","scope":10497,"src":"11291:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10377,"name":"uint256","nodeType":"ElementaryTypeName","src":"11291:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11290:16:38"},"scope":10909,"src":"11210:1257:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10564,"nodeType":"Block","src":"13136:461:38","statements":[{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10516,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13151:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10518,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10517,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13165:1:38","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":"13151:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10527,"nodeType":"IfStatement","src":"13147:104:38","trueBody":{"id":10526,"nodeType":"Block","src":"13169:82:38","statements":[{"expression":{"argumentTypes":null,"id":10524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10519,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10508,"src":"13183:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10521,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13219:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10522,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13232:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10520,"name":"redeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10147,"src":"13202:16:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_int256_$","typeString":"function (bytes32,contract Avatar) returns (int256)"}},"id":10523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13202:38:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"13183:57:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":10525,"nodeType":"ExpressionStatement","src":"13183:57:38"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10528,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13265:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10530,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13279:1:38","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":"13265:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10539,"nodeType":"IfStatement","src":"13261:106:38","trueBody":{"id":10538,"nodeType":"Block","src":"13283:84:38","statements":[{"expression":{"argumentTypes":null,"id":10536,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10531,"name":"nativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10510,"src":"13297:17:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10533,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13335:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10534,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13348:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10532,"name":"redeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10260,"src":"13317:17:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_uint256_$","typeString":"function (bytes32,contract Avatar) returns (uint256)"}},"id":10535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13317:39:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13297:59:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10537,"nodeType":"ExpressionStatement","src":"13297:59:38"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10540,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13381:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10542,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13395:1:38","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":"13381:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10551,"nodeType":"IfStatement","src":"13377:94:38","trueBody":{"id":10550,"nodeType":"Block","src":"13399:72:38","statements":[{"expression":{"argumentTypes":null,"id":10548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10543,"name":"etherReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10512,"src":"13413:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10545,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13439:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10546,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13452:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10544,"name":"redeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10371,"src":"13427:11:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_uint256_$","typeString":"function (bytes32,contract Avatar) returns (uint256)"}},"id":10547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13427:33:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13413:47:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10549,"nodeType":"ExpressionStatement","src":"13413:47:38"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10552,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10505,"src":"13485:13:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":10554,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13499:1:38","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":"13485:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10563,"nodeType":"IfStatement","src":"13481:110:38","trueBody":{"id":10562,"nodeType":"Block","src":"13503:88:38","statements":[{"expression":{"argumentTypes":null,"id":10560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10555,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10514,"src":"13517:19:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10557,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10499,"src":"13559:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10558,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10501,"src":"13572:7:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10556,"name":"redeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10497,"src":"13539:19:38","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_uint256_$","typeString":"function (bytes32,contract Avatar) returns (uint256)"}},"id":10559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13539:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13517:63:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10561,"nodeType":"ExpressionStatement","src":"13517:63:38"}]}}]},"documentation":"@dev redeem rewards for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _whatToRedeem whatToRedeem array:\n whatToRedeem[0] - reputation\n whatToRedeem[1] - nativeTokenReward\n whatToRedeem[2] - Ether\n whatToRedeem[3] - ExternalToken\n@return result boolean array for each redeem type.","id":10565,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":10506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10499,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10565,"src":"12940:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10498,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12940:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10501,"name":"_avatar","nodeType":"VariableDeclaration","scope":10565,"src":"12961:14:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10500,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"12961:6:38","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":10505,"name":"_whatToRedeem","nodeType":"VariableDeclaration","scope":10565,"src":"12977:28:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":10502,"name":"bool","nodeType":"ElementaryTypeName","src":"12977:4:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10504,"length":{"argumentTypes":null,"hexValue":"34","id":10503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12982:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"12977:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"src":"12939:67:38"},"returnParameters":{"id":10515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10508,"name":"reputationReward","nodeType":"VariableDeclaration","scope":10565,"src":"13030:23:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10507,"name":"int256","nodeType":"ElementaryTypeName","src":"13030:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10510,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":10565,"src":"13055:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10509,"name":"uint256","nodeType":"ElementaryTypeName","src":"13055:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10512,"name":"etherReward","nodeType":"VariableDeclaration","scope":10565,"src":"13082:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10511,"name":"uint256","nodeType":"ElementaryTypeName","src":"13082:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10514,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":10565,"src":"13103:27:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10513,"name":"uint256","nodeType":"ElementaryTypeName","src":"13103:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13029:102:38"},"scope":10909,"src":"12924:673:38","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":10660,"nodeType":"Block","src":"14250:861:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10577,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"14268:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"33","id":10578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14283:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"src":"14268:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73686f756c6420626520696e207468652072656465656d6564506572696f64732072616e6765","id":10580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14286:40:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_bd4ef719b23c5e3871f26867b3b48c4c02d5ad3d8d736edd8425236f128c30e7","typeString":"literal_string \"should be in the redeemedPeriods range\""},"value":"should be in the redeemedPeriods range"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_bd4ef719b23c5e3871f26867b3b48c4c02d5ad3d8d736edd8425236f128c30e7","typeString":"literal_string \"should be in the redeemedPeriods range\""}],"id":10576,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"14260:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14260:67:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10582,"nodeType":"ExpressionStatement","src":"14260:67:38"},{"assignments":[10584],"declarations":[{"constant":false,"id":10584,"name":"_proposal","nodeType":"VariableDeclaration","scope":10660,"src":"14337:37:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal"},"typeName":{"contractScope":null,"id":10583,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":9727,"src":"14337:20:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage_ptr","typeString":"struct ContributionReward.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":10590,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10585,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"14377:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10587,"indexExpression":{"argumentTypes":null,"id":10586,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10569,"src":"14400:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14377:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10589,"indexExpression":{"argumentTypes":null,"id":10588,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10567,"src":"14409:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14377:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14337:84:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10591,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14435:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"14435:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14462:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14435:28:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10597,"nodeType":"IfStatement","src":"14431:54:38","trueBody":{"expression":{"argumentTypes":null,"hexValue":"30","id":10595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14484:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":10575,"id":10596,"nodeType":"Return","src":"14477:8:38"}},{"assignments":[10599],"declarations":[{"constant":false,"id":10599,"name":"periodsFromExecution","nodeType":"VariableDeclaration","scope":10660,"src":"14495:28:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10598,"name":"uint256","nodeType":"ElementaryTypeName","src":"14495:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10600,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14495:28:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10601,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14537:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10602,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"periodLength","nodeType":"MemberAccess","referencedDeclaration":9718,"src":"14537:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14562:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14537:26:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10619,"nodeType":"IfStatement","src":"14533:195:38","trueBody":{"id":10618,"nodeType":"Block","src":"14565:163:38","statements":[{"expression":{"argumentTypes":null,"id":10616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10605,"name":"periodsFromExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10599,"src":"14635:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10608,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14667:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"14667:23:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10606,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"14659:3:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"14659:7:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14659:32:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10611,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14658:34:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10612,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14694:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10613,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"periodLength","nodeType":"MemberAccess","referencedDeclaration":9718,"src":"14694:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10614,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14693:24:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14658:59:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14635:82:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10617,"nodeType":"ExpressionStatement","src":"14635:82:38"}]}},{"assignments":[10621],"declarations":[{"constant":false,"id":10621,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":10660,"src":"14737:20:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10620,"name":"uint256","nodeType":"ElementaryTypeName","src":"14737:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":10622,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"14737:20:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10623,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14772:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10624,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"periodLength","nodeType":"MemberAccess","referencedDeclaration":9718,"src":"14772:22:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14798:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14772:27:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10627,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14771:29:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10631,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10628,"name":"periodsFromExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10599,"src":"14805:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10629,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14829:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfPeriods","nodeType":"MemberAccess","referencedDeclaration":9720,"src":"14829:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14805:49:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10632,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14804:51:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14771:84:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":10656,"nodeType":"Block","src":"14972:104:38","statements":[{"expression":{"argumentTypes":null,"id":10654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10646,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"14986:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10649,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"15026:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"15026:25:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory","typeString":"uint256[4] memory"}},"id":10652,"indexExpression":{"argumentTypes":null,"id":10651,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"15052:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15026:38:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":10647,"name":"periodsFromExecution","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10599,"src":"15001:20:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"15001:24:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15001:64:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14986:79:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10655,"nodeType":"ExpressionStatement","src":"14986:79:38"}]},"id":10657,"nodeType":"IfStatement","src":"14767:309:38","trueBody":{"id":10645,"nodeType":"Block","src":"14857:109:38","statements":[{"expression":{"argumentTypes":null,"id":10643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":10634,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"14871:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10638,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14916:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"14916:25:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_memory","typeString":"uint256[4] memory"}},"id":10641,"indexExpression":{"argumentTypes":null,"id":10640,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10571,"src":"14942:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14916:38:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10635,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10584,"src":"14886:9:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_memory_ptr","typeString":"struct ContributionReward.ContributionProposal memory"}},"id":10636,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numberOfPeriods","nodeType":"MemberAccess","referencedDeclaration":9720,"src":"14886:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"14886:29:38","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":10642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14886:69:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14871:84:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10644,"nodeType":"ExpressionStatement","src":"14871:84:38"}]}},{"expression":{"argumentTypes":null,"id":10658,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10621,"src":"15092:12:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10575,"id":10659,"nodeType":"Return","src":"15085:19:38"}]},"documentation":"@dev getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken.\nThe function ignore the reward amount to be paid (which can be zero).\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _redeemType - the type of the reward :\n 0 - reputation\n 1 - nativeTokenReward\n 2 - Ether\n 3 - ExternalToken\n@return periods left to be paid.","id":10661,"implemented":true,"kind":"function","modifiers":[],"name":"getPeriodsToPay","nodeType":"FunctionDefinition","parameters":{"id":10572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10567,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10661,"src":"14161:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14161:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10569,"name":"_avatar","nodeType":"VariableDeclaration","scope":10661,"src":"14182:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10568,"name":"address","nodeType":"ElementaryTypeName","src":"14182:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":10571,"name":"_redeemType","nodeType":"VariableDeclaration","scope":10661,"src":"14199:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10570,"name":"uint256","nodeType":"ElementaryTypeName","src":"14199:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14160:59:38"},"returnParameters":{"id":10575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10574,"name":"","nodeType":"VariableDeclaration","scope":10661,"src":"14241:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10573,"name":"uint256","nodeType":"ElementaryTypeName","src":"14241:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14240:9:38"},"scope":10909,"src":"14136:975:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10681,"nodeType":"Block","src":"15700:97:38","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10672,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"15717:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10674,"indexExpression":{"argumentTypes":null,"id":10673,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10665,"src":"15740:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15717:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10676,"indexExpression":{"argumentTypes":null,"id":10675,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10663,"src":"15749:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15717:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"redeemedPeriods","nodeType":"MemberAccess","referencedDeclaration":9726,"src":"15717:60:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$4_storage","typeString":"uint256[4] storage ref"}},"id":10679,"indexExpression":{"argumentTypes":null,"id":10678,"name":"_redeemType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10667,"src":"15778:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15717:73:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10671,"id":10680,"nodeType":"Return","src":"15710:80:38"}]},"documentation":"@dev getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken.\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _redeemType - the type of the reward :\n 0 - reputation\n 1 - nativeTokenReward\n 2 - Ether\n 3 - ExternalToken\n@return redeemed period.","id":10682,"implemented":true,"kind":"function","modifiers":[],"name":"getRedeemedPeriods","nodeType":"FunctionDefinition","parameters":{"id":10668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10663,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10682,"src":"15599:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15599:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10665,"name":"_avatar","nodeType":"VariableDeclaration","scope":10682,"src":"15620:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10664,"name":"address","nodeType":"ElementaryTypeName","src":"15620:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":10667,"name":"_redeemType","nodeType":"VariableDeclaration","scope":10682,"src":"15637:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10666,"name":"uint256","nodeType":"ElementaryTypeName","src":"15637:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15598:59:38"},"returnParameters":{"id":10671,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10670,"name":"","nodeType":"VariableDeclaration","scope":10682,"src":"15691:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10669,"name":"uint256","nodeType":"ElementaryTypeName","src":"15691:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15690:9:38"},"scope":10909,"src":"15571:226:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10698,"nodeType":"Block","src":"15901:78:38","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10691,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"15918:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10693,"indexExpression":{"argumentTypes":null,"id":10692,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10686,"src":"15941:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15918:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10695,"indexExpression":{"argumentTypes":null,"id":10694,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10684,"src":"15950:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15918:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":9710,"src":"15918:54:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10690,"id":10697,"nodeType":"Return","src":"15911:61:38"}]},"documentation":null,"id":10699,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalEthReward","nodeType":"FunctionDefinition","parameters":{"id":10687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10684,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10699,"src":"15833:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10683,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15833:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10686,"name":"_avatar","nodeType":"VariableDeclaration","scope":10699,"src":"15854:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10685,"name":"address","nodeType":"ElementaryTypeName","src":"15854:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"15832:38:38"},"returnParameters":{"id":10690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10689,"name":"","nodeType":"VariableDeclaration","scope":10699,"src":"15892:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10688,"name":"uint256","nodeType":"ElementaryTypeName","src":"15892:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15891:9:38"},"scope":10909,"src":"15803:176:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10715,"nodeType":"Block","src":"16093:88:38","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10708,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"16110:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10710,"indexExpression":{"argumentTypes":null,"id":10709,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10703,"src":"16133:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16110:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10712,"indexExpression":{"argumentTypes":null,"id":10711,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10701,"src":"16142:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16110:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10713,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":9714,"src":"16110:64:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10707,"id":10714,"nodeType":"Return","src":"16103:71:38"}]},"documentation":null,"id":10716,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalTokenReward","nodeType":"FunctionDefinition","parameters":{"id":10704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10701,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10716,"src":"16025:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16025:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10703,"name":"_avatar","nodeType":"VariableDeclaration","scope":10716,"src":"16046:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10702,"name":"address","nodeType":"ElementaryTypeName","src":"16046:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16024:38:38"},"returnParameters":{"id":10707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10706,"name":"","nodeType":"VariableDeclaration","scope":10716,"src":"16084:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10705,"name":"uint256","nodeType":"ElementaryTypeName","src":"16084:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16083:9:38"},"scope":10909,"src":"15985:196:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10734,"nodeType":"Block","src":"16289:91:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10726,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"16314:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10728,"indexExpression":{"argumentTypes":null,"id":10727,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10720,"src":"16337:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16314:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10730,"indexExpression":{"argumentTypes":null,"id":10729,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10718,"src":"16346:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16314:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10731,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":9712,"src":"16314:58:38","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":10725,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16306:7:38","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16306:67:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10724,"id":10733,"nodeType":"Return","src":"16299:74:38"}]},"documentation":null,"id":10735,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalToken","nodeType":"FunctionDefinition","parameters":{"id":10721,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10718,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10735,"src":"16221:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10717,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16221:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10720,"name":"_avatar","nodeType":"VariableDeclaration","scope":10735,"src":"16242:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10719,"name":"address","nodeType":"ElementaryTypeName","src":"16242:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16220:38:38"},"returnParameters":{"id":10724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10723,"name":"","nodeType":"VariableDeclaration","scope":10735,"src":"16280:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10722,"name":"address","nodeType":"ElementaryTypeName","src":"16280:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16279:9:38"},"scope":10909,"src":"16187:193:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10751,"nodeType":"Block","src":"16488:82:38","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10744,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9733,"src":"16505:22:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref))"}},"id":10746,"indexExpression":{"argumentTypes":null,"id":10745,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10739,"src":"16528:7:38","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16505:31:38","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$9727_storage_$","typeString":"mapping(bytes32 => struct ContributionReward.ContributionProposal storage ref)"}},"id":10748,"indexExpression":{"argumentTypes":null,"id":10747,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10737,"src":"16537:11:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16505:44:38","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$9727_storage","typeString":"struct ContributionReward.ContributionProposal storage ref"}},"id":10749,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executionTime","nodeType":"MemberAccess","referencedDeclaration":9722,"src":"16505:58:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":10743,"id":10750,"nodeType":"Return","src":"16498:65:38"}]},"documentation":null,"id":10752,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExecutionTime","nodeType":"FunctionDefinition","parameters":{"id":10740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10737,"name":"_proposalId","nodeType":"VariableDeclaration","scope":10752,"src":"16420:19:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16420:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10739,"name":"_avatar","nodeType":"VariableDeclaration","scope":10752,"src":"16441:15:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10738,"name":"address","nodeType":"ElementaryTypeName","src":"16441:7:38","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"16419:38:38"},"returnParameters":{"id":10743,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10742,"name":"","nodeType":"VariableDeclaration","scope":10752,"src":"16479:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10741,"name":"uint256","nodeType":"ElementaryTypeName","src":"16479:7:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"16478:9:38"},"scope":10909,"src":"16386:184:38","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":10770,"nodeType":"Block","src":"16985:83:38","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10764,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10754,"src":"17030:18:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":10765,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10756,"src":"17050:8:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":10762,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"17013:3:38","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":10763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"17013:16:38","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":10766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17013:46:38","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":10761,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"17003:9:38","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":10767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17003:57:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":10768,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17002:59:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":10760,"id":10769,"nodeType":"Return","src":"16995:66:38"}]},"documentation":"@dev return a hash of the given parameters\n@param _voteApproveParams parameters for the voting machine used to approve a contribution\n@param _intVote the voting machine used to approve a contribution\n@return a hash of the parameters","id":10771,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":10757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10754,"name":"_voteApproveParams","nodeType":"VariableDeclaration","scope":10771,"src":"16884:26:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10753,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16884:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":10756,"name":"_intVote","nodeType":"VariableDeclaration","scope":10771,"src":"16920:25:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":10755,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"16920:16:38","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"16874:77:38"},"returnParameters":{"id":10760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10759,"name":"","nodeType":"VariableDeclaration","scope":10771,"src":"16972:7:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":10758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16972:7:38","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"16971:9:38"},"scope":10909,"src":"16848:220:38","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":10907,"nodeType":"Block","src":"17864:1282:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10781,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"17884:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10783,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":10782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17893:1:38","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":"17884:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17898:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17884:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10786,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17883:17:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10787,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"17905:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10789,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17914:1:38","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":"17905:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":10790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17920:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17905:16:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10792,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17904:18:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17883:39:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10794,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17882:41:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"706572696f644c656e67746820657175616c20302072657175697265206e756d6265724f66506572696f647320746f2062652031","id":10795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17925:54:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_184adae7a751af32b21a6c9ed23b7708e5a5b5f5f10a65f1b2801f2057c75169","typeString":"literal_string \"periodLength equal 0 require numberOfPeriods to be 1\""},"value":"periodLength equal 0 require numberOfPeriods to be 1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_184adae7a751af32b21a6c9ed23b7708e5a5b5f5f10a65f1b2801f2057c75169","typeString":"literal_string \"periodLength equal 0 require numberOfPeriods to be 1\""}],"id":10780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"17874:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17874:106:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10797,"nodeType":"ExpressionStatement","src":"17874:106:38"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10798,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"17994:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10800,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18003:1:38","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":"17994:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":10801,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18008:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17994:15:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":10906,"nodeType":"IfStatement","src":"17990:1150:38","trueBody":{"id":10905,"nodeType":"Block","src":"18011:1129:38","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18114:59:38","subExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":10819,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10805,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18120:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10807,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18129:1:38","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":"18120:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18116:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18116:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":10810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"18136:2:38","subExpression":{"argumentTypes":null,"hexValue":"31","id":10809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18137:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"18116:22:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10812,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"18142:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"},"id":10816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"18164:2:38","subExpression":{"argumentTypes":null,"hexValue":"32","id":10813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18165:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_2_by_1","typeString":"int_const -2"}},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"argumentTypes":null,"hexValue":"323535","id":10815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18168:3:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"255"},"src":"18164:7:38","typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}}],"id":10817,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18163:9:38","typeDescriptions":{"typeIdentifier":"t_rational_minus_57896044618658097711785492504343953926634992332820282019728792003956564819968_by_1","typeString":"int_const -578...(70 digits omitted)...9968"}},"src":"18142:30:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"18116:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":10820,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18115:58:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a205f72657075746174696f6e4368616e67652077696c6c206f766572666c6f77","id":10822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18187:51:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ab8a2e4ee4d3597bb0351c7c743538e634e63d778d3320ee5b31ef158832372d","typeString":"literal_string \"numberOfPeriods * _reputationChange will overflow\""},"value":"numberOfPeriods * _reputationChange will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ab8a2e4ee4d3597bb0351c7c743538e634e63d778d3320ee5b31ef158832372d","typeString":"literal_string \"numberOfPeriods * _reputationChange will overflow\""}],"id":10803,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18106:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18106:133:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10824,"nodeType":"ExpressionStatement","src":"18106:133:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":10832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10827,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18344:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10829,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10828,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18353:1:38","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":"18344:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10826,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18340:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18340:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":10831,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"18359:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18340:36:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":10833,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18339:38:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10835,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18384:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10837,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18393:1:38","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":"18384:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":10834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18380:3:38","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":10838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18380:16:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18339:57:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":10840,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10773,"src":"18400:17:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"18339:78:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a2072657075746174696f6e4368616e67652077696c6c206f766572666c6f77","id":10842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18431:50:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6fa768ac293f7b05b3e87a1ebad2012e5a6a340f67643b77311417d6dafa9436","typeString":"literal_string \"numberOfPeriods * reputationChange will overflow\""},"value":"numberOfPeriods * reputationChange will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6fa768ac293f7b05b3e87a1ebad2012e5a6a340f67643b77311417d6dafa9436","typeString":"literal_string \"numberOfPeriods * reputationChange will overflow\""}],"id":10825,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18331:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18331:151:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10844,"nodeType":"ExpressionStatement","src":"18331:151:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10846,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18578:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10848,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18587:1:38","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":"18578:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10849,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18592:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10851,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18601:1:38","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":"18592:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18578:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10853,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18577:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10854,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18607:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10856,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18616:1:38","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":"18607:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18577:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10858,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18622:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10860,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":10859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18631:1:38","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":"18622:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18577:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a20746f6b656e5265776172642077696c6c206f766572666c6f77","id":10862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18647:45:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6af13b0395690350c64b9a73bd65817f03553aafcbf4e1b169882296373f78b8","typeString":"literal_string \"numberOfPeriods * tokenReward will overflow\""},"value":"numberOfPeriods * tokenReward will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6af13b0395690350c64b9a73bd65817f03553aafcbf4e1b169882296373f78b8","typeString":"literal_string \"numberOfPeriods * tokenReward will overflow\""}],"id":10845,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18569:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18569:124:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10864,"nodeType":"ExpressionStatement","src":"18569:124:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10866,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18787:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10868,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10867,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18796:1:38","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":"18787:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10869,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18801:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10871,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10870,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18810:1:38","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":"18801:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18787:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18786:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10874,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18816:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10876,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18825:1:38","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":"18816:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18786:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10878,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"18831:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10880,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":10879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18840:1:38","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":"18831:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18786:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a206574685265776172642077696c6c206f766572666c6f77","id":10882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18856:43:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7d24f587c8d5849a935969c8a76b899afed1548d7c31a3a3fa2c0a3a3c99f2f3","typeString":"literal_string \"numberOfPeriods * ethReward will overflow\""},"value":"numberOfPeriods * ethReward will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d24f587c8d5849a935969c8a76b899afed1548d7c31a3a3fa2c0a3a3c99f2f3","typeString":"literal_string \"numberOfPeriods * ethReward will overflow\""}],"id":10865,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18778:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18778:122:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10884,"nodeType":"ExpressionStatement","src":"18778:122:38"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":10892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10886,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19005:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10888,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19014:1:38","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":"19005:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10889,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19019:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10891,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10890,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19028:1:38","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":"19019:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19005:25:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":10893,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19004:27:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10894,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19034:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10896,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":10895,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19043:1:38","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":"19034:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19004:41:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":10898,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10777,"src":"19049:8:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5] memory"}},"id":10900,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":10899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19058:1:38","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":"19049:11:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19004:56:38","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d6265724f66506572696f6473202a207465787465726e616c546f6b656e5265776172642077696c6c206f766572666c6f77","id":10902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19074:54:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f05de1d5fb12283a79df3f3169c88e709d30361f769bc8d3b5767984dc30ab5e","typeString":"literal_string \"numberOfPeriods * texternalTokenReward will overflow\""},"value":"numberOfPeriods * texternalTokenReward will overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f05de1d5fb12283a79df3f3169c88e709d30361f769bc8d3b5767984dc30ab5e","typeString":"literal_string \"numberOfPeriods * texternalTokenReward will overflow\""}],"id":10885,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"18996:7:38","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":10903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18996:133:38","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10904,"nodeType":"ExpressionStatement","src":"18996:133:38"}]}}]},"documentation":"@dev validateProposalParams validate proposal's rewards parameters.\nThe function check for potential overflow upon proposal's redeem.\nThe function reverts if the params are not valid.\n@param _reputationChange - Amount of reputation change requested .Can be negative.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested per period\n rewards[1] - Amount of ETH requested per period\n rewards[2] - Amount of external tokens requested per period\n rewards[3] - Period length - if set to zero it allows immediate redeeming after execution.\n rewards[4] - Number of periods","id":10908,"implemented":true,"kind":"function","modifiers":[],"name":"validateProposalParams","nodeType":"FunctionDefinition","parameters":{"id":10778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10773,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":10908,"src":"17800:24:38","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":10772,"name":"int256","nodeType":"ElementaryTypeName","src":"17800:6:38","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":10777,"name":"_rewards","nodeType":"VariableDeclaration","scope":10908,"src":"17826:23:38","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_memory_ptr","typeString":"uint256[5]"},"typeName":{"baseType":{"id":10774,"name":"uint","nodeType":"ElementaryTypeName","src":"17826:4:38","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":10776,"length":{"argumentTypes":null,"hexValue":"35","id":10775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17831:1:38","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"nodeType":"ArrayTypeName","src":"17826:7:38","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$5_storage_ptr","typeString":"uint256[5]"}},"value":null,"visibility":"internal"}],"src":"17799:51:38"},"returnParameters":{"id":10779,"nodeType":"ParameterList","parameters":[],"src":"17864:0:38"},"scope":10909,"src":"17768:1378:38","stateMutability":"pure","superFunction":null,"visibility":"private"}],"scope":10910,"src":"499:18650:38"}],"src":"0:19150:38"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.159Z","devdoc":{"details":"An agent can ask an organization to recognize a contribution and reward him with token, reputation, ether or any combination.","methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_param":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"}},"getParametersHash(bytes32,address)":{"details":"return a hash of the given parameters","params":{"_intVote":"the voting machine used to approve a contribution","_voteApproveParams":"parameters for the voting machine used to approve a contribution"},"return":"a hash of the parameters"},"getPeriodsToPay(bytes32,address,uint256)":{"details":"getPeriodsToPay return the periods left to be paid for reputation,nativeToken,ether or externalToken. The function ignore the reward amount to be paid (which can be zero).","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine","_redeemType":"- the type of the reward : 0 - reputation 1 - nativeTokenReward 2 - Ether 3 - ExternalToken"},"return":"periods left to be paid."},"getRedeemedPeriods(bytes32,address,uint256)":{"details":"getRedeemedPeriods return the already redeemed periods for reputation, nativeToken, ether or externalToken.","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine","_redeemType":"- the type of the reward : 0 - reputation 1 - nativeTokenReward 2 - Ether 3 - ExternalToken"},"return":"redeemed period."},"proposeContributionReward(address,string,int256,uint256[5],address,address)":{"details":"Submit a proposal for a reward for a contribution:","params":{"_avatar":"Avatar of the organization that the contribution was made for","_beneficiary":"Who gets the rewards","_descriptionHash":"A hash of the proposal's description","_externalToken":"Address of external token, if reward is requested there","_reputationChange":"- Amount of reputation change requested .Can be negative.","_rewards":"rewards array: rewards[0] - Amount of tokens requested per period rewards[1] - Amount of ETH requested per period rewards[2] - Amount of external tokens requested per period rewards[3] - Period length - if set to zero it allows immediate redeeming after execution. rewards[4] - Number of periods"}},"redeem(bytes32,address,bool[4])":{"details":"redeem rewards for proposal","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine","_whatToRedeem":"whatToRedeem array: whatToRedeem[0] - reputation whatToRedeem[1] - nativeTokenReward whatToRedeem[2] - Ether whatToRedeem[3] - ExternalToken"},"return":"result boolean array for each redeem type."},"redeemEther(bytes32,address)":{"details":"RedeemEther reward for proposal","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine"},"return":"amount ether redeemed amount"},"redeemExternalToken(bytes32,address)":{"details":"RedeemNativeToken reward for proposal","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine"},"return":"amount the external token redeemed amount"},"redeemNativeToken(bytes32,address)":{"details":"RedeemNativeToken reward for proposal","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine"},"return":"amount the redeemed nativeToken."},"redeemReputation(bytes32,address)":{"details":"RedeemReputation reward for proposal","params":{"_avatar":"address of the controller","_proposalId":"the ID of the voting in the voting machine"},"return":"reputation the redeemed reputation."},"setParameters(bytes32,address)":{"details":"hash the parameters, save them if necessary, and return the hash value"}},"title":"A scheme for proposing and rewarding contributions to an organization"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContributionRewardExt.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContributionRewardExt.json new file mode 100644 index 00000000..affa266a --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ContributionRewardExt.json @@ -0,0 +1 @@ +{"contractName":"ContributionRewardExt","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"},{"indexed":false,"internalType":"int256","name":"_reputationChange","type":"int256"},{"indexed":false,"internalType":"uint256[3]","name":"_rewards","type":"uint256[3]"},{"indexed":false,"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"indexed":false,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"}],"name":"NewContributionProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemEther","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemExternalToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemNativeToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"int256","name":"_amount","type":"int256"}],"name":"RedeemReputation","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationProposals","outputs":[{"internalType":"uint256","name":"nativeTokenReward","type":"uint256"},{"internalType":"int256","name":"reputationChange","type":"int256"},{"internalType":"uint256","name":"ethReward","type":"uint256"},{"internalType":"contract IERC20","name":"externalToken","type":"address"},{"internalType":"uint256","name":"externalTokenReward","type":"uint256"},{"internalType":"address payable","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"nativeTokenRewardLeft","type":"uint256"},{"internalType":"uint256","name":"reputationChangeLeft","type":"uint256"},{"internalType":"uint256","name":"ethRewardLeft","type":"uint256"},{"internalType":"uint256","name":"externalTokenRewardLeft","type":"uint256"},{"internalType":"bool","name":"acceptedByVotingMachine","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"voteParams","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingMachine","outputs":[{"internalType":"contract IntVoteInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"contract IntVoteInterface","name":"_votingMachine","type":"address"},{"internalType":"bytes32","name":"_voteParams","type":"bytes32"},{"internalType":"address","name":"_rewarder","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_decision","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_descriptionHash","type":"string"},{"internalType":"int256","name":"_reputationChange","type":"int256"},{"internalType":"uint256[3]","name":"_rewards","type":"uint256[3]"},{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"address","name":"_proposer","type":"address"}],"name":"proposeContributionReward","outputs":[{"internalType":"bytes32","name":"proposalId","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"redeemReputation","outputs":[{"internalType":"int256","name":"reputation","type":"int256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"redeemNativeToken","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"redeemEther","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"redeemExternalToken","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"redeemReputationByRewarder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"redeemNativeTokenByRewarder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"redeemEtherByRewarder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"redeemExternalTokenByRewarder","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"bool[4]","name":"_whatToRedeem","type":"bool[4]"}],"name":"redeem","outputs":[{"internalType":"int256","name":"reputationReward","type":"int256"},{"internalType":"uint256","name":"nativeTokenReward","type":"uint256"},{"internalType":"uint256","name":"etherReward","type":"uint256"},{"internalType":"uint256","name":"externalTokenReward","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalEthReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalExternalTokenReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalExternalToken","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalReputationReward","outputs":[{"internalType":"int256","name":"","type":"int256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalNativeTokenReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalAcceptedByVotingMachine","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_reputationChange\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256[3]\",\"name\":\"_rewards\",\"type\":\"uint256[3]\"},{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"NewContributionProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemEther\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemExternalToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemNativeToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_amount\",\"type\":\"int256\"}],\"name\":\"RedeemReputation\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_decision\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalAcceptedByVotingMachine\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalEthReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalExternalToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalExternalTokenReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalNativeTokenReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalReputationReward\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_votingMachine\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_rewarder\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationProposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"nativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"reputationChange\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"ethReward\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"externalToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"externalTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"nativeTokenRewardLeft\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"reputationChangeLeft\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"ethRewardLeft\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalTokenRewardLeft\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"acceptedByVotingMachine\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"},{\"internalType\":\"int256\",\"name\":\"_reputationChange\",\"type\":\"int256\"},{\"internalType\":\"uint256[3]\",\"name\":\"_rewards\",\"type\":\"uint256[3]\"},{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"}],\"name\":\"proposeContributionReward\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"proposalId\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"bool[4]\",\"name\":\"_whatToRedeem\",\"type\":\"bool[4]\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"reputationReward\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"nativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"etherReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"externalTokenReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"redeemEther\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"redeemEtherByRewarder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"redeemExternalToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"redeemExternalTokenByRewarder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"redeemNativeToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"redeemNativeTokenByRewarder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"redeemReputation\",\"outputs\":[{\"internalType\":\"int256\",\"name\":\"reputation\",\"type\":\"int256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"redeemReputationByRewarder\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"rewarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voteParams\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingMachine\",\"outputs\":[{\"internalType\":\"contract IntVoteInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"An agent can ask an organization to recognize a contribution and reward him with token, reputation, ether or any combination. This scheme extend the functionality of the ContributionReward scheme. It enable to assign a rewarder, which, after the contributionreward has been accepted, can then later distribute the assets as it would like.\",\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_decision\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the proposal in the voting machine\"}},\"initialize(address,address,bytes32,address)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar to mint reputation from\",\"_rewarder\":\"an address which allowed to redeem the contribution. if _rewarder is 0 this param is agnored.\",\"_voteParams\":\"voting machine parameters\",\"_votingMachine\":\"the voting machines address\"}},\"proposeContributionReward(string,int256,uint256[3],address,address,address)\":{\"details\":\"Submit a proposal for a reward for a contribution:\",\"params\":{\"_beneficiary\":\"Who gets the rewards. if equal to 0 the beneficiary will be msg.sender.\",\"_descriptionHash\":\"A hash of the proposal's description\",\"_externalToken\":\"Address of external token, if reward is requested there\",\"_proposer\":\"proposer . if equal to 0 the proposer will be msg.sender.\",\"_reputationChange\":\"- Amount of reputation change requested .Can be negative.\",\"_rewards\":\"rewards array: rewards[0] - Amount of tokens requested rewards[1] - Amount of ETH requested rewards[2] - Amount of external tokens\"}},\"redeem(bytes32,bool[4])\":{\"details\":\"redeem rewards for proposal\",\"params\":{\"_proposalId\":\"the ID of the voting in the voting machine\",\"_whatToRedeem\":\"whatToRedeem array of boolean values: whatToRedeem[0] - reputation whatToRedeem[1] - nativeTokenReward whatToRedeem[2] - Ether whatToRedeem[3] - ExternalToken\"},\"return\":\"result boolean array for each redeem type.\"},\"redeemEther(bytes32)\":{\"details\":\"RedeemEther reward for proposal\",\"params\":{\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"amount ether redeemed amount\"},\"redeemEtherByRewarder(bytes32,address,uint256)\":{\"details\":\"redeemEtherByRewarder redeem reward for proposal\",\"params\":{\"_amount\":\"eth amount to send\",\"_beneficiary\":\"the beneficiary to send eth to.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"redeemExternalToken(bytes32)\":{\"details\":\"RedeemNativeToken reward for proposal\",\"params\":{\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"amount the external token redeemed amount\"},\"redeemExternalTokenByRewarder(bytes32,address,uint256)\":{\"details\":\"redeemExternalTokenByRewarder redeem reward for proposal\",\"params\":{\"_amount\":\"the amount of external token to send\",\"_beneficiary\":\"the beneficiary to send the external token to.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"redeemNativeToken(bytes32)\":{\"details\":\"RedeemNativeToken reward for proposal\",\"params\":{\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"amount the redeemed nativeToken.\"},\"redeemNativeTokenByRewarder(bytes32,address,uint256)\":{\"details\":\"redeemNativeTokenByRewarder redeem reward for proposal\",\"params\":{\"_amount\":\"the tokens amount to mint\",\"_beneficiary\":\"the beneficiary to mint tokens to.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"redeemReputation(bytes32)\":{\"details\":\"RedeemReputation reward for proposal\",\"params\":{\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"reputation the redeemed reputation.\"},\"redeemReputationByRewarder(bytes32,address,uint256)\":{\"details\":\"redeemReputationByRewarder redeem reward for proposal\",\"params\":{\"_beneficiary\":\"the beneficiary to mint reputation to.\",\"_proposalId\":\"the ID of the voting in the voting machine\",\"_reputation\":\"the reputation amount to mint note: burn reputation is not supported via this function\"}}},\"title\":\"A scheme for proposing and rewarding contributions to an organization\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol\":\"ContributionRewardExt\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol\":{\"keccak256\":\"0x271a840a4b3f4f1edd032d6954e2db0f59a4336abd3ed29cc72dd99b56b35e1a\",\"urls\":[\"bzz-raw://6954d78cf36f562668500408d210610239d03c76e70947c0e24d8abc9f3b3c8a\",\"dweb:/ipfs/QmNqAyf47Z7CM28xWbkPZAQV5XyasUsnkW71idmi1D8wmp\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"720:18189:11:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:18189:11;;;;;;;","deployedSourceMap":"720:18189:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14829:778;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14829:778:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14829:778:11;;;-1:-1:-1;;;;;14829:778:11;;;;;;;;;;:::i;9049:944::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9049:944:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9049:944:11;;:::i;:::-;;;;;;;;;;;;;;;;17264:621;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17264:621:11;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;17264:621:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;17264:621:11;;-1:-1:-1;17264:621:11;;-1:-1:-1;;;;17264:621:11:i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11175:1029;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11175:1029:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11175:1029:11;;:::i;2715:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2715:37:11;;;:::i;:::-;;;;-1:-1:-1;;;;;2715:37:11;;;;;;;;;;;;;;5285:1823;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5285:1823:11;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;5285:1823:11;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5285:1823:11;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5285:1823:11;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5285:1823:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;5285:1823:11;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5285:1823:11;-1:-1:-1;5285:1823:11;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;5285:1823:11;;-1:-1:-1;;;;;;;5285:1823:11;;;;;-1:-1:-1;5285:1823:11;;;;;;;;;;;;-1:-1:-1;5285:1823:11;:::i;18046:169::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18046:169:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18046:169:11;;:::i;10168:813::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10168:813:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10168:813:11;;:::i;2789:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2789:20:11;;;:::i;598:73:50:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;598:73:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;1973:346;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1973:346:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;13729:853:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13729:853:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13729:853:11;;;-1:-1:-1;;;;;13729:853:11;;;;;;;;;;:::i;18221:166::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18221:166:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18221:166:11;;:::i;2666:345:50:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2666:345:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;4074:514:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4074:514:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4074:514:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;17891:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17891:149:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17891:149:11;;:::i;3282:522::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3282:522:11;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;3282:522:11;;;;;;;;;;;;;;;;;;;;;;:::i;2325:335:50:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2325:335:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;18561:165:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18561:165:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18561:165:11;;:::i;1492:475:50:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1492:475:50;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;12548:918:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12548:918:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;12548:918:11;;;-1:-1:-1;;;;;12548:918:11;;;;;;;;;;:::i;7295:1569::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7295:1569:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7295:1569:11;;:::i;18732:174::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18732:174:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18732:174:11;;:::i;678:401:50:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;678:401:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;2641:67:11:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2641:67:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2641:67:11;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2641:67:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2815:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2815:23:11;;;:::i;15895:941::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15895:941:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15895:941:11;;;-1:-1:-1;;;;;15895:941:11;;;;;;;;;;:::i;2758:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2758:25:11;;;:::i;18393:162::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18393:162:11;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18393:162:11;;:::i;1085:401:50:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1085:401:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;14829:778:11:-;2576:8;;-1:-1:-1;;;;;2576:8:11;2562:10;:22;2554:63;;;;;-1:-1:-1;;;2554:63:11;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2554:63:11;;;;;;;;;;;;;;;14970:37;15010:34;;;:21;:34;;;;;15062:32;;;;;;15054:92;;;;-1:-1:-1;;;15054:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15302:133;15329:7;15302:133;;;;;;;;;;;;;;;;;:22;;;;;:133;;:26;:133;:::i;:::-;15277:22;;;:158;15450:11;;15446:155;;15477:30;;-1:-1:-1;;;;;15477:21:11;;;:30;;;;;15499:7;;15477:30;;;;15499:7;15477:21;:30;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;15546:6:11;;15526:64;;;;;;;;-1:-1:-1;;;;;15526:64:11;;;;15555:11;;15546:6;;;15526:64;;;;;;;;;15446:155;2627:1;14829:778;;;:::o;9049:944::-;9112:14;9179:34;;;:21;:34;;;;;9231:32;;;;;;9223:92;;;;-1:-1:-1;;;9223:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9330:20;;;;-1:-1:-1;;;;;9330:20:11;9362:4;9330:37;9326:268;;;9455:30;;;;9451:133;;9543:26;;9510:30;;;:59;9451:133;9612:26;;;9717:30;;9612:26;-1:-1:-1;9761:10:11;;9757:230;;9806:6;;;:14;;;-1:-1:-1;;;9806:14:11;;;;-1:-1:-1;;;;;9806:6:11;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;9806:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9806:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9806:14:11;9841:20;;;;9871:6;;;9795:84;;;-1:-1:-1;;;9795:84:11;;;;;;;;-1:-1:-1;;;;;9841:20:11;;;9795:84;;;;9871:6;;;9795:84;;;;;:37;;;;;;;:84;;;;;9806:14;;9795:84;;;;;;;9841:20;9795:37;:84;;;5:2:-1;;;;30:1;27;20:12;5:2;9795:84:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9795:84:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9795:84:11;9787:93;;;;;;9947:20;;;;9925:6;;9899:77;;;;;;;;-1:-1:-1;;;;;9947:20:11;;;;9934:11;;9925:6;;9899:77;;;;;;;;;;9757:230;9049:944;;;;:::o;17264:621::-;17354:23;;;;17475:13;17354:23;17475:16;;;;17471:95;;;17526:29;17543:11;17526:16;:29::i;:::-;17507:48;;17471:95;17580:16;;;;17576:97;;;17632:30;17650:11;17632:17;:30::i;:::-;17612:50;;17576:97;17687:16;;;;17683:85;;;17733:24;17745:11;17733;:24::i;:::-;17719:38;;17683:85;17782:16;;;;17778:101;;;17836:32;17856:11;17836:19;:32::i;:::-;17814:54;;17778:101;17264:621;;;;;;;:::o;11175:1029::-;11240:14;11306:34;;;:21;:34;;;;;11358:32;;;;;;11350:92;;;;-1:-1:-1;;;11350:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11458:20;;;;-1:-1:-1;;;;;11458:20:11;11490:4;11458:37;11454:206;;;11515:32;;;;11511:139;;11607:28;;;;11572:32;;;:63;11511:139;11674:22;;;;-1:-1:-1;;;;;11674:22:11;:35;;;;:71;;;11744:1;11713:8;:28;;;:32;11674:71;11670:528;;;11770:28;;;;;;11916:1;11885:32;;;11976:6;;:14;;;-1:-1:-1;;;11976:14:11;;;;11770:28;;-1:-1:-1;;;;;;11976:6:11;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;11976:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11976:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11976:14:11;12027:22;;;;12051:20;;;;12081:6;;;11952:136;;;-1:-1:-1;;;11952:136:11;;-1:-1:-1;;;;;12027:22:11;;;11952:136;;;;;;;12051:20;;;11952:136;;;;;;;;;;12081:6;;11952:136;;;;;;:74;;;;;;;:136;;;;;11976:14;;11952:136;;;;;;;12027:22;11952:74;:136;;;5:2:-1;;;;30:1;27;20:12;5:2;11952:136:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11952:136:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11952:136:11;11931:158;;;;;;12158:20;;;;12136:6;;12108:79;;;;;;;;-1:-1:-1;;;;;12158:20:11;;;;12145:11;;12136:6;;12108:79;;;;;;;;;;11175:1029;;;;:::o;2715:37::-;;;-1:-1:-1;;;;;2715:37:11;;:::o;5285:1823::-;5552:18;5605:9;-1:-1:-1;;;;;5628:22:11;;5624:74;;-1:-1:-1;5677:10:11;5624:74;5720:13;;;5745:10;;5775:6;;;5720:63;;;-1:-1:-1;;;5720:63:11;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5720:63:11;;;;;;;5775:6;;;5720:63;;;;;;:13;;;:21;;:63;;;;;;;;;;;;;;:13;;:63;;;5:2:-1;;;;30:1;27;20:12;5:2;5720:63:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5720:63:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5720:63:11;;-1:-1:-1;5823:12:11;-1:-1:-1;;;;;5849:25:11;;5845:80;;-1:-1:-1;5904:10:11;5845:80;-1:-1:-1;;;;;5938:28:11;;5961:4;5938:28;5934:139;;;6011:1;5990:17;:22;;5982:80;;;;-1:-1:-1;;;5982:80:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6083:36;;:::i;:::-;6122:477;;;;;;;;6176:11;;6122:477;;6176:11;6122:477;;;;;;6261:11;;;6122:477;;;;;;;-1:-1:-1;;;;;6122:477:11;;;;;;;;;6176:11;6359:1;6350:11;;;;6122:477;;;;6388:11;-1:-1:-1;;;;;6122:477:11;;;;;6436:1;6122:477;;;;6473:1;6122:477;;;;6503:1;6122:477;;;;6543:1;6122:477;;;;6583:5;6122:477;;;;;6083:516;;6645:8;6609:21;:33;6631:10;6609:33;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6609:44:11;;;;;-1:-1:-1;;;;;6609:44:11;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6609:44:11;;;;;-1:-1:-1;;;;;6609:44:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6767:13;;;;;;;;;-1:-1:-1;;;;;6767:13:11;-1:-1:-1;;;;;6669:280:11;6735:10;6714:6;;;;;;;;;-1:-1:-1;;;;;6714:6:11;-1:-1:-1;;;;;6669:280:11;;6795:16;6825:17;6856:8;6878:14;6906:11;6931:8;6669:280;;;;;;;;;;;;;;;;;;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;6669:280:11;;;;;;;-1:-1:-1;;;;;6669:280:11;-1:-1:-1;;;;;6669:280:11;;;;;;-1:-1:-1;;;;;6669:280:11;-1:-1:-1;;;;;6669:280:11;;;;;;-1:-1:-1;;;;;6669:280:11;-1:-1:-1;;;;;6669:280:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6669:280:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7012:89:11;;;;;;;;7051:12;7012:89;;7084:6;;-1:-1:-1;;;;;7084:6:11;;;7012:89;;;;;;;6982:13;;;;-1:-1:-1;6960:37:11;;;;;;;;;:49;;;;;;;;;;:141;;;;;;7084:6;6960:141;;;;;-1:-1:-1;;;;;;6960:141:11;;;;;;;;-1:-1:-1;6960:49:11;6998:10;-1:-1:-1;;;;;;5285:1823:11:o;18046:169::-;18128:7;18154:34;;;:21;:34;;;;;:54;;;18046:169;;;;:::o;10168:813::-;10225:14;10291:34;;;:21;:34;;;;;10343:32;;;;;;10335:92;;;;-1:-1:-1;;;10335:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10442:20;;;;-1:-1:-1;;;;;10442:20:11;10474:4;10442:37;10438:176;;;10499:22;;;;10495:109;;10571:18;;;;10546:22;;;:43;10495:109;10632:18;;;;;10750:1;10729:22;;;10632:18;-1:-1:-1;10765:10:11;;10761:214;;10810:6;;;:14;;;-1:-1:-1;;;10810:14:11;;;;-1:-1:-1;;;;;10810:6:11;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;10810:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10810:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10810:14:11;10844:20;;;;10866:6;;;10799:74;;;-1:-1:-1;;;10799:74:11;;;;;;;;-1:-1:-1;;;;;10844:20:11;;;10799:74;;;;10866:6;;;10799:74;;;;;:36;;;;;;;:74;;;;;10810:14;;10799:74;;;;;;;10844:20;10799:36;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;10799:74:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10799:74:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10799:74:11;10791:83;;;;;;10935:20;;;;10913:6;;10893:71;;;;;;;;-1:-1:-1;;;;;10935:20:11;;;;10922:11;;10913:6;;10893:71;;;;;;;;;;10168:813;;;;:::o;2789:20::-;;;-1:-1:-1;;;;;2789:20:11;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;1973:346::-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;-1:-1:-1;;1973:346:50;;;;;:::o;13729:853:11:-;2576:8;;-1:-1:-1;;;;;2576:8:11;2562:10;:22;2554:63;;;;;-1:-1:-1;;;2554:63:11;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2554:63:11;;;;;;;;;;;;;;;13868:37;13908:34;;;:21;:34;;;;;13960:32;;;;;;13952:92;;;;-1:-1:-1;;;13952:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14221:148;14256:7;14221:148;;;;;;;;;;;;;;;;;:30;;;;;:148;;:34;:148;:::i;:::-;14180:30;;;:189;14384:11;;14380:196;;14411:65;14454:12;14468:7;14419:6;;;;;;;;;-1:-1:-1;;;;;14419:6:11;-1:-1:-1;;;;;14419:18:11;;:20;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14419:20:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14419:20:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14419:20:11;-1:-1:-1;;;;;14411:42:11;;:65;;:42;:65;:::i;:::-;14521:6;;14495:70;;;;;;;;-1:-1:-1;;;;;14495:70:11;;;;14530:11;;14521:6;;;14495:70;;;;;;;;;2627:1;13729:853;;;:::o;18221:166::-;18297:7;18331:34;;;:21;:34;;;;;:48;;;-1:-1:-1;;;;;18331:48:11;;18221:166::o;2666:345:50:-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;4074:514:11;443:10:50;4198:4:11;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;4173:11:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;4222:34:11;;;;:21;:34;;;;;:58;;;;;:67;4214:76;;;;;;4366:1;4308:34;;;:21;:34;;;;;:46;;;-1:-1:-1;;;;;4308:46:11;4300:69;;;;;;4383:9;4396:1;4383:14;4379:110;;;4413:34;;;;4474:4;4413:34;;;;;;;;:58;;:65;;-1:-1:-1;;4413:65:11;;;;;;4379:110;4528:6;;4503:57;;;;;;;;4537:11;;-1:-1:-1;;;;;4528:6:11;;4503:57;;;;;;;;;;-1:-1:-1;4577:4:11;;4074:514;-1:-1:-1;;;4074:514:11:o;17891:149::-;17963:7;17989:34;;;:21;:34;;;;;:44;;;;17891:149::o;3282:522::-;3464:6;;-1:-1:-1;;;;;3464:6:11;:19;3456:59;;;;;-1:-1:-1;;;3456:59:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3533:20:11;;3525:54;;;;;-1:-1:-1;;;3525:54:11;;;;;;;;;;;;-1:-1:-1;;;3525:54:11;;;;;;;;;;;;;;;-1:-1:-1;;;;;3597:37:11;;3589:78;;;;;-1:-1:-1;;;3589:78:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;3677:6;:16;;-1:-1:-1;;;;;3677:16:11;;;-1:-1:-1;;;;;;3677:16:11;;;;;;;3703:13;:30;;;;;;;;;;;;;;;3743:10;:24;;;;3777:8;:20;;;;;;;;;;;3282:522::o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;2325:335;-1:-1:-1;;;2325:335:50:o;18561:165:11:-;18641:7;18667:34;;;:21;:34;;;;;:52;;18561:165::o;1492:475:50:-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;12548:918:11:-;2576:8;;-1:-1:-1;;;;;2576:8:11;2562:10;:22;2554:63;;;;;-1:-1:-1;;;2554:63:11;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2554:63:11;;;;;;;;;;;;;;;12690:37;12730:34;;;:21;:34;;;;;12782:32;;;;;;12774:92;;;;-1:-1:-1;;;12774:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13041:154;13075:11;13041:154;;;;;;;;;;;;;;;;;:29;;;;;:154;;:33;:154;:::i;:::-;13001:29;;;:194;13242:6;;;:14;;;-1:-1:-1;;;13242:14:11;;;;-1:-1:-1;;;;;13242:6:11;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;13242:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13242:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13242:14:11;13308:6;;;13222:94;;;-1:-1:-1;;;13222:94:11;;;;;;;;-1:-1:-1;;;;;13222:94:11;;;;;;;13308:6;;;13222:94;;;;;:50;;;;;:94;;;;;13242:14;;13222:94;;;;;;;;13308:6;13222:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;13222:94:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13222:94:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13222:94:11;13205:112;;;;;;13331:16;;13327:133;;13393:6;;13368:81;;;;;;;;-1:-1:-1;;;;;13368:81:11;;;;13402:11;;13393:6;;;13368:81;;;;;;;;;2627:1;12548:918;;;:::o;7295:1569::-;7357:17;7426:34;;;:21;:34;;;;;7478:32;;;;;;7470:92;;;;-1:-1:-1;;;7470:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7800:20;;;;-1:-1:-1;;;;;7800:20:11;7832:4;7800:37;7796:1062;;;7857:29;;;;7853:246;;8011:25;;;;;7971:29;;;:66;-1:-1:-1;8055:29:11;;7853:246;7796:1062;;;8142:25;;;;;8281:1;8253:29;;;;8142:25;-1:-1:-1;8301:14:11;;8297:399;;;8388:6;;;:14;;;-1:-1:-1;;;8388:14:11;;;;-1:-1:-1;;;;;8388:6:11;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;8388:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8388:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8388:14:11;8437:20;;;;8467:6;;;8360:115;;;-1:-1:-1;;;8360:115:11;;;;;;;;-1:-1:-1;;;;;8437:20:11;;;8360:115;;;;8467:6;;;8360:115;;;;;:58;;;;;;;:115;;;;;8388:14;;8360:115;;;;;;;8437:20;8360:58;:115;;;5:2:-1;;;;30:1;27;20:12;5:2;8360:115:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8360:115:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8360:115:11;8335:141;;;;;;8297:399;;;8514:1;8501:10;:14;8497:199;;;8588:6;;;:14;;;-1:-1:-1;;;8588:14:11;;;;-1:-1:-1;;;;;8588:6:11;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;8588:14:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8588:14:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8588:14:11;8642:20;;;;8672:6;;;8560:120;;;-1:-1:-1;;;8560:120:11;;8624:15;;;;8560:120;;;;;;;-1:-1:-1;;;;;8642:20:11;;;8560:120;;;;8672:6;;;8560:120;;;;;:58;;;;;;;:120;;;;;8588:14;;8560:120;;;;;;;;;:58;:120;;;5:2:-1;;;;30:1;27;20:12;5:2;8560:120:11;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8560:120:11;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8560:120:11;8535:146;;;;;;8713:15;;8709:139;;8800:20;;;;8778:6;;8753:80;;;;;;;;-1:-1:-1;;;;;8800:20:11;;;;8787:11;;8778:6;;8753:80;;;;;;;;;;7295:1569;;;;:::o;18732:174::-;18818:4;18841:34;;;:21;:34;;;;;:58;;;;;;18732:174::o;678:401:50:-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;2641:67:11:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2641:67:11;;;;;;;;;;;;;;;;;;;:::o;2815:23::-;;;-1:-1:-1;;;;;2815:23:11;;:::o;15895:941::-;2576:8;;-1:-1:-1;;;;;2576:8:11;2562:10;:22;2554:63;;;;;-1:-1:-1;;;2554:63:11;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;2554:63:11;;;;;;;;;;;;;;;16032:37;16072:34;;;:21;:34;;;;;16124:32;;;;;;16116:92;;;;-1:-1:-1;;;16116:92:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16390:152;16427:7;16390:152;;;;;;;;;;;;;;;;;:32;;;;;:152;;:36;:152;:::i;:::-;16347:32;;;:195;16557:22;;;;-1:-1:-1;;;;;16557:22:11;:35;16553:277;;16612:11;;16608:212;;16651:22;;;;16643:67;;-1:-1:-1;;;;;16651:22:11;16688:12;16702:7;16643:67;:44;:67;:::i;:::-;16761:6;;16733:72;;;;;;;;-1:-1:-1;;;;;16733:72:11;;;;16770:11;;16761:6;;;16733:72;;;;;;;;;2627:1;15895:941;;;:::o;2758:25::-;;;;:::o;18393:162::-;18472:6;18497:34;;;:21;:34;;;;;;;;:51;;;18393:162::o;1085:401:50:-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;1732:187:66;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;993:567:6:-;1134:23;:10;-1:-1:-1;;;;;1134:21:6;;:23::i;:::-;1126:32;;;;;;730:34;;;;;;;;;;;;;;;;;1295:54;;-1:-1:-1;;;;;1295:54:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1295:54:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1279:71:6;;;;1170:12;;1184:24;;1279:15;;;1295:54;1279:71;;;25:18:-1;1279:71:6;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1279:71:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1169:181:6;;;;1418:7;1410:16;;;;;;1473:18;;:23;;:79;;;1501:11;:18;1523:2;1501:24;:50;;;;;1530:11;1542:2;1530:15;;;;;;;;;;;;-1:-1:-1;;;;;;1530:15:6;:20;;1501:50;1465:88;;;;;;993:567;;;;;:::o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o;720:18189:11:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;720:18189:11;;;;;;;;;;;-1:-1:-1;;;;;720:18189:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;720:18189:11;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\nimport \"../libs/SafeERC20.sol\";\n\n\n/**\n * @title A scheme for proposing and rewarding contributions to an organization\n * @dev An agent can ask an organization to recognize a contribution and reward\n * him with token, reputation, ether or any combination.\n * This scheme extend the functionality of the ContributionReward scheme.\n * It enable to assign a rewarder, which, after the contributionreward has been accepted,\n * can then later distribute the assets as it would like.\n */\ncontract ContributionRewardExt is VotingMachineCallbacks, ProposalExecuteInterface {\n using SafeMath for uint;\n using SafeERC20 for address;\n\n event NewContributionProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n string _descriptionHash,\n int256 _reputationChange,\n uint[3] _rewards,\n IERC20 _externalToken,\n address _beneficiary,\n address _proposer\n );\n\n event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param);\n\n event RedeemReputation(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n int256 _amount);\n\n event RedeemEther(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n uint256 _amount);\n\n event RedeemNativeToken(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n uint256 _amount);\n\n event RedeemExternalToken(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _beneficiary,\n uint256 _amount);\n\n // A struct holding the data for a contribution proposal\n struct ContributionProposal {\n uint256 nativeTokenReward; // Reward asked in the native token of the organization.\n int256 reputationChange; // Organization reputation reward requested.\n uint256 ethReward;\n IERC20 externalToken;\n uint256 externalTokenReward;\n address payable beneficiary;\n uint256 nativeTokenRewardLeft;\n uint256 reputationChangeLeft;\n uint256 ethRewardLeft;\n uint256 externalTokenRewardLeft;\n bool acceptedByVotingMachine;\n }\n\n modifier onlyRewarder() {\n require(msg.sender == rewarder, \"msg.sender is not authorized\");\n _;\n }\n\n mapping(bytes32=>ContributionProposal) public organizationProposals;\n\n IntVoteInterface public votingMachine;\n bytes32 public voteParams;\n Avatar public avatar;\n address public rewarder;\n\n /**\n * @dev enables this contract to receive ethers\n */\n function() external payable {\n }\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _votingMachine the voting machines address\n * @param _voteParams voting machine parameters\n * @param _rewarder an address which allowed to redeem the contribution.\n if _rewarder is 0 this param is agnored.\n */\n function initialize(\n Avatar _avatar,\n IntVoteInterface _votingMachine,\n bytes32 _voteParams,\n address _rewarder\n )\n external\n {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n require(_votingMachine != IntVoteInterface(0), \"votingMachine cannot be zero\");\n avatar = _avatar;\n votingMachine = _votingMachine;\n voteParams = _voteParams;\n rewarder = _rewarder;\n }\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the proposal in the voting machine\n * @param _decision a parameter of the voting result, 1 yes and 2 is no.\n */\n function executeProposal(bytes32 _proposalId, int256 _decision)\n external\n onlyVotingMachine(_proposalId)\n returns(bool) {\n require(organizationProposals[_proposalId].acceptedByVotingMachine == false);\n require(organizationProposals[_proposalId].beneficiary != address(0));\n if (_decision == 1) {\n organizationProposals[_proposalId].acceptedByVotingMachine = true;\n }\n emit ProposalExecuted(address(avatar), _proposalId, _decision);\n return true;\n }\n\n /**\n * @dev Submit a proposal for a reward for a contribution:\n * @param _descriptionHash A hash of the proposal's description\n * @param _reputationChange - Amount of reputation change requested .Can be negative.\n * @param _rewards rewards array:\n * rewards[0] - Amount of tokens requested\n * rewards[1] - Amount of ETH requested\n * rewards[2] - Amount of external tokens\n * @param _externalToken Address of external token, if reward is requested there\n * @param _beneficiary Who gets the rewards. if equal to 0 the beneficiary will be msg.sender.\n * @param _proposer proposer . if equal to 0 the proposer will be msg.sender.\n */\n function proposeContributionReward(\n string memory _descriptionHash,\n int256 _reputationChange,\n uint[3] memory _rewards,\n IERC20 _externalToken,\n address payable _beneficiary,\n address _proposer\n )\n public\n returns(bytes32 proposalId)\n {\n address proposer = _proposer;\n if (proposer == address(0)) {\n proposer = msg.sender;\n }\n proposalId = votingMachine.propose(2, voteParams, proposer, address(avatar));\n address payable beneficiary = _beneficiary;\n if (beneficiary == address(0)) {\n beneficiary = msg.sender;\n }\n if (beneficiary == address(this)) {\n require(_reputationChange >= 0, \"negative rep change not allowed for this case\");\n }\n\n ContributionProposal memory proposal = ContributionProposal({\n nativeTokenReward: _rewards[0],\n reputationChange: _reputationChange,\n ethReward: _rewards[1],\n externalToken: _externalToken,\n externalTokenReward: _rewards[2],\n beneficiary: beneficiary,\n nativeTokenRewardLeft: 0,\n reputationChangeLeft: 0,\n ethRewardLeft: 0,\n externalTokenRewardLeft: 0,\n acceptedByVotingMachine: false\n });\n organizationProposals[proposalId] = proposal;\n\n emit NewContributionProposal(\n address(avatar),\n proposalId,\n address(votingMachine),\n _descriptionHash,\n _reputationChange,\n _rewards,\n _externalToken,\n beneficiary,\n proposer\n );\n\n proposalsInfo[address(votingMachine)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:avatar\n });\n }\n\n /**\n * @dev RedeemReputation reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @return reputation the redeemed reputation.\n */\n function redeemReputation(bytes32 _proposalId) public returns(int256 reputation) {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n\n //if the beneficiary is the current contract, we are not minting the rep to it\n //but instead refer to a mechanism in which the rep can be minted by the current contract\n //per request of the rewarder\n if (proposal.beneficiary == address(this)) {\n if (proposal.reputationChangeLeft == 0) {//for now only mint(not burn) rep allowed from ext contract.\n proposal.reputationChangeLeft = uint256(proposal.reputationChange);\n proposal.reputationChange = 0;\n }\n } else {\n reputation = proposal.reputationChange;\n //set proposal reward to zero to prevent reentrancy attack.\n proposal.reputationChange = 0;\n\n if (reputation > 0) {\n require(\n Controller(\n avatar.owner()).mintReputation(uint(reputation), proposal.beneficiary, address(avatar)));\n } else if (reputation < 0) {\n require(\n Controller(\n avatar.owner()).burnReputation(uint(reputation*(-1)), proposal.beneficiary, address(avatar)));\n }\n if (reputation != 0) {\n emit RedeemReputation(address(avatar), _proposalId, proposal.beneficiary, reputation);\n }\n }\n }\n\n /**\n * @dev RedeemNativeToken reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @return amount the redeemed nativeToken.\n */\n function redeemNativeToken(bytes32 _proposalId) public returns(uint256 amount) {\n\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n\n if (proposal.beneficiary == address(this)) {\n //ensure nativeTokenRewardLeft can be set only one time\n if (proposal.nativeTokenRewardLeft == 0) {\n proposal.nativeTokenRewardLeft = proposal.nativeTokenReward;\n }\n }\n amount = proposal.nativeTokenReward;\n //set proposal rewards to zero to prevent reentrancy attack.\n proposal.nativeTokenReward = 0;\n if (amount > 0) {\n require(Controller(avatar.owner()).mintTokens(amount, proposal.beneficiary, address(avatar)));\n emit RedeemNativeToken(address(avatar), _proposalId, proposal.beneficiary, amount);\n }\n }\n\n /**\n * @dev RedeemEther reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @return amount ether redeemed amount\n */\n function redeemEther(bytes32 _proposalId) public returns(uint256 amount) {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n\n if (proposal.beneficiary == address(this)) {\n if (proposal.ethRewardLeft == 0) {\n proposal.ethRewardLeft = proposal.ethReward;\n }\n }\n amount = proposal.ethReward;\n //set proposal rewards to zero to prevent reentrancy attack.\n proposal.ethReward = 0;\n if (amount > 0) {\n require(Controller(avatar.owner()).sendEther(amount, proposal.beneficiary, avatar));\n emit RedeemEther(address(avatar), _proposalId, proposal.beneficiary, amount);\n }\n }\n\n /**\n * @dev RedeemNativeToken reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @return amount the external token redeemed amount\n */\n function redeemExternalToken(bytes32 _proposalId) public returns(uint256 amount) {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n\n\n if (proposal.beneficiary == address(this)) {\n if (proposal.externalTokenRewardLeft == 0) {\n proposal.externalTokenRewardLeft = proposal.externalTokenReward;\n }\n }\n\n if (proposal.externalToken != IERC20(0) && proposal.externalTokenReward > 0) {\n amount = proposal.externalTokenReward;\n //set proposal rewards to zero to prevent reentrancy attack.\n proposal.externalTokenReward = 0;\n require(\n Controller(\n avatar.owner())\n .externalTokenTransfer(proposal.externalToken, proposal.beneficiary, amount, avatar));\n emit RedeemExternalToken(address(avatar), _proposalId, proposal.beneficiary, amount);\n }\n }\n\n /**\n * @dev redeemReputationByRewarder redeem reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _beneficiary the beneficiary to mint reputation to.\n * @param _reputation the reputation amount to mint\n * note: burn reputation is not supported via this function\n */\n function redeemReputationByRewarder(bytes32 _proposalId, address _beneficiary, uint256 _reputation)\n public\n onlyRewarder\n {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n //this will ensure sum zero of reputation\n //and that there was a privious call to redeemReputation function.\n proposal.reputationChangeLeft =\n proposal.reputationChangeLeft.sub(_reputation,\n \"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called\");\n require(\n Controller(\n avatar.owner()).mintReputation(_reputation, _beneficiary, address(avatar)));\n if (_reputation != 0) {\n emit RedeemReputation(address(avatar), _proposalId, _beneficiary, int256(_reputation));\n }\n }\n\n /**\n * @dev redeemNativeTokenByRewarder redeem reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _beneficiary the beneficiary to mint tokens to.\n * @param _amount the tokens amount to mint\n */\n function redeemNativeTokenByRewarder(bytes32 _proposalId, address _beneficiary, uint256 _amount)\n public\n onlyRewarder\n {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n //this will ensure sum zero of reputation\n //and that there was a privious call to redeemNativeToken function.\n proposal.nativeTokenRewardLeft =\n proposal.nativeTokenRewardLeft.sub(_amount,\n \"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called\");\n\n if (_amount > 0) {\n address(avatar.nativeToken()).safeTransfer(_beneficiary, _amount);\n emit RedeemNativeToken(address(avatar), _proposalId, _beneficiary, _amount);\n }\n }\n\n /**\n * @dev redeemEtherByRewarder redeem reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _beneficiary the beneficiary to send eth to.\n * @param _amount eth amount to send\n */\n function redeemEtherByRewarder(bytes32 _proposalId, address payable _beneficiary, uint256 _amount)\n public\n onlyRewarder\n {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n //this will ensure sum zero of reputation.\n //and that there was a privious call to redeemEther function.\n proposal.ethRewardLeft = proposal.ethRewardLeft.sub(_amount,\n \"cannot redeem more Ether than allocated for this proposal or no redeemEther was called\");\n\n if (_amount > 0) {\n _beneficiary.transfer(_amount);\n emit RedeemEther(address(avatar), _proposalId, _beneficiary, _amount);\n }\n }\n\n /**\n * @dev redeemExternalTokenByRewarder redeem reward for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _beneficiary the beneficiary to send the external token to.\n * @param _amount the amount of external token to send\n */\n function redeemExternalTokenByRewarder(bytes32 _proposalId, address _beneficiary, uint256 _amount)\n public\n onlyRewarder {\n ContributionProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.acceptedByVotingMachine, \"proposal was not accepted by the voting machine\");\n //this will ensure sum zero of reputation.\n //and that there was a privious call to redeemExternalToken function.\n proposal.externalTokenRewardLeft =\n proposal.externalTokenRewardLeft.sub(_amount,\n \"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called\");\n\n if (proposal.externalToken != IERC20(0)) {\n if (_amount > 0) {\n address(proposal.externalToken).safeTransfer(_beneficiary, _amount);\n emit RedeemExternalToken(address(avatar), _proposalId, _beneficiary, _amount);\n }\n }\n }\n\n /**\n * @dev redeem rewards for proposal\n * @param _proposalId the ID of the voting in the voting machine\n * @param _whatToRedeem whatToRedeem array of boolean values:\n * whatToRedeem[0] - reputation\n * whatToRedeem[1] - nativeTokenReward\n * whatToRedeem[2] - Ether\n * whatToRedeem[3] - ExternalToken\n * @return result boolean array for each redeem type.\n */\n function redeem(bytes32 _proposalId, bool[4] memory _whatToRedeem)\n public\n returns(int256 reputationReward, uint256 nativeTokenReward, uint256 etherReward, uint256 externalTokenReward)\n {\n\n if (_whatToRedeem[0]) {\n reputationReward = redeemReputation(_proposalId);\n }\n\n if (_whatToRedeem[1]) {\n nativeTokenReward = redeemNativeToken(_proposalId);\n }\n\n if (_whatToRedeem[2]) {\n etherReward = redeemEther(_proposalId);\n }\n\n if (_whatToRedeem[3]) {\n externalTokenReward = redeemExternalToken(_proposalId);\n }\n }\n\n function getProposalEthReward(bytes32 _proposalId) public view returns (uint256) {\n return organizationProposals[_proposalId].ethReward;\n }\n\n function getProposalExternalTokenReward(bytes32 _proposalId) public view returns (uint256) {\n return organizationProposals[_proposalId].externalTokenReward;\n }\n\n function getProposalExternalToken(bytes32 _proposalId) public view returns (address) {\n return address(organizationProposals[_proposalId].externalToken);\n }\n\n function getProposalReputationReward(bytes32 _proposalId) public view returns (int256) {\n return organizationProposals[_proposalId].reputationChange;\n }\n\n function getProposalNativeTokenReward(bytes32 _proposalId) public view returns (uint256) {\n return organizationProposals[_proposalId].nativeTokenReward;\n }\n\n function getProposalAcceptedByVotingMachine(bytes32 _proposalId) public view returns (bool) {\n return organizationProposals[_proposalId].acceptedByVotingMachine;\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","exportedSymbols":{"ContributionRewardExt":[6293]},"id":6294,"nodeType":"SourceUnit","nodes":[{"id":5142,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:11"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":5143,"nodeType":"ImportDirective","scope":6294,"sourceUnit":19817,"src":"25:71:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":5144,"nodeType":"ImportDirective","scope":6294,"sourceUnit":20032,"src":"97:86:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":5145,"nodeType":"ImportDirective","scope":6294,"sourceUnit":14651,"src":"184:54:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":5146,"nodeType":"ImportDirective","scope":6294,"sourceUnit":2258,"src":"239:31:11","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":5147,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"754:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":5148,"nodeType":"InheritanceSpecifier","src":"754:22:11"},{"arguments":null,"baseName":{"contractScope":null,"id":5149,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"778:24:11","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":5150,"nodeType":"InheritanceSpecifier","src":"778:24:11"}],"contractDependencies":[14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme for proposing and rewarding contributions to an organization\n@dev An agent can ask an organization to recognize a contribution and reward\nhim with token, reputation, ether or any combination.\nThis scheme extend the functionality of the ContributionReward scheme.\nIt enable to assign a rewarder, which, after the contributionreward has been accepted,\ncan then later distribute the assets as it would like.","fullyImplemented":true,"id":6293,"linearizedBaseContracts":[6293,19828,14650,20031],"name":"ContributionRewardExt","nodeType":"ContractDefinition","nodes":[{"id":5153,"libraryName":{"contractScope":null,"id":5151,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"815:8:11","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"809:24:11","typeName":{"id":5152,"name":"uint","nodeType":"ElementaryTypeName","src":"828:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":5156,"libraryName":{"contractScope":null,"id":5154,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"844:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"838:28:11","typeName":{"id":5155,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"anonymous":false,"documentation":null,"id":5178,"name":"NewContributionProposal","nodeType":"EventDefinition","parameters":{"id":5177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5158,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5178,"src":"911:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5157,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5160,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5178,"src":"944:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5162,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":5178,"src":"981:33:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5161,"name":"address","nodeType":"ElementaryTypeName","src":"981:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5164,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":5178,"src":"1024:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5163,"name":"string","nodeType":"ElementaryTypeName","src":"1024:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":5166,"indexed":false,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":5178,"src":"1057:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5165,"name":"int256","nodeType":"ElementaryTypeName","src":"1057:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5170,"indexed":false,"name":"_rewards","nodeType":"VariableDeclaration","scope":5178,"src":"1091:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":5167,"name":"uint","nodeType":"ElementaryTypeName","src":"1091:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5169,"length":{"argumentTypes":null,"hexValue":"33","id":5168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1096:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"1091:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5172,"indexed":false,"name":"_externalToken","nodeType":"VariableDeclaration","scope":5178,"src":"1118:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5171,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1118:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":5174,"indexed":false,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5178,"src":"1149:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5173,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5176,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":5178,"src":"1179:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5175,"name":"address","nodeType":"ElementaryTypeName","src":"1179:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"901:301:11"},"src":"872:331:11"},{"anonymous":false,"documentation":null,"id":5186,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":5185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5180,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5186,"src":"1232:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5179,"name":"address","nodeType":"ElementaryTypeName","src":"1232:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5182,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5186,"src":"1257:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1257:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5184,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":5186,"src":"1286:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5183,"name":"int256","nodeType":"ElementaryTypeName","src":"1286:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1231:69:11"},"src":"1209:92:11"},{"anonymous":false,"documentation":null,"id":5196,"name":"RedeemReputation","nodeType":"EventDefinition","parameters":{"id":5195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5188,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5196,"src":"1339:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5187,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5190,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5196,"src":"1372:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1372:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5192,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5196,"src":"1409:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5191,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5194,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5196,"src":"1447:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5193,"name":"int256","nodeType":"ElementaryTypeName","src":"1447:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1329:133:11"},"src":"1307:156:11"},{"anonymous":false,"documentation":null,"id":5206,"name":"RedeemEther","nodeType":"EventDefinition","parameters":{"id":5205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5198,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5206,"src":"1487:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5197,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5200,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5206,"src":"1520:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5202,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5206,"src":"1557:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5201,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5204,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5206,"src":"1595:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1486:125:11"},"src":"1469:143:11"},{"anonymous":false,"documentation":null,"id":5216,"name":"RedeemNativeToken","nodeType":"EventDefinition","parameters":{"id":5215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5208,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5216,"src":"1642:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5207,"name":"address","nodeType":"ElementaryTypeName","src":"1642:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5210,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5216,"src":"1675:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1675:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5212,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5216,"src":"1712:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5211,"name":"address","nodeType":"ElementaryTypeName","src":"1712:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5214,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5216,"src":"1750:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1641:125:11"},"src":"1618:149:11"},{"anonymous":false,"documentation":null,"id":5226,"name":"RedeemExternalToken","nodeType":"EventDefinition","parameters":{"id":5225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5218,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5226,"src":"1799:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"1799:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5220,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5226,"src":"1832:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1832:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5222,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5226,"src":"1869:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5221,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5224,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5226,"src":"1907:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5223,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1798:125:11"},"src":"1773:151:11"},{"canonicalName":"ContributionRewardExt.ContributionProposal","id":5249,"members":[{"constant":false,"id":5228,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":5249,"src":"2029:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5227,"name":"uint256","nodeType":"ElementaryTypeName","src":"2029:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5230,"name":"reputationChange","nodeType":"VariableDeclaration","scope":5249,"src":"2121:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5229,"name":"int256","nodeType":"ElementaryTypeName","src":"2121:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5232,"name":"ethReward","nodeType":"VariableDeclaration","scope":5249,"src":"2199:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5231,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5234,"name":"externalToken","nodeType":"VariableDeclaration","scope":5249,"src":"2226:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5233,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2226:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":5236,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":5249,"src":"2256:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5235,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5238,"name":"beneficiary","nodeType":"VariableDeclaration","scope":5249,"src":"2293:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5237,"name":"address","nodeType":"ElementaryTypeName","src":"2293:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":5240,"name":"nativeTokenRewardLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2330:29:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5242,"name":"reputationChangeLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2369:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5241,"name":"uint256","nodeType":"ElementaryTypeName","src":"2369:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5244,"name":"ethRewardLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2407:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5243,"name":"uint256","nodeType":"ElementaryTypeName","src":"2407:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5246,"name":"externalTokenRewardLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2438:31:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5245,"name":"uint256","nodeType":"ElementaryTypeName","src":"2438:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5248,"name":"acceptedByVotingMachine","nodeType":"VariableDeclaration","scope":5249,"src":"2479:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5247,"name":"bool","nodeType":"ElementaryTypeName","src":"2479:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"ContributionProposal","nodeType":"StructDefinition","scope":6293,"src":"1991:523:11","visibility":"public"},{"body":{"id":5260,"nodeType":"Block","src":"2544:91:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5252,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2562:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2562:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":5254,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"2576:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2562:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d73672e73656e646572206973206e6f7420617574686f72697a6564","id":5256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2586:30:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f6dcc7b63d6de53a5ee3aa72fd4997e522a192c98a89ed5e1bd6cba4288df52f","typeString":"literal_string \"msg.sender is not authorized\""},"value":"msg.sender is not authorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6dcc7b63d6de53a5ee3aa72fd4997e522a192c98a89ed5e1bd6cba4288df52f","typeString":"literal_string \"msg.sender is not authorized\""}],"id":5251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2554:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2554:63:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5258,"nodeType":"ExpressionStatement","src":"2554:63:11"},{"id":5259,"nodeType":"PlaceholderStatement","src":"2627:1:11"}]},"documentation":null,"id":5261,"name":"onlyRewarder","nodeType":"ModifierDefinition","parameters":{"id":5250,"nodeType":"ParameterList","parameters":[],"src":"2541:2:11"},"src":"2520:115:11","visibility":"internal"},{"constant":false,"id":5265,"name":"organizationProposals","nodeType":"VariableDeclaration","scope":6293,"src":"2641:67:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal)"},"typeName":{"id":5264,"keyType":{"id":5262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2649:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2641:38:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal)"},"valueType":{"contractScope":null,"id":5263,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"2658:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":5267,"name":"votingMachine","nodeType":"VariableDeclaration","scope":6293,"src":"2715:37:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":5266,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"2715:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":5269,"name":"voteParams","nodeType":"VariableDeclaration","scope":6293,"src":"2758:25:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2758:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":false,"id":5271,"name":"avatar","nodeType":"VariableDeclaration","scope":6293,"src":"2789:20:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":5270,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2789:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":5273,"name":"rewarder","nodeType":"VariableDeclaration","scope":6293,"src":"2815:23:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5272,"name":"address","nodeType":"ElementaryTypeName","src":"2815:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":5276,"nodeType":"Block","src":"2939:7:11","statements":[]},"documentation":"@dev enables this contract to receive ethers","id":5277,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":5274,"nodeType":"ParameterList","parameters":[],"src":"2919:2:11"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[],"src":"2939:0:11"},"scope":6293,"src":"2911:35:11","stateMutability":"payable","superFunction":null,"visibility":"external"},{"body":{"id":5331,"nodeType":"Block","src":"3446:358:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":5293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5289,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"3464:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3481:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5290,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3474:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3474:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3464:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":5294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3485:29:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":5288,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3456:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3456:59:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5296,"nodeType":"ExpressionStatement","src":"3456:59:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":5302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5298,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5279,"src":"3533:7:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5299,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3544:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":5301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3544:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3533:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":5303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3555:23:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":5297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3525:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3525:54:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5305,"nodeType":"ExpressionStatement","src":"3525:54:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"id":5311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5307,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"3597:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3632:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5308,"name":"IntVoteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19816,"src":"3615:16:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IntVoteInterface_$19816_$","typeString":"type(contract IntVoteInterface)"}},"id":5310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3615:19:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3597:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e674d616368696e652063616e6e6f74206265207a65726f","id":5312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3636:30:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8d7532a3ed862b1c2332f71ed766f76acef0759af6f9f0618464201389bb6525","typeString":"literal_string \"votingMachine cannot be zero\""},"value":"votingMachine cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d7532a3ed862b1c2332f71ed766f76acef0759af6f9f0618464201389bb6525","typeString":"literal_string \"votingMachine cannot be zero\""}],"id":5306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3589:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3589:78:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5314,"nodeType":"ExpressionStatement","src":"3589:78:11"},{"expression":{"argumentTypes":null,"id":5317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5315,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"3677:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5316,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5279,"src":"3686:7:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3677:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5318,"nodeType":"ExpressionStatement","src":"3677:16:11"},{"expression":{"argumentTypes":null,"id":5321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5319,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"3703:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5320,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"3719:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3703:30:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":5322,"nodeType":"ExpressionStatement","src":"3703:30:11"},{"expression":{"argumentTypes":null,"id":5325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5323,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3743:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5324,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5283,"src":"3756:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3743:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5326,"nodeType":"ExpressionStatement","src":"3743:24:11"},{"expression":{"argumentTypes":null,"id":5329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5327,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"3777:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5328,"name":"_rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5285,"src":"3788:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3777:20:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5330,"nodeType":"ExpressionStatement","src":"3777:20:11"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _votingMachine the voting machines address\n@param _voteParams voting machine parameters\n@param _rewarder an address which allowed to redeem the contribution.\nif _rewarder is 0 this param is agnored.","id":5332,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":5286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5279,"name":"_avatar","nodeType":"VariableDeclaration","scope":5332,"src":"3311:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":5278,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3311:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":5281,"name":"_votingMachine","nodeType":"VariableDeclaration","scope":5332,"src":"3335:31:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":5280,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3335:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":5283,"name":"_voteParams","nodeType":"VariableDeclaration","scope":5332,"src":"3376:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3376:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5285,"name":"_rewarder","nodeType":"VariableDeclaration","scope":5332,"src":"3405:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5284,"name":"address","nodeType":"ElementaryTypeName","src":"3405:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3301:127:11"},"returnParameters":{"id":5287,"nodeType":"ParameterList","parameters":[],"src":"3446:0:11"},"scope":6293,"src":"3282:522:11","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":5386,"nodeType":"Block","src":"4204:384:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5345,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"4222:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5347,"indexExpression":{"argumentTypes":null,"id":5346,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4244:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4222:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"4222:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":5349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4284:5:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4222:67:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4214:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:76:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5352,"nodeType":"ExpressionStatement","src":"4214:76:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5354,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"4308:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5356,"indexExpression":{"argumentTypes":null,"id":5355,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4330:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4308:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"4308:46:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4366:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4358:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4358:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4308:60:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4300:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4300:69:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5363,"nodeType":"ExpressionStatement","src":"4300:69:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5364,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"4383:9:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":5365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4396:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4383:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5375,"nodeType":"IfStatement","src":"4379:110:11","trueBody":{"id":5374,"nodeType":"Block","src":"4399:90:11","statements":[{"expression":{"argumentTypes":null,"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5367,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"4413:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5369,"indexExpression":{"argumentTypes":null,"id":5368,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4435:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4413:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"4413:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":5371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4474:4:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4413:65:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5373,"nodeType":"ExpressionStatement","src":"4413:65:11"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5378,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"4528:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4520:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4520:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5380,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4537:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":5381,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"4550:9:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5376,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5186,"src":"4503:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":5382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4503:57:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5383,"nodeType":"EmitStatement","src":"4498:62:11"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":5384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4577:4:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5343,"id":5385,"nodeType":"Return","src":"4570:11:11"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the proposal in the voting machine\n@param _decision a parameter of the voting result, 1 yes and 2 is no.","id":5387,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":5339,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4173:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":5340,"modifierName":{"argumentTypes":null,"id":5338,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"4155:17:11","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4155:30:11"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":5337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5334,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5387,"src":"4099:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4099:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5336,"name":"_decision","nodeType":"VariableDeclaration","scope":5387,"src":"4120:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5335,"name":"int256","nodeType":"ElementaryTypeName","src":"4120:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"4098:39:11"},"returnParameters":{"id":5343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5342,"name":"","nodeType":"VariableDeclaration","scope":5387,"src":"4198:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5341,"name":"bool","nodeType":"ElementaryTypeName","src":"4198:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4197:6:11"},"scope":6293,"src":"4074:514:11","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":5522,"nodeType":"Block","src":"5576:1532:11","statements":[{"assignments":[5407],"declarations":[{"constant":false,"id":5407,"name":"proposer","nodeType":"VariableDeclaration","scope":5522,"src":"5586:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5406,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":5409,"initialValue":{"argumentTypes":null,"id":5408,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"5605:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5586:28:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5410,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"5628:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5648:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5640:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5640:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5628:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5421,"nodeType":"IfStatement","src":"5624:74:11","trueBody":{"id":5420,"nodeType":"Block","src":"5652:46:11","statements":[{"expression":{"argumentTypes":null,"id":5418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5415,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"5666:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5677:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5677:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5666:21:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5419,"nodeType":"ExpressionStatement","src":"5666:21:11"}]}},{"expression":{"argumentTypes":null,"id":5432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5422,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"5707:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":5425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5742:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"id":5426,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5745:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":5427,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"5757:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5429,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"5775:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5767:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5767:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":5423,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"5720:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"5720:21:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":5431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5720:63:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5707:76:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5433,"nodeType":"ExpressionStatement","src":"5707:76:11"},{"assignments":[5435],"declarations":[{"constant":false,"id":5435,"name":"beneficiary","nodeType":"VariableDeclaration","scope":5522,"src":"5793:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5434,"name":"address","nodeType":"ElementaryTypeName","src":"5793:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":5437,"initialValue":{"argumentTypes":null,"id":5436,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5399,"src":"5823:12:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"5793:42:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5438,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"5849:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5872:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5864:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5864:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5849:25:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5449,"nodeType":"IfStatement","src":"5845:80:11","trueBody":{"id":5448,"nodeType":"Block","src":"5876:49:11","statements":[{"expression":{"argumentTypes":null,"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5443,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"5890:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5904:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5904:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5890:24:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":5447,"nodeType":"ExpressionStatement","src":"5890:24:11"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5450,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"5938:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5452,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"5961:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5953:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5953:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5938:28:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5463,"nodeType":"IfStatement","src":"5934:139:11","trueBody":{"id":5462,"nodeType":"Block","src":"5968:105:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5456,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"5990:17:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6011:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5990:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6567617469766520726570206368616e6765206e6f7420616c6c6f77656420666f7220746869732063617365","id":5459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6014:47:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cfbe5866a8e9ed607d9fdc2bdd037fb2aef34ed0c611e3ea1c91d9f3e2944dd6","typeString":"literal_string \"negative rep change not allowed for this case\""},"value":"negative rep change not allowed for this case"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfbe5866a8e9ed607d9fdc2bdd037fb2aef34ed0c611e3ea1c91d9f3e2944dd6","typeString":"literal_string \"negative rep change not allowed for this case\""}],"id":5455,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5982:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5982:80:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5461,"nodeType":"ExpressionStatement","src":"5982:80:11"}]}},{"assignments":[5465],"declarations":[{"constant":false,"id":5465,"name":"proposal","nodeType":"VariableDeclaration","scope":5522,"src":"6083:36:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_memory_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5464,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"6083:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5485,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5467,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6176:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":5469,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":5468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6185:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6176:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5470,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"6219:17:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5471,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6261:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":5473,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":5472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6261:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5474,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"6301:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5475,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6350:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":5477,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":5476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6359:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6350:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5478,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"6388:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6436:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":5480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6473:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":5481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6503:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6543:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":5483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6583:5:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5466,"name":"ContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5249,"src":"6122:20:11","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ContributionProposal_$5249_storage_ptr_$","typeString":"type(struct ContributionRewardExt.ContributionProposal storage pointer)"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nativeTokenReward","reputationChange","ethReward","externalToken","externalTokenReward","beneficiary","nativeTokenRewardLeft","reputationChangeLeft","ethRewardLeft","externalTokenRewardLeft","acceptedByVotingMachine"],"nodeType":"FunctionCall","src":"6122:477:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_memory","typeString":"struct ContributionRewardExt.ContributionProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6083:516:11"},{"expression":{"argumentTypes":null,"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5486,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"6609:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5488,"indexExpression":{"argumentTypes":null,"id":5487,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6631:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6609:33:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5465,"src":"6645:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_memory_ptr","typeString":"struct ContributionRewardExt.ContributionProposal memory"}},"src":"6609:44:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5491,"nodeType":"ExpressionStatement","src":"6609:44:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5494,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"6714:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6706:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6706:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5496,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6735:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5498,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"6767:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":5497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6759:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6759:22:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5500,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"6795:16:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":5501,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"6825:17:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":5502,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6856:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},{"argumentTypes":null,"id":5503,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"6878:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":5504,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"6906:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5505,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"6931:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5492,"name":"NewContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"6669:23:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_string_memory_ptr_$_t_int256_$_t_array$_t_uint256_$3_memory_ptr_$_t_contract$_IERC20_$21017_$_t_address_$_t_address_$returns$__$","typeString":"function (address,bytes32,address,string memory,int256,uint256[3] memory,contract IERC20,address,address)"}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6669:280:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5507,"nodeType":"EmitStatement","src":"6664:285:11"},{"expression":{"argumentTypes":null,"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5508,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6960:13:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":5513,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5510,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"6982:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":5509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6974:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6974:22:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6960:37:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":5514,"indexExpression":{"argumentTypes":null,"id":5512,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6998:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6960:49:11","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5516,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7051:5:11","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7051:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5518,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"7084:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5515,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"7012:12:11","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"7012:89:11","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6960:141:11","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":5521,"nodeType":"ExpressionStatement","src":"6960:141:11"}]},"documentation":"@dev Submit a proposal for a reward for a contribution:\n@param _descriptionHash A hash of the proposal's description\n@param _reputationChange - Amount of reputation change requested .Can be negative.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested\n rewards[1] - Amount of ETH requested\n rewards[2] - Amount of external tokens\n@param _externalToken Address of external token, if reward is requested there\n@param _beneficiary Who gets the rewards. if equal to 0 the beneficiary will be msg.sender.\n@param _proposer proposer . if equal to 0 the proposer will be msg.sender.","id":5523,"implemented":true,"kind":"function","modifiers":[],"name":"proposeContributionReward","nodeType":"FunctionDefinition","parameters":{"id":5402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":5523,"src":"5329:30:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5388,"name":"string","nodeType":"ElementaryTypeName","src":"5329:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":5391,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":5523,"src":"5369:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5390,"name":"int256","nodeType":"ElementaryTypeName","src":"5369:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5395,"name":"_rewards","nodeType":"VariableDeclaration","scope":5523,"src":"5403:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":5392,"name":"uint","nodeType":"ElementaryTypeName","src":"5403:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5394,"length":{"argumentTypes":null,"hexValue":"33","id":5393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5408:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"5403:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5397,"name":"_externalToken","nodeType":"VariableDeclaration","scope":5523,"src":"5436:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5396,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"5436:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":5399,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5523,"src":"5467:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5398,"name":"address","nodeType":"ElementaryTypeName","src":"5467:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":5401,"name":"_proposer","nodeType":"VariableDeclaration","scope":5523,"src":"5505:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5400,"name":"address","nodeType":"ElementaryTypeName","src":"5505:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5319:209:11"},"returnParameters":{"id":5405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5404,"name":"proposalId","nodeType":"VariableDeclaration","scope":5523,"src":"5552:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5552:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5551:20:11"},"scope":6293,"src":"5285:1823:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5648,"nodeType":"Block","src":"7376:1488:11","statements":[{"assignments":[5531],"declarations":[{"constant":false,"id":5531,"name":"proposal","nodeType":"VariableDeclaration","scope":5648,"src":"7386:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5530,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"7386:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5535,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5532,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"7426:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5534,"indexExpression":{"argumentTypes":null,"id":5533,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5525,"src":"7448:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7426:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7386:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5537,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7478:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"7478:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7512:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7470:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7470:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5541,"nodeType":"ExpressionStatement","src":"7470:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5542,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7800:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"7800:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5545,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"7832:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7824:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7824:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7800:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5646,"nodeType":"Block","src":"8115:743:11","statements":[{"expression":{"argumentTypes":null,"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5570,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8129:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5571,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8142:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8142:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8129:38:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5574,"nodeType":"ExpressionStatement","src":"8129:38:11"},{"expression":{"argumentTypes":null,"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5575,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8253:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8253:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8281:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8253:29:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5580,"nodeType":"ExpressionStatement","src":"8253:29:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5581,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8301:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8314:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8301:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5603,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8501:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8514:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8501:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5629,"nodeType":"IfStatement","src":"8497:199:11","trueBody":{"id":5628,"nodeType":"Block","src":"8517:179:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5614,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8624:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":5616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"8636:2:11","subExpression":{"argumentTypes":null,"hexValue":"31","id":5615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8637:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"id":5617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8635:4:11","typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"8624:15:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8619:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8619:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5620,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8642:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8642:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5623,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8672:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8664:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8664:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5608,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8588:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"8588:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8588:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5607,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"8560:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:43:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"8560:58:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:120:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"8535:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8535:146:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5627,"nodeType":"ExpressionStatement","src":"8535:146:11"}]}},"id":5630,"nodeType":"IfStatement","src":"8297:399:11","trueBody":{"id":5602,"nodeType":"Block","src":"8317:174:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5592,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8424:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8419:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8419:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5594,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8437:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8437:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5597,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8467:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8459:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8459:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5586,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8388:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"8388:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8388:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5585,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"8360:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8360:43:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"8360:58:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8360:115:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"8335:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8335:141:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5601,"nodeType":"ExpressionStatement","src":"8335:141:11"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5631,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8713:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8727:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8713:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5645,"nodeType":"IfStatement","src":"8709:139:11","trueBody":{"id":5644,"nodeType":"Block","src":"8730:118:11","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5636,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8778:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8770:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8770:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5638,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5525,"src":"8787:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8800:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8800:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5641,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8822:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5634,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"8753:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,bytes32,address,int256)"}},"id":5642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8753:80:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5643,"nodeType":"EmitStatement","src":"8748:85:11"}]}}]},"id":5647,"nodeType":"IfStatement","src":"7796:1062:11","trueBody":{"id":5569,"nodeType":"Block","src":"7839:270:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5548,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7857:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"7857:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7890:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7857:34:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5568,"nodeType":"IfStatement","src":"7853:246:11","trueBody":{"id":5567,"nodeType":"Block","src":"7893:206:11","statements":[{"expression":{"argumentTypes":null,"id":5559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5552,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7971:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"7971:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5556,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8011:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8011:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8003:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8003:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7971:66:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5560,"nodeType":"ExpressionStatement","src":"7971:66:11"},{"expression":{"argumentTypes":null,"id":5565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5561,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8055:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8055:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8083:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8055:29:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5566,"nodeType":"ExpressionStatement","src":"8055:29:11"}]}}]}}]},"documentation":"@dev RedeemReputation reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return reputation the redeemed reputation.","id":5649,"implemented":true,"kind":"function","modifiers":[],"name":"redeemReputation","nodeType":"FunctionDefinition","parameters":{"id":5526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5525,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5649,"src":"7321:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7321:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7320:21:11"},"returnParameters":{"id":5529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5528,"name":"reputation","nodeType":"VariableDeclaration","scope":5649,"src":"7357:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5527,"name":"int256","nodeType":"ElementaryTypeName","src":"7357:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"7356:19:11"},"scope":6293,"src":"7295:1569:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5731,"nodeType":"Block","src":"9128:865:11","statements":[{"assignments":[5657],"declarations":[{"constant":false,"id":5657,"name":"proposal","nodeType":"VariableDeclaration","scope":5731,"src":"9139:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5656,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"9139:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5661,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5658,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"9179:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5660,"indexExpression":{"argumentTypes":null,"id":5659,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5651,"src":"9201:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9179:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9139:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5663,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9231:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"9231:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9265:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5662,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9223:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9223:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5667,"nodeType":"ExpressionStatement","src":"9223:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5668,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9330:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"9330:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5671,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"9362:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9354:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9354:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"9330:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5688,"nodeType":"IfStatement","src":"9326:268:11","trueBody":{"id":5687,"nodeType":"Block","src":"9369:225:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5674,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9455:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"9455:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9489:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9455:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5686,"nodeType":"IfStatement","src":"9451:133:11","trueBody":{"id":5685,"nodeType":"Block","src":"9492:92:11","statements":[{"expression":{"argumentTypes":null,"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5678,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9510:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"9510:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5681,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9543:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"9543:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9510:59:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5684,"nodeType":"ExpressionStatement","src":"9510:59:11"}]}}]}},{"expression":{"argumentTypes":null,"id":5692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5689,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9603:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5690,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9612:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"9612:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9603:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5693,"nodeType":"ExpressionStatement","src":"9603:35:11"},{"expression":{"argumentTypes":null,"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5694,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9717:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"9717:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9746:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9717:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5699,"nodeType":"ExpressionStatement","src":"9717:30:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5700,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9761:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9770:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9761:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5730,"nodeType":"IfStatement","src":"9757:230:11","trueBody":{"id":5729,"nodeType":"Block","src":"9773:214:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9833:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5711,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9841:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"9841:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5714,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"9871:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9863:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9863:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5705,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"9806:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"9806:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9806:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5704,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"9795:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9795:26:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"9795:37:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9795:84:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"9787:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9787:93:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5718,"nodeType":"ExpressionStatement","src":"9787:93:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5721,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"9925:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9917:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9917:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5723,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5651,"src":"9934:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5724,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9947:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"9947:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9969:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5719,"name":"RedeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5216,"src":"9899:17:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9899:77:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5728,"nodeType":"EmitStatement","src":"9894:82:11"}]}}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return amount the redeemed nativeToken.","id":5732,"implemented":true,"kind":"function","modifiers":[],"name":"redeemNativeToken","nodeType":"FunctionDefinition","parameters":{"id":5652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5651,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5732,"src":"9076:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9076:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9075:21:11"},"returnParameters":{"id":5655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5654,"name":"amount","nodeType":"VariableDeclaration","scope":5732,"src":"9112:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5653,"name":"uint256","nodeType":"ElementaryTypeName","src":"9112:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9111:16:11"},"scope":6293,"src":"9049:944:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5812,"nodeType":"Block","src":"10241:740:11","statements":[{"assignments":[5740],"declarations":[{"constant":false,"id":5740,"name":"proposal","nodeType":"VariableDeclaration","scope":5812,"src":"10251:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5739,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"10251:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5744,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5741,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"10291:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5743,"indexExpression":{"argumentTypes":null,"id":5742,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"10313:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10291:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10251:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5746,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10343:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"10343:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10377:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10335:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10335:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5750,"nodeType":"ExpressionStatement","src":"10335:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5751,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10442:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"10442:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5754,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"10474:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10466:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10466:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"10442:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5771,"nodeType":"IfStatement","src":"10438:176:11","trueBody":{"id":5770,"nodeType":"Block","src":"10481:133:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5757,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10499:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"10499:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10525:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10499:27:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5769,"nodeType":"IfStatement","src":"10495:109:11","trueBody":{"id":5768,"nodeType":"Block","src":"10528:76:11","statements":[{"expression":{"argumentTypes":null,"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5761,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10546:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"10546:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5764,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10571:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"10571:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10546:43:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5767,"nodeType":"ExpressionStatement","src":"10546:43:11"}]}}]}},{"expression":{"argumentTypes":null,"id":5775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5772,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10623:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5773,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10632:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"10632:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10623:27:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5776,"nodeType":"ExpressionStatement","src":"10623:27:11"},{"expression":{"argumentTypes":null,"id":5781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5777,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10729:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"10729:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10750:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10729:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5782,"nodeType":"ExpressionStatement","src":"10729:22:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5783,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10765:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10774:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10765:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5811,"nodeType":"IfStatement","src":"10761:214:11","trueBody":{"id":5810,"nodeType":"Block","src":"10777:198:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10836:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5794,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10844:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"10844:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5796,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"10866:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5788,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"10810:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"10810:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10810:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5787,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"10799:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10799:26:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendEther","nodeType":"MemberAccess","referencedDeclaration":1503,"src":"10799:36:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_payable_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (uint256,address payable,contract Avatar) external returns (bool)"}},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10799:74:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10791:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10791:83:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5799,"nodeType":"ExpressionStatement","src":"10791:83:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5802,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"10913:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10905:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10905:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5804,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"10922:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5805,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10935:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"10935:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5807,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10957:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5800,"name":"RedeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"10893:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10893:71:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5809,"nodeType":"EmitStatement","src":"10888:76:11"}]}}]},"documentation":"@dev RedeemEther reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return amount ether redeemed amount","id":5813,"implemented":true,"kind":"function","modifiers":[],"name":"redeemEther","nodeType":"FunctionDefinition","parameters":{"id":5735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5734,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5813,"src":"10189:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10189:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"10188:21:11"},"returnParameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5737,"name":"amount","nodeType":"VariableDeclaration","scope":5813,"src":"10225:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5736,"name":"uint256","nodeType":"ElementaryTypeName","src":"10225:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10224:16:11"},"scope":6293,"src":"10168:813:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5903,"nodeType":"Block","src":"11256:948:11","statements":[{"assignments":[5821],"declarations":[{"constant":false,"id":5821,"name":"proposal","nodeType":"VariableDeclaration","scope":5903,"src":"11266:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5820,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"11266:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5825,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5822,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"11306:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5824,"indexExpression":{"argumentTypes":null,"id":5823,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"11328:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11306:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11266:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5827,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11358:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"11358:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11392:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5826,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11350:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11350:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5831,"nodeType":"ExpressionStatement","src":"11350:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5832,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11458:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"11458:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5835,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"11490:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11482:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11482:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"11458:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5852,"nodeType":"IfStatement","src":"11454:206:11","trueBody":{"id":5851,"nodeType":"Block","src":"11497:163:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5838,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11515:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"11515:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11551:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11515:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5850,"nodeType":"IfStatement","src":"11511:139:11","trueBody":{"id":5849,"nodeType":"Block","src":"11554:96:11","statements":[{"expression":{"argumentTypes":null,"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5842,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11572:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"11572:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5845,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11607:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11607:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11572:63:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5848,"nodeType":"ExpressionStatement","src":"11572:63:11"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":5858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5853,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11674:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"11674:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5855,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"11700:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11700:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"11674:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5859,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11713:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11713:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11744:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11713:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11674:71:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5902,"nodeType":"IfStatement","src":"11670:528:11","trueBody":{"id":5901,"nodeType":"Block","src":"11747:451:11","statements":[{"expression":{"argumentTypes":null,"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5864,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"11761:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5865,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11770:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11770:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:37:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5868,"nodeType":"ExpressionStatement","src":"11761:37:11"},{"expression":{"argumentTypes":null,"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5869,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11885:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11885:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11916:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11885:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5874,"nodeType":"ExpressionStatement","src":"11885:32:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5882,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"12027:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"12027:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5884,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"12051:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"12051:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5886,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"12073:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5887,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"12081:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5877,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"11976:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"11976:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11976:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5876,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"11952:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11952:39:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1534,"src":"11952:74:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,contract Avatar) external returns (bool)"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11952:136:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11931:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11931:158:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5890,"nodeType":"ExpressionStatement","src":"11931:158:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5893,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"12136:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12128:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12128:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5895,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"12145:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5896,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"12158:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"12158:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"12180:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5891,"name":"RedeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"12108:19:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12108:79:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5900,"nodeType":"EmitStatement","src":"12103:84:11"}]}}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return amount the external token redeemed amount","id":5904,"implemented":true,"kind":"function","modifiers":[],"name":"redeemExternalToken","nodeType":"FunctionDefinition","parameters":{"id":5816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5815,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5904,"src":"11204:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11203:21:11"},"returnParameters":{"id":5819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5818,"name":"amount","nodeType":"VariableDeclaration","scope":5904,"src":"11240:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5817,"name":"uint256","nodeType":"ElementaryTypeName","src":"11240:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11239:16:11"},"scope":6293,"src":"11175:1029:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5969,"nodeType":"Block","src":"12680:786:11","statements":[{"assignments":[5916],"declarations":[{"constant":false,"id":5916,"name":"proposal","nodeType":"VariableDeclaration","scope":5969,"src":"12690:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5915,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"12690:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5920,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5917,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"12730:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5919,"indexExpression":{"argumentTypes":null,"id":5918,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5906,"src":"12752:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12730:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12690:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5922,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"12782:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"12782:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12816:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5921,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12774:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12774:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5926,"nodeType":"ExpressionStatement","src":"12774:92:11"},{"expression":{"argumentTypes":null,"id":5936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5927,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"13001:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"13001:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5933,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13075:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f72652072657075746174696f6e207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d52657075746174696f6e207761732063616c6c6564","id":5934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13096:98:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4106cd8ae6f9e53c34764e1e93682813218c98597a7148dc112dec488f9a4ea4","typeString":"literal_string \"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called\""},"value":"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_4106cd8ae6f9e53c34764e1e93682813218c98597a7148dc112dec488f9a4ea4","typeString":"literal_string \"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5930,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"13041:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"13041:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"13041:33:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13041:154:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13001:194:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5937,"nodeType":"ExpressionStatement","src":"13001:194:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5945,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13273:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5946,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"13286:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5948,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"13308:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13300:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13300:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5940,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"13242:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"13242:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13242:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5939,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"13222:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:35:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"13222:50:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:94:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5938,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"13205:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13205:112:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5952,"nodeType":"ExpressionStatement","src":"13205:112:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5953,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13331:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13346:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13331:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5968,"nodeType":"IfStatement","src":"13327:133:11","trueBody":{"id":5967,"nodeType":"Block","src":"13349:111:11","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5958,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"13393:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13385:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13385:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5960,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5906,"src":"13402:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":5961,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"13415:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5963,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13436:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13429:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":5964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13429:19:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5956,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"13368:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,bytes32,address,int256)"}},"id":5965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13368:81:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5966,"nodeType":"EmitStatement","src":"13363:86:11"}]}}]},"documentation":"@dev redeemReputationByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to mint reputation to.\n@param _reputation the reputation amount to mint\n note: burn reputation is not supported via this function","id":5970,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":5913,"modifierName":{"argumentTypes":null,"id":5912,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"12663:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"12663:12:11"}],"name":"redeemReputationByRewarder","nodeType":"FunctionDefinition","parameters":{"id":5911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5906,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5970,"src":"12584:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12584:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5908,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5970,"src":"12605:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5907,"name":"address","nodeType":"ElementaryTypeName","src":"12605:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5910,"name":"_reputation","nodeType":"VariableDeclaration","scope":5970,"src":"12627:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5909,"name":"uint256","nodeType":"ElementaryTypeName","src":"12627:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12583:64:11"},"returnParameters":{"id":5914,"nodeType":"ParameterList","parameters":[],"src":"12680:0:11"},"scope":6293,"src":"12548:918:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6028,"nodeType":"Block","src":"13858:724:11","statements":[{"assignments":[5982],"declarations":[{"constant":false,"id":5982,"name":"proposal","nodeType":"VariableDeclaration","scope":6028,"src":"13868:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5981,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"13868:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5986,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5983,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"13908:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5985,"indexExpression":{"argumentTypes":null,"id":5984,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"13930:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13908:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13868:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5988,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"13960:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"13960:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13994:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5987,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13952:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13952:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5992,"nodeType":"ExpressionStatement","src":"13952:92:11"},{"expression":{"argumentTypes":null,"id":6002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"14180:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"14180:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5999,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14256:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f726520746f6b656e73207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d4e6174697665546f6b656e207761732063616c6c6564","id":6000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14273:95:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e03e47835f677f93493c59cb9d6e685d2cea3b8adccef49365356d4fd21121ce","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called\""},"value":"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_e03e47835f677f93493c59cb9d6e685d2cea3b8adccef49365356d4fd21121ce","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5996,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"14221:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"14221:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"14221:34:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":6001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14221:148:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14180:189:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6003,"nodeType":"ExpressionStatement","src":"14180:189:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6004,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14384:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":6005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14394:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14384:11:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6027,"nodeType":"IfStatement","src":"14380:196:11","trueBody":{"id":6026,"nodeType":"Block","src":"14397:179:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6013,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"14454:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6014,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14468:7:11","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":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6008,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"14419:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeToken","nodeType":"MemberAccess","referencedDeclaration":73,"src":"14419:18:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_DAOToken_$1873_$","typeString":"function () view external returns (contract DAOToken)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14419:20:11","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}],"id":6007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14411:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14411:29:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"14411:42:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":6015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14411:65:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6016,"nodeType":"ExpressionStatement","src":"14411:65:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6019,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"14521:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14513:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14513:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6021,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"14530:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6022,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"14543:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6023,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14557:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6017,"name":"RedeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5216,"src":"14495:17:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":6024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14495:70:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6025,"nodeType":"EmitStatement","src":"14490:75:11"}]}}]},"documentation":"@dev redeemNativeTokenByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to mint tokens to.\n@param _amount the tokens amount to mint","id":6029,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":5979,"modifierName":{"argumentTypes":null,"id":5978,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"13841:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"13841:12:11"}],"name":"redeemNativeTokenByRewarder","nodeType":"FunctionDefinition","parameters":{"id":5977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5972,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6029,"src":"13766:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13766:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5974,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6029,"src":"13787:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5973,"name":"address","nodeType":"ElementaryTypeName","src":"13787:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5976,"name":"_amount","nodeType":"VariableDeclaration","scope":6029,"src":"13809:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5975,"name":"uint256","nodeType":"ElementaryTypeName","src":"13809:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13765:60:11"},"returnParameters":{"id":5980,"nodeType":"ParameterList","parameters":[],"src":"13858:0:11"},"scope":6293,"src":"13729:853:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6083,"nodeType":"Block","src":"14960:647:11","statements":[{"assignments":[6041],"declarations":[{"constant":false,"id":6041,"name":"proposal","nodeType":"VariableDeclaration","scope":6083,"src":"14970:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":6040,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"14970:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":6045,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6042,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"15010:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6044,"indexExpression":{"argumentTypes":null,"id":6043,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"15032:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15010:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14970:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6047,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"15062:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"15062:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":6049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15096:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":6046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"15054:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15054:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6051,"nodeType":"ExpressionStatement","src":"15054:92:11"},{"expression":{"argumentTypes":null,"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6052,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"15277:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"15277:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6058,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15329:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f7265204574686572207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d4574686572207761732063616c6c6564","id":6059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15346:88:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ef8d153f00bcb6e8a6a3a83ca3d7a260a0ef84504827a298a04fa858df81092b","typeString":"literal_string \"cannot redeem more Ether than allocated for this proposal or no redeemEther was called\""},"value":"cannot redeem more Ether than allocated for this proposal or no redeemEther was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_ef8d153f00bcb6e8a6a3a83ca3d7a260a0ef84504827a298a04fa858df81092b","typeString":"literal_string \"cannot redeem more Ether than allocated for this proposal or no redeemEther was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6055,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"15302:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"15302:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"15302:26:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15302:133:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15277:158:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6062,"nodeType":"ExpressionStatement","src":"15277:158:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6063,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15450:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":6064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15460:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15450:11:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6082,"nodeType":"IfStatement","src":"15446:155:11","trueBody":{"id":6081,"nodeType":"Block","src":"15463:138:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6069,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15499:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":6066,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"15477:12:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15477:21:11","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15477:30:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6071,"nodeType":"ExpressionStatement","src":"15477:30:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6074,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"15546:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15538:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15538:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6076,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"15555:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6077,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"15568:12:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6078,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15582:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6072,"name":"RedeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"15526:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":6079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15526:64:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6080,"nodeType":"EmitStatement","src":"15521:69:11"}]}}]},"documentation":"@dev redeemEtherByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to send eth to.\n@param _amount eth amount to send","id":6084,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6038,"modifierName":{"argumentTypes":null,"id":6037,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"14943:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"14943:12:11"}],"name":"redeemEtherByRewarder","nodeType":"FunctionDefinition","parameters":{"id":6036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6031,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6084,"src":"14860:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14860:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6033,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6084,"src":"14881:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6032,"name":"address","nodeType":"ElementaryTypeName","src":"14881:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":6035,"name":"_amount","nodeType":"VariableDeclaration","scope":6084,"src":"14911:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6034,"name":"uint256","nodeType":"ElementaryTypeName","src":"14911:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14859:68:11"},"returnParameters":{"id":6039,"nodeType":"ParameterList","parameters":[],"src":"14960:0:11"},"scope":6293,"src":"14829:778:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6149,"nodeType":"Block","src":"16022:814:11","statements":[{"assignments":[6096],"declarations":[{"constant":false,"id":6096,"name":"proposal","nodeType":"VariableDeclaration","scope":6149,"src":"16032:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":6095,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"16032:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":6100,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6097,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"16072:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6099,"indexExpression":{"argumentTypes":null,"id":6098,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"16094:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16072:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16032:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6102,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16124:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"16124:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":6104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16158:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":6101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"16116:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16116:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6106,"nodeType":"ExpressionStatement","src":"16116:92:11"},{"expression":{"argumentTypes":null,"id":6116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6107,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16347:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"16347:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6113,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16427:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f726520746f6b656e73207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d45787465726e616c546f6b656e207761732063616c6c6564","id":6114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16444:97:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7798e19365cc8ddfbdc5ed5aecdf843cc19b1429294722e3c02aa676008a0684","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called\""},"value":"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_7798e19365cc8ddfbdc5ed5aecdf843cc19b1429294722e3c02aa676008a0684","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16390:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"16390:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"16390:36:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":6115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16390:152:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16347:195:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6117,"nodeType":"ExpressionStatement","src":"16347:195:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16557:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"16557:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6120,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"16583:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":6122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16583:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"16557:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6148,"nodeType":"IfStatement","src":"16553:277:11","trueBody":{"id":6147,"nodeType":"Block","src":"16594:236:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6124,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":6125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16622:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16612:11:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6146,"nodeType":"IfStatement","src":"16608:212:11","trueBody":{"id":6145,"nodeType":"Block","src":"16625:195:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6132,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"16688:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6133,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16702:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6128,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16651:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"16651:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":6127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16643:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:31:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"16643:44:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:67:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6135,"nodeType":"ExpressionStatement","src":"16643:67:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6138,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"16761:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16753:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16753:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6140,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"16770:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6141,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"16783:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6142,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16797:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6136,"name":"RedeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"16733:19:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":6143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16733:72:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6144,"nodeType":"EmitStatement","src":"16728:77:11"}]}}]}}]},"documentation":"@dev redeemExternalTokenByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to send the external token to.\n@param _amount the amount of external token to send","id":6150,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6093,"modifierName":{"argumentTypes":null,"id":6092,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"16009:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"16009:12:11"}],"name":"redeemExternalTokenByRewarder","nodeType":"FunctionDefinition","parameters":{"id":6091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6086,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6150,"src":"15934:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15934:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6088,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6150,"src":"15955:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6087,"name":"address","nodeType":"ElementaryTypeName","src":"15955:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6090,"name":"_amount","nodeType":"VariableDeclaration","scope":6150,"src":"15977:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6089,"name":"uint256","nodeType":"ElementaryTypeName","src":"15977:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15933:60:11"},"returnParameters":{"id":6094,"nodeType":"ParameterList","parameters":[],"src":"16022:0:11"},"scope":6293,"src":"15895:941:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6211,"nodeType":"Block","src":"17460:425:11","statements":[{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6167,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17475:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6169,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":6168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17475:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6177,"nodeType":"IfStatement","src":"17471:95:11","trueBody":{"id":6176,"nodeType":"Block","src":"17493:73:11","statements":[{"expression":{"argumentTypes":null,"id":6174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6170,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"17507:16:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6172,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17543:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6171,"name":"redeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"17526:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_int256_$","typeString":"function (bytes32) returns (int256)"}},"id":6173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17526:29:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17507:48:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":6175,"nodeType":"ExpressionStatement","src":"17507:48:11"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6178,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17580:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6180,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":6179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17594:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17580:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6188,"nodeType":"IfStatement","src":"17576:97:11","trueBody":{"id":6187,"nodeType":"Block","src":"17598:75:11","statements":[{"expression":{"argumentTypes":null,"id":6185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6181,"name":"nativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6161,"src":"17612:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6183,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17650:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6182,"name":"redeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"17632:17:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":6184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17632:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17612:50:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6186,"nodeType":"ExpressionStatement","src":"17612:50:11"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6189,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17687:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6191,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17701:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17687:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6199,"nodeType":"IfStatement","src":"17683:85:11","trueBody":{"id":6198,"nodeType":"Block","src":"17705:63:11","statements":[{"expression":{"argumentTypes":null,"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6192,"name":"etherReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"17719:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6194,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17745:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6193,"name":"redeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"17733:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":6195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17733:24:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17719:38:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6197,"nodeType":"ExpressionStatement","src":"17719:38:11"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6200,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17782:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6202,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":6201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17796:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17782:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6210,"nodeType":"IfStatement","src":"17778:101:11","trueBody":{"id":6209,"nodeType":"Block","src":"17800:79:11","statements":[{"expression":{"argumentTypes":null,"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6203,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"17814:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6205,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17856:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6204,"name":"redeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5904,"src":"17836:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":6206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17836:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17814:54:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6208,"nodeType":"ExpressionStatement","src":"17814:54:11"}]}}]},"documentation":"@dev redeem rewards for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _whatToRedeem whatToRedeem array of boolean values:\n whatToRedeem[0] - reputation\n whatToRedeem[1] - nativeTokenReward\n whatToRedeem[2] - Ether\n whatToRedeem[3] - ExternalToken\n@return result boolean array for each redeem type.","id":6212,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":6157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6152,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6212,"src":"17280:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17280:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6156,"name":"_whatToRedeem","nodeType":"VariableDeclaration","scope":6212,"src":"17301:28:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":6153,"name":"bool","nodeType":"ElementaryTypeName","src":"17301:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6155,"length":{"argumentTypes":null,"hexValue":"34","id":6154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17306:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"17301:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"src":"17279:51:11"},"returnParameters":{"id":6166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6159,"name":"reputationReward","nodeType":"VariableDeclaration","scope":6212,"src":"17354:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6158,"name":"int256","nodeType":"ElementaryTypeName","src":"17354:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6161,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":6212,"src":"17379:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6160,"name":"uint256","nodeType":"ElementaryTypeName","src":"17379:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6163,"name":"etherReward","nodeType":"VariableDeclaration","scope":6212,"src":"17406:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6162,"name":"uint256","nodeType":"ElementaryTypeName","src":"17406:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6165,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":6212,"src":"17427:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6164,"name":"uint256","nodeType":"ElementaryTypeName","src":"17427:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17353:102:11"},"scope":6293,"src":"17264:621:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6224,"nodeType":"Block","src":"17972:68:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6219,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"17989:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6221,"indexExpression":{"argumentTypes":null,"id":6220,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"18011:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17989:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"17989:44:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6218,"id":6223,"nodeType":"Return","src":"17982:51:11"}]},"documentation":null,"id":6225,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalEthReward","nodeType":"FunctionDefinition","parameters":{"id":6215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6214,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6225,"src":"17921:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17921:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"17920:21:11"},"returnParameters":{"id":6218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6217,"name":"","nodeType":"VariableDeclaration","scope":6225,"src":"17963:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6216,"name":"uint256","nodeType":"ElementaryTypeName","src":"17963:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17962:9:11"},"scope":6293,"src":"17891:149:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6237,"nodeType":"Block","src":"18137:78:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6232,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18154:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6234,"indexExpression":{"argumentTypes":null,"id":6233,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6227,"src":"18176:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18154:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"18154:54:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6231,"id":6236,"nodeType":"Return","src":"18147:61:11"}]},"documentation":null,"id":6238,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalTokenReward","nodeType":"FunctionDefinition","parameters":{"id":6228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6227,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6238,"src":"18086:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18086:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18085:21:11"},"returnParameters":{"id":6231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6230,"name":"","nodeType":"VariableDeclaration","scope":6238,"src":"18128:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6229,"name":"uint256","nodeType":"ElementaryTypeName","src":"18128:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18127:9:11"},"scope":6293,"src":"18046:169:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6252,"nodeType":"Block","src":"18306:81:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6246,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18331:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6248,"indexExpression":{"argumentTypes":null,"id":6247,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6240,"src":"18353:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18331:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"18331:48:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18323:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18323:57:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6244,"id":6251,"nodeType":"Return","src":"18316:64:11"}]},"documentation":null,"id":6253,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalToken","nodeType":"FunctionDefinition","parameters":{"id":6241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6240,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6253,"src":"18255:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18255:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18254:21:11"},"returnParameters":{"id":6244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6243,"name":"","nodeType":"VariableDeclaration","scope":6253,"src":"18297:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6242,"name":"address","nodeType":"ElementaryTypeName","src":"18297:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"18296:9:11"},"scope":6293,"src":"18221:166:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6265,"nodeType":"Block","src":"18480:75:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6260,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18497:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6262,"indexExpression":{"argumentTypes":null,"id":6261,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"18519:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18497:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"18497:51:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6259,"id":6264,"nodeType":"Return","src":"18490:58:11"}]},"documentation":null,"id":6266,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalReputationReward","nodeType":"FunctionDefinition","parameters":{"id":6256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6255,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6266,"src":"18430:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18430:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18429:21:11"},"returnParameters":{"id":6259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6258,"name":"","nodeType":"VariableDeclaration","scope":6266,"src":"18472:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6257,"name":"int256","nodeType":"ElementaryTypeName","src":"18472:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"18471:8:11"},"scope":6293,"src":"18393:162:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6278,"nodeType":"Block","src":"18650:76:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6273,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18667:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6275,"indexExpression":{"argumentTypes":null,"id":6274,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6268,"src":"18689:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18667:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"18667:52:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6272,"id":6277,"nodeType":"Return","src":"18660:59:11"}]},"documentation":null,"id":6279,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalNativeTokenReward","nodeType":"FunctionDefinition","parameters":{"id":6269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6268,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6279,"src":"18599:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18599:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18598:21:11"},"returnParameters":{"id":6272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6271,"name":"","nodeType":"VariableDeclaration","scope":6279,"src":"18641:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6270,"name":"uint256","nodeType":"ElementaryTypeName","src":"18641:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18640:9:11"},"scope":6293,"src":"18561:165:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6291,"nodeType":"Block","src":"18824:82:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6286,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18841:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6288,"indexExpression":{"argumentTypes":null,"id":6287,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"18863:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18841:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"18841:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6285,"id":6290,"nodeType":"Return","src":"18834:65:11"}]},"documentation":null,"id":6292,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalAcceptedByVotingMachine","nodeType":"FunctionDefinition","parameters":{"id":6282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6281,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6292,"src":"18776:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18776:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18775:21:11"},"returnParameters":{"id":6285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6284,"name":"","nodeType":"VariableDeclaration","scope":6292,"src":"18818:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6283,"name":"bool","nodeType":"ElementaryTypeName","src":"18818:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"18817:6:11"},"scope":6293,"src":"18732:174:11","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":6294,"src":"720:18189:11"}],"src":"0:18910:11"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","exportedSymbols":{"ContributionRewardExt":[6293]},"id":6294,"nodeType":"SourceUnit","nodes":[{"id":5142,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:11"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":5143,"nodeType":"ImportDirective","scope":6294,"sourceUnit":19817,"src":"25:71:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":5144,"nodeType":"ImportDirective","scope":6294,"sourceUnit":20032,"src":"97:86:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":5145,"nodeType":"ImportDirective","scope":6294,"sourceUnit":14651,"src":"184:54:11","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":5146,"nodeType":"ImportDirective","scope":6294,"sourceUnit":2258,"src":"239:31:11","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":5147,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"754:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":5148,"nodeType":"InheritanceSpecifier","src":"754:22:11"},{"arguments":null,"baseName":{"contractScope":null,"id":5149,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"778:24:11","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":5150,"nodeType":"InheritanceSpecifier","src":"778:24:11"}],"contractDependencies":[14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme for proposing and rewarding contributions to an organization\n@dev An agent can ask an organization to recognize a contribution and reward\nhim with token, reputation, ether or any combination.\nThis scheme extend the functionality of the ContributionReward scheme.\nIt enable to assign a rewarder, which, after the contributionreward has been accepted,\ncan then later distribute the assets as it would like.","fullyImplemented":true,"id":6293,"linearizedBaseContracts":[6293,19828,14650,20031],"name":"ContributionRewardExt","nodeType":"ContractDefinition","nodes":[{"id":5153,"libraryName":{"contractScope":null,"id":5151,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"815:8:11","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"809:24:11","typeName":{"id":5152,"name":"uint","nodeType":"ElementaryTypeName","src":"828:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":5156,"libraryName":{"contractScope":null,"id":5154,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"844:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"838:28:11","typeName":{"id":5155,"name":"address","nodeType":"ElementaryTypeName","src":"858:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"anonymous":false,"documentation":null,"id":5178,"name":"NewContributionProposal","nodeType":"EventDefinition","parameters":{"id":5177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5158,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5178,"src":"911:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5157,"name":"address","nodeType":"ElementaryTypeName","src":"911:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5160,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5178,"src":"944:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"944:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5162,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":5178,"src":"981:33:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5161,"name":"address","nodeType":"ElementaryTypeName","src":"981:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5164,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":5178,"src":"1024:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5163,"name":"string","nodeType":"ElementaryTypeName","src":"1024:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":5166,"indexed":false,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":5178,"src":"1057:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5165,"name":"int256","nodeType":"ElementaryTypeName","src":"1057:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5170,"indexed":false,"name":"_rewards","nodeType":"VariableDeclaration","scope":5178,"src":"1091:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":5167,"name":"uint","nodeType":"ElementaryTypeName","src":"1091:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5169,"length":{"argumentTypes":null,"hexValue":"33","id":5168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1096:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"1091:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5172,"indexed":false,"name":"_externalToken","nodeType":"VariableDeclaration","scope":5178,"src":"1118:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5171,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1118:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":5174,"indexed":false,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5178,"src":"1149:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5173,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5176,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":5178,"src":"1179:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5175,"name":"address","nodeType":"ElementaryTypeName","src":"1179:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"901:301:11"},"src":"872:331:11"},{"anonymous":false,"documentation":null,"id":5186,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":5185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5180,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5186,"src":"1232:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5179,"name":"address","nodeType":"ElementaryTypeName","src":"1232:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5182,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5186,"src":"1257:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1257:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5184,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":5186,"src":"1286:13:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5183,"name":"int256","nodeType":"ElementaryTypeName","src":"1286:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1231:69:11"},"src":"1209:92:11"},{"anonymous":false,"documentation":null,"id":5196,"name":"RedeemReputation","nodeType":"EventDefinition","parameters":{"id":5195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5188,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5196,"src":"1339:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5187,"name":"address","nodeType":"ElementaryTypeName","src":"1339:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5190,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5196,"src":"1372:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1372:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5192,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5196,"src":"1409:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5191,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5194,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5196,"src":"1447:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5193,"name":"int256","nodeType":"ElementaryTypeName","src":"1447:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1329:133:11"},"src":"1307:156:11"},{"anonymous":false,"documentation":null,"id":5206,"name":"RedeemEther","nodeType":"EventDefinition","parameters":{"id":5205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5198,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5206,"src":"1487:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5197,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5200,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5206,"src":"1520:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5202,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5206,"src":"1557:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5201,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5204,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5206,"src":"1595:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5203,"name":"uint256","nodeType":"ElementaryTypeName","src":"1595:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1486:125:11"},"src":"1469:143:11"},{"anonymous":false,"documentation":null,"id":5216,"name":"RedeemNativeToken","nodeType":"EventDefinition","parameters":{"id":5215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5208,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5216,"src":"1642:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5207,"name":"address","nodeType":"ElementaryTypeName","src":"1642:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5210,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5216,"src":"1675:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1675:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5212,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5216,"src":"1712:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5211,"name":"address","nodeType":"ElementaryTypeName","src":"1712:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5214,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5216,"src":"1750:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5213,"name":"uint256","nodeType":"ElementaryTypeName","src":"1750:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1641:125:11"},"src":"1618:149:11"},{"anonymous":false,"documentation":null,"id":5226,"name":"RedeemExternalToken","nodeType":"EventDefinition","parameters":{"id":5225,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5218,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":5226,"src":"1799:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5217,"name":"address","nodeType":"ElementaryTypeName","src":"1799:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5220,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5226,"src":"1832:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5219,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1832:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5222,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5226,"src":"1869:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5221,"name":"address","nodeType":"ElementaryTypeName","src":"1869:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5224,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":5226,"src":"1907:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5223,"name":"uint256","nodeType":"ElementaryTypeName","src":"1907:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1798:125:11"},"src":"1773:151:11"},{"canonicalName":"ContributionRewardExt.ContributionProposal","id":5249,"members":[{"constant":false,"id":5228,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":5249,"src":"2029:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5227,"name":"uint256","nodeType":"ElementaryTypeName","src":"2029:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5230,"name":"reputationChange","nodeType":"VariableDeclaration","scope":5249,"src":"2121:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5229,"name":"int256","nodeType":"ElementaryTypeName","src":"2121:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5232,"name":"ethReward","nodeType":"VariableDeclaration","scope":5249,"src":"2199:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5231,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5234,"name":"externalToken","nodeType":"VariableDeclaration","scope":5249,"src":"2226:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5233,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2226:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":5236,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":5249,"src":"2256:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5235,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5238,"name":"beneficiary","nodeType":"VariableDeclaration","scope":5249,"src":"2293:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5237,"name":"address","nodeType":"ElementaryTypeName","src":"2293:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":5240,"name":"nativeTokenRewardLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2330:29:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5239,"name":"uint256","nodeType":"ElementaryTypeName","src":"2330:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5242,"name":"reputationChangeLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2369:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5241,"name":"uint256","nodeType":"ElementaryTypeName","src":"2369:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5244,"name":"ethRewardLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2407:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5243,"name":"uint256","nodeType":"ElementaryTypeName","src":"2407:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5246,"name":"externalTokenRewardLeft","nodeType":"VariableDeclaration","scope":5249,"src":"2438:31:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5245,"name":"uint256","nodeType":"ElementaryTypeName","src":"2438:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5248,"name":"acceptedByVotingMachine","nodeType":"VariableDeclaration","scope":5249,"src":"2479:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5247,"name":"bool","nodeType":"ElementaryTypeName","src":"2479:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"ContributionProposal","nodeType":"StructDefinition","scope":6293,"src":"1991:523:11","visibility":"public"},{"body":{"id":5260,"nodeType":"Block","src":"2544:91:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5252,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2562:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2562:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":5254,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"2576:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2562:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d73672e73656e646572206973206e6f7420617574686f72697a6564","id":5256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2586:30:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f6dcc7b63d6de53a5ee3aa72fd4997e522a192c98a89ed5e1bd6cba4288df52f","typeString":"literal_string \"msg.sender is not authorized\""},"value":"msg.sender is not authorized"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f6dcc7b63d6de53a5ee3aa72fd4997e522a192c98a89ed5e1bd6cba4288df52f","typeString":"literal_string \"msg.sender is not authorized\""}],"id":5251,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2554:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2554:63:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5258,"nodeType":"ExpressionStatement","src":"2554:63:11"},{"id":5259,"nodeType":"PlaceholderStatement","src":"2627:1:11"}]},"documentation":null,"id":5261,"name":"onlyRewarder","nodeType":"ModifierDefinition","parameters":{"id":5250,"nodeType":"ParameterList","parameters":[],"src":"2541:2:11"},"src":"2520:115:11","visibility":"internal"},{"constant":false,"id":5265,"name":"organizationProposals","nodeType":"VariableDeclaration","scope":6293,"src":"2641:67:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal)"},"typeName":{"id":5264,"keyType":{"id":5262,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2649:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2641:38:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal)"},"valueType":{"contractScope":null,"id":5263,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"2658:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":5267,"name":"votingMachine","nodeType":"VariableDeclaration","scope":6293,"src":"2715:37:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":5266,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"2715:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":5269,"name":"voteParams","nodeType":"VariableDeclaration","scope":6293,"src":"2758:25:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5268,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2758:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":false,"id":5271,"name":"avatar","nodeType":"VariableDeclaration","scope":6293,"src":"2789:20:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":5270,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2789:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":5273,"name":"rewarder","nodeType":"VariableDeclaration","scope":6293,"src":"2815:23:11","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5272,"name":"address","nodeType":"ElementaryTypeName","src":"2815:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":5276,"nodeType":"Block","src":"2939:7:11","statements":[]},"documentation":"@dev enables this contract to receive ethers","id":5277,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":5274,"nodeType":"ParameterList","parameters":[],"src":"2919:2:11"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[],"src":"2939:0:11"},"scope":6293,"src":"2911:35:11","stateMutability":"payable","superFunction":null,"visibility":"external"},{"body":{"id":5331,"nodeType":"Block","src":"3446:358:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":5293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5289,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"3464:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3481:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5290,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3474:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3474:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3464:19:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":5294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3485:29:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":5288,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3456:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3456:59:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5296,"nodeType":"ExpressionStatement","src":"3456:59:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":5302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5298,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5279,"src":"3533:7:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3551:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5299,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3544:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":5301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3544:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3533:20:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":5303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3555:23:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":5297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3525:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3525:54:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5305,"nodeType":"ExpressionStatement","src":"3525:54:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"id":5311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5307,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"3597:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3632:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5308,"name":"IntVoteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19816,"src":"3615:16:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IntVoteInterface_$19816_$","typeString":"type(contract IntVoteInterface)"}},"id":5310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3615:19:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3597:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74696e674d616368696e652063616e6e6f74206265207a65726f","id":5312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3636:30:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8d7532a3ed862b1c2332f71ed766f76acef0759af6f9f0618464201389bb6525","typeString":"literal_string \"votingMachine cannot be zero\""},"value":"votingMachine cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8d7532a3ed862b1c2332f71ed766f76acef0759af6f9f0618464201389bb6525","typeString":"literal_string \"votingMachine cannot be zero\""}],"id":5306,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3589:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3589:78:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5314,"nodeType":"ExpressionStatement","src":"3589:78:11"},{"expression":{"argumentTypes":null,"id":5317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5315,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"3677:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5316,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5279,"src":"3686:7:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3677:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5318,"nodeType":"ExpressionStatement","src":"3677:16:11"},{"expression":{"argumentTypes":null,"id":5321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5319,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"3703:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5320,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5281,"src":"3719:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3703:30:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":5322,"nodeType":"ExpressionStatement","src":"3703:30:11"},{"expression":{"argumentTypes":null,"id":5325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5323,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"3743:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5324,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5283,"src":"3756:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3743:24:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5326,"nodeType":"ExpressionStatement","src":"3743:24:11"},{"expression":{"argumentTypes":null,"id":5329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5327,"name":"rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5273,"src":"3777:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5328,"name":"_rewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5285,"src":"3788:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3777:20:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5330,"nodeType":"ExpressionStatement","src":"3777:20:11"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _votingMachine the voting machines address\n@param _voteParams voting machine parameters\n@param _rewarder an address which allowed to redeem the contribution.\nif _rewarder is 0 this param is agnored.","id":5332,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":5286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5279,"name":"_avatar","nodeType":"VariableDeclaration","scope":5332,"src":"3311:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":5278,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3311:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":5281,"name":"_votingMachine","nodeType":"VariableDeclaration","scope":5332,"src":"3335:31:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":5280,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3335:16:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":5283,"name":"_voteParams","nodeType":"VariableDeclaration","scope":5332,"src":"3376:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5282,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3376:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5285,"name":"_rewarder","nodeType":"VariableDeclaration","scope":5332,"src":"3405:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5284,"name":"address","nodeType":"ElementaryTypeName","src":"3405:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3301:127:11"},"returnParameters":{"id":5287,"nodeType":"ParameterList","parameters":[],"src":"3446:0:11"},"scope":6293,"src":"3282:522:11","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":5386,"nodeType":"Block","src":"4204:384:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5345,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"4222:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5347,"indexExpression":{"argumentTypes":null,"id":5346,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4244:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4222:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"4222:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":5349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4284:5:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4222:67:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5344,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4214:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4214:76:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5352,"nodeType":"ExpressionStatement","src":"4214:76:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5354,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"4308:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5356,"indexExpression":{"argumentTypes":null,"id":5355,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4330:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4308:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5357,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"4308:46:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4366:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4358:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4358:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4308:60:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4300:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4300:69:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5363,"nodeType":"ExpressionStatement","src":"4300:69:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5364,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"4383:9:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":5365,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4396:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4383:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5375,"nodeType":"IfStatement","src":"4379:110:11","trueBody":{"id":5374,"nodeType":"Block","src":"4399:90:11","statements":[{"expression":{"argumentTypes":null,"id":5372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5367,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"4413:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5369,"indexExpression":{"argumentTypes":null,"id":5368,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4435:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4413:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5370,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"4413:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":5371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4474:4:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4413:65:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5373,"nodeType":"ExpressionStatement","src":"4413:65:11"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5378,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"4528:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4520:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4520:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5380,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4537:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":5381,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5336,"src":"4550:9:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5376,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5186,"src":"4503:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":5382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4503:57:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5383,"nodeType":"EmitStatement","src":"4498:62:11"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":5384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4577:4:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":5343,"id":5385,"nodeType":"Return","src":"4570:11:11"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the proposal in the voting machine\n@param _decision a parameter of the voting result, 1 yes and 2 is no.","id":5387,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":5339,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5334,"src":"4173:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":5340,"modifierName":{"argumentTypes":null,"id":5338,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"4155:17:11","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4155:30:11"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":5337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5334,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5387,"src":"4099:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5333,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4099:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5336,"name":"_decision","nodeType":"VariableDeclaration","scope":5387,"src":"4120:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5335,"name":"int256","nodeType":"ElementaryTypeName","src":"4120:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"4098:39:11"},"returnParameters":{"id":5343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5342,"name":"","nodeType":"VariableDeclaration","scope":5387,"src":"4198:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5341,"name":"bool","nodeType":"ElementaryTypeName","src":"4198:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4197:6:11"},"scope":6293,"src":"4074:514:11","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":5522,"nodeType":"Block","src":"5576:1532:11","statements":[{"assignments":[5407],"declarations":[{"constant":false,"id":5407,"name":"proposer","nodeType":"VariableDeclaration","scope":5522,"src":"5586:16:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5406,"name":"address","nodeType":"ElementaryTypeName","src":"5586:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":5409,"initialValue":{"argumentTypes":null,"id":5408,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5401,"src":"5605:9:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5586:28:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5410,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"5628:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5648:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5640:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5640:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5628:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5421,"nodeType":"IfStatement","src":"5624:74:11","trueBody":{"id":5420,"nodeType":"Block","src":"5652:46:11","statements":[{"expression":{"argumentTypes":null,"id":5418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5415,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"5666:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5416,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5677:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5677:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5666:21:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5419,"nodeType":"ExpressionStatement","src":"5666:21:11"}]}},{"expression":{"argumentTypes":null,"id":5432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5422,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"5707:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":5425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5742:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"id":5426,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5269,"src":"5745:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":5427,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"5757:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5429,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"5775:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5428,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5767:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5767:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":5423,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"5720:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":5424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"5720:21:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":5431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5720:63:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"5707:76:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5433,"nodeType":"ExpressionStatement","src":"5707:76:11"},{"assignments":[5435],"declarations":[{"constant":false,"id":5435,"name":"beneficiary","nodeType":"VariableDeclaration","scope":5522,"src":"5793:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5434,"name":"address","nodeType":"ElementaryTypeName","src":"5793:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"id":5437,"initialValue":{"argumentTypes":null,"id":5436,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5399,"src":"5823:12:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"5793:42:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5438,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"5849:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5872:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5864:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5864:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5849:25:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5449,"nodeType":"IfStatement","src":"5845:80:11","trueBody":{"id":5448,"nodeType":"Block","src":"5876:49:11","statements":[{"expression":{"argumentTypes":null,"id":5446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5443,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"5890:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5904:3:11","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5904:10:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5890:24:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":5447,"nodeType":"ExpressionStatement","src":"5890:24:11"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5450,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"5938:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5452,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"5961:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5953:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5453,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5953:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5938:28:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5463,"nodeType":"IfStatement","src":"5934:139:11","trueBody":{"id":5462,"nodeType":"Block","src":"5968:105:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5456,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"5990:17:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6011:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5990:22:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6567617469766520726570206368616e6765206e6f7420616c6c6f77656420666f7220746869732063617365","id":5459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6014:47:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cfbe5866a8e9ed607d9fdc2bdd037fb2aef34ed0c611e3ea1c91d9f3e2944dd6","typeString":"literal_string \"negative rep change not allowed for this case\""},"value":"negative rep change not allowed for this case"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cfbe5866a8e9ed607d9fdc2bdd037fb2aef34ed0c611e3ea1c91d9f3e2944dd6","typeString":"literal_string \"negative rep change not allowed for this case\""}],"id":5455,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5982:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5982:80:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5461,"nodeType":"ExpressionStatement","src":"5982:80:11"}]}},{"assignments":[5465],"declarations":[{"constant":false,"id":5465,"name":"proposal","nodeType":"VariableDeclaration","scope":5522,"src":"6083:36:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_memory_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5464,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"6083:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5485,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5467,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6176:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":5469,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":5468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6185:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6176:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5470,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"6219:17:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5471,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6261:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":5473,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":5472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6270:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6261:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5474,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"6301:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5475,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6350:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":5477,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":5476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6359:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6350:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5478,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"6388:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"30","id":5479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6436:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":5480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6473:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":5481,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6503:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"30","id":5482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6543:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":5483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6583:5:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5466,"name":"ContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5249,"src":"6122:20:11","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ContributionProposal_$5249_storage_ptr_$","typeString":"type(struct ContributionRewardExt.ContributionProposal storage pointer)"}},"id":5484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["nativeTokenReward","reputationChange","ethReward","externalToken","externalTokenReward","beneficiary","nativeTokenRewardLeft","reputationChangeLeft","ethRewardLeft","externalTokenRewardLeft","acceptedByVotingMachine"],"nodeType":"FunctionCall","src":"6122:477:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_memory","typeString":"struct ContributionRewardExt.ContributionProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6083:516:11"},{"expression":{"argumentTypes":null,"id":5490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5486,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"6609:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5488,"indexExpression":{"argumentTypes":null,"id":5487,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6631:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6609:33:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":5489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5465,"src":"6645:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_memory_ptr","typeString":"struct ContributionRewardExt.ContributionProposal memory"}},"src":"6609:44:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":5491,"nodeType":"ExpressionStatement","src":"6609:44:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5494,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"6714:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6706:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6706:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5496,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6735:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5498,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"6767:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":5497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6759:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6759:22:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":5500,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"6795:16:11","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":5501,"name":"_reputationChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5391,"src":"6825:17:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":5502,"name":"_rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5395,"src":"6856:8:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},{"argumentTypes":null,"id":5503,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5397,"src":"6878:14:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":5504,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5435,"src":"6906:11:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5505,"name":"proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5407,"src":"6931:8:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"},{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5492,"name":"NewContributionProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5178,"src":"6669:23:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_string_memory_ptr_$_t_int256_$_t_array$_t_uint256_$3_memory_ptr_$_t_contract$_IERC20_$21017_$_t_address_$_t_address_$returns$__$","typeString":"function (address,bytes32,address,string memory,int256,uint256[3] memory,contract IERC20,address,address)"}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6669:280:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5507,"nodeType":"EmitStatement","src":"6664:285:11"},{"expression":{"argumentTypes":null,"id":5520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5508,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6960:13:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":5513,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5510,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5267,"src":"6982:13:11","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":5509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6974:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6974:22:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6960:37:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":5514,"indexExpression":{"argumentTypes":null,"id":5512,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6998:10:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6960:49:11","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5516,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7051:5:11","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7051:12:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5518,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"7084:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5515,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"7012:12:11","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"7012:89:11","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6960:141:11","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":5521,"nodeType":"ExpressionStatement","src":"6960:141:11"}]},"documentation":"@dev Submit a proposal for a reward for a contribution:\n@param _descriptionHash A hash of the proposal's description\n@param _reputationChange - Amount of reputation change requested .Can be negative.\n@param _rewards rewards array:\n rewards[0] - Amount of tokens requested\n rewards[1] - Amount of ETH requested\n rewards[2] - Amount of external tokens\n@param _externalToken Address of external token, if reward is requested there\n@param _beneficiary Who gets the rewards. if equal to 0 the beneficiary will be msg.sender.\n@param _proposer proposer . if equal to 0 the proposer will be msg.sender.","id":5523,"implemented":true,"kind":"function","modifiers":[],"name":"proposeContributionReward","nodeType":"FunctionDefinition","parameters":{"id":5402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5389,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":5523,"src":"5329:30:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5388,"name":"string","nodeType":"ElementaryTypeName","src":"5329:6:11","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":5391,"name":"_reputationChange","nodeType":"VariableDeclaration","scope":5523,"src":"5369:24:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5390,"name":"int256","nodeType":"ElementaryTypeName","src":"5369:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":5395,"name":"_rewards","nodeType":"VariableDeclaration","scope":5523,"src":"5403:23:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":5392,"name":"uint","nodeType":"ElementaryTypeName","src":"5403:4:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5394,"length":{"argumentTypes":null,"hexValue":"33","id":5393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5408:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"5403:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":5397,"name":"_externalToken","nodeType":"VariableDeclaration","scope":5523,"src":"5436:21:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":5396,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"5436:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":5399,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5523,"src":"5467:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":5398,"name":"address","nodeType":"ElementaryTypeName","src":"5467:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":5401,"name":"_proposer","nodeType":"VariableDeclaration","scope":5523,"src":"5505:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5400,"name":"address","nodeType":"ElementaryTypeName","src":"5505:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5319:209:11"},"returnParameters":{"id":5405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5404,"name":"proposalId","nodeType":"VariableDeclaration","scope":5523,"src":"5552:18:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5403,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5552:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5551:20:11"},"scope":6293,"src":"5285:1823:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5648,"nodeType":"Block","src":"7376:1488:11","statements":[{"assignments":[5531],"declarations":[{"constant":false,"id":5531,"name":"proposal","nodeType":"VariableDeclaration","scope":5648,"src":"7386:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5530,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"7386:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5535,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5532,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"7426:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5534,"indexExpression":{"argumentTypes":null,"id":5533,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5525,"src":"7448:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7426:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7386:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5537,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7478:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"7478:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7512:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5536,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7470:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7470:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5541,"nodeType":"ExpressionStatement","src":"7470:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5542,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7800:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"7800:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5545,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"7832:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7824:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7824:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7800:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":5646,"nodeType":"Block","src":"8115:743:11","statements":[{"expression":{"argumentTypes":null,"id":5573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5570,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8129:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5571,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8142:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5572,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8142:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"8129:38:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5574,"nodeType":"ExpressionStatement","src":"8129:38:11"},{"expression":{"argumentTypes":null,"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5575,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8253:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8253:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8281:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8253:29:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5580,"nodeType":"ExpressionStatement","src":"8253:29:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5581,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8301:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8314:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8301:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5603,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8501:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8514:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8501:14:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5629,"nodeType":"IfStatement","src":"8497:199:11","trueBody":{"id":5628,"nodeType":"Block","src":"8517:179:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5614,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8624:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":5616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"-","prefix":true,"src":"8636:2:11","subExpression":{"argumentTypes":null,"hexValue":"31","id":5615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8637:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}}],"id":5617,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"8635:4:11","typeDescriptions":{"typeIdentifier":"t_rational_minus_1_by_1","typeString":"int_const -1"}},"src":"8624:15:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5613,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8619:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":5619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8619:21:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5620,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8642:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5621,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8642:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5623,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8672:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8664:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8664:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5608,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8588:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"8588:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8588:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5607,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"8560:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:43:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"8560:58:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8560:120:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5606,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"8535:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8535:146:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5627,"nodeType":"ExpressionStatement","src":"8535:146:11"}]}},"id":5630,"nodeType":"IfStatement","src":"8297:399:11","trueBody":{"id":5602,"nodeType":"Block","src":"8317:174:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5592,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8424:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5591,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8419:4:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint"},"id":5593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8419:16:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5594,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8437:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5595,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8437:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5597,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8467:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5596,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8459:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8459:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5586,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8388:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"8388:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8388:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5585,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"8360:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8360:43:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"8360:58:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8360:115:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5584,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"8335:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8335:141:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5601,"nodeType":"ExpressionStatement","src":"8335:141:11"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":5633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5631,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8713:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8727:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8713:15:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5645,"nodeType":"IfStatement","src":"8709:139:11","trueBody":{"id":5644,"nodeType":"Block","src":"8730:118:11","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5636,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"8778:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5635,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8770:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8770:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5638,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5525,"src":"8787:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8800:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"8800:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5641,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5528,"src":"8822:10:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5634,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"8753:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,bytes32,address,int256)"}},"id":5642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8753:80:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5643,"nodeType":"EmitStatement","src":"8748:85:11"}]}}]},"id":5647,"nodeType":"IfStatement","src":"7796:1062:11","trueBody":{"id":5569,"nodeType":"Block","src":"7839:270:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5548,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7857:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"7857:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7890:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7857:34:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5568,"nodeType":"IfStatement","src":"7853:246:11","trueBody":{"id":5567,"nodeType":"Block","src":"7893:206:11","statements":[{"expression":{"argumentTypes":null,"id":5559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5552,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"7971:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"7971:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5556,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8011:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8011:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8003:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":5558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8003:34:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7971:66:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5560,"nodeType":"ExpressionStatement","src":"7971:66:11"},{"expression":{"argumentTypes":null,"id":5565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5561,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5531,"src":"8055:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5563,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"8055:25:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8083:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8055:29:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":5566,"nodeType":"ExpressionStatement","src":"8055:29:11"}]}}]}}]},"documentation":"@dev RedeemReputation reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return reputation the redeemed reputation.","id":5649,"implemented":true,"kind":"function","modifiers":[],"name":"redeemReputation","nodeType":"FunctionDefinition","parameters":{"id":5526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5525,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5649,"src":"7321:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5524,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7321:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7320:21:11"},"returnParameters":{"id":5529,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5528,"name":"reputation","nodeType":"VariableDeclaration","scope":5649,"src":"7357:17:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":5527,"name":"int256","nodeType":"ElementaryTypeName","src":"7357:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"7356:19:11"},"scope":6293,"src":"7295:1569:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5731,"nodeType":"Block","src":"9128:865:11","statements":[{"assignments":[5657],"declarations":[{"constant":false,"id":5657,"name":"proposal","nodeType":"VariableDeclaration","scope":5731,"src":"9139:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5656,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"9139:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5661,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5658,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"9179:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5660,"indexExpression":{"argumentTypes":null,"id":5659,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5651,"src":"9201:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9179:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"9139:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5663,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9231:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"9231:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9265:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5662,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"9223:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5666,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9223:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5667,"nodeType":"ExpressionStatement","src":"9223:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5668,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9330:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"9330:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5671,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"9362:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9354:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9354:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"9330:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5688,"nodeType":"IfStatement","src":"9326:268:11","trueBody":{"id":5687,"nodeType":"Block","src":"9369:225:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5674,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9455:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"9455:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9489:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9455:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5686,"nodeType":"IfStatement","src":"9451:133:11","trueBody":{"id":5685,"nodeType":"Block","src":"9492:92:11","statements":[{"expression":{"argumentTypes":null,"id":5683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5678,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9510:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"9510:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5681,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9543:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5682,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"9543:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9510:59:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5684,"nodeType":"ExpressionStatement","src":"9510:59:11"}]}}]}},{"expression":{"argumentTypes":null,"id":5692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5689,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9603:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5690,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9612:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"9612:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9603:35:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5693,"nodeType":"ExpressionStatement","src":"9603:35:11"},{"expression":{"argumentTypes":null,"id":5698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5694,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9717:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"9717:26:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9746:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9717:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5699,"nodeType":"ExpressionStatement","src":"9717:30:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5700,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9761:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5701,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9770:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9761:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5730,"nodeType":"IfStatement","src":"9757:230:11","trueBody":{"id":5729,"nodeType":"Block","src":"9773:214:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5710,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9833:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5711,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9841:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5712,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"9841:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5714,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"9871:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9863:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9863:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5705,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"9806:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"9806:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9806:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5704,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"9795:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9795:26:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"9795:37:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9795:84:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"9787:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9787:93:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5718,"nodeType":"ExpressionStatement","src":"9787:93:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5721,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"9925:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9917:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9917:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5723,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5651,"src":"9934:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5724,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5657,"src":"9947:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"9947:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5726,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5654,"src":"9969:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5719,"name":"RedeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5216,"src":"9899:17:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":5727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9899:77:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5728,"nodeType":"EmitStatement","src":"9894:82:11"}]}}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return amount the redeemed nativeToken.","id":5732,"implemented":true,"kind":"function","modifiers":[],"name":"redeemNativeToken","nodeType":"FunctionDefinition","parameters":{"id":5652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5651,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5732,"src":"9076:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5650,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9076:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9075:21:11"},"returnParameters":{"id":5655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5654,"name":"amount","nodeType":"VariableDeclaration","scope":5732,"src":"9112:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5653,"name":"uint256","nodeType":"ElementaryTypeName","src":"9112:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9111:16:11"},"scope":6293,"src":"9049:944:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5812,"nodeType":"Block","src":"10241:740:11","statements":[{"assignments":[5740],"declarations":[{"constant":false,"id":5740,"name":"proposal","nodeType":"VariableDeclaration","scope":5812,"src":"10251:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5739,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"10251:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5744,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5741,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"10291:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5743,"indexExpression":{"argumentTypes":null,"id":5742,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"10313:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10291:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10251:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5746,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10343:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5747,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"10343:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10377:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10335:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10335:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5750,"nodeType":"ExpressionStatement","src":"10335:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5751,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10442:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5752,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"10442:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5754,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"10474:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10466:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10466:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"10442:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5771,"nodeType":"IfStatement","src":"10438:176:11","trueBody":{"id":5770,"nodeType":"Block","src":"10481:133:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5757,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10499:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"10499:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10525:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10499:27:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5769,"nodeType":"IfStatement","src":"10495:109:11","trueBody":{"id":5768,"nodeType":"Block","src":"10528:76:11","statements":[{"expression":{"argumentTypes":null,"id":5766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5761,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10546:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5763,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"10546:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5764,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10571:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"10571:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10546:43:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5767,"nodeType":"ExpressionStatement","src":"10546:43:11"}]}}]}},{"expression":{"argumentTypes":null,"id":5775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5772,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10623:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5773,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10632:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5774,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"10632:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10623:27:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5776,"nodeType":"ExpressionStatement","src":"10623:27:11"},{"expression":{"argumentTypes":null,"id":5781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5777,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10729:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5779,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"10729:18:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10750:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10729:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5782,"nodeType":"ExpressionStatement","src":"10729:22:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5783,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10765:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10774:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10765:10:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5811,"nodeType":"IfStatement","src":"10761:214:11","trueBody":{"id":5810,"nodeType":"Block","src":"10777:198:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5793,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10836:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5794,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10844:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5795,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"10844:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5796,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"10866:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5788,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"10810:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"10810:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10810:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5787,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"10799:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10799:26:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendEther","nodeType":"MemberAccess","referencedDeclaration":1503,"src":"10799:36:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_payable_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (uint256,address payable,contract Avatar) external returns (bool)"}},"id":5797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10799:74:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5786,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"10791:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10791:83:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5799,"nodeType":"ExpressionStatement","src":"10791:83:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5802,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"10913:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5801,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10905:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10905:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5804,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5734,"src":"10922:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5805,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5740,"src":"10935:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"10935:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5807,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5737,"src":"10957:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5800,"name":"RedeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"10893:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":5808,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10893:71:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5809,"nodeType":"EmitStatement","src":"10888:76:11"}]}}]},"documentation":"@dev RedeemEther reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return amount ether redeemed amount","id":5813,"implemented":true,"kind":"function","modifiers":[],"name":"redeemEther","nodeType":"FunctionDefinition","parameters":{"id":5735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5734,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5813,"src":"10189:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5733,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10189:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"10188:21:11"},"returnParameters":{"id":5738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5737,"name":"amount","nodeType":"VariableDeclaration","scope":5813,"src":"10225:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5736,"name":"uint256","nodeType":"ElementaryTypeName","src":"10225:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10224:16:11"},"scope":6293,"src":"10168:813:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5903,"nodeType":"Block","src":"11256:948:11","statements":[{"assignments":[5821],"declarations":[{"constant":false,"id":5821,"name":"proposal","nodeType":"VariableDeclaration","scope":5903,"src":"11266:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5820,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"11266:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5825,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5822,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"11306:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5824,"indexExpression":{"argumentTypes":null,"id":5823,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"11328:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11306:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11266:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5827,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11358:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5828,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"11358:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11392:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5826,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11350:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11350:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5831,"nodeType":"ExpressionStatement","src":"11350:92:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"id":5837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5832,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11458:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"11458:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5835,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21177,"src":"11490:4:11","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}],"id":5834,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11482:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11482:13:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"11458:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5852,"nodeType":"IfStatement","src":"11454:206:11","trueBody":{"id":5851,"nodeType":"Block","src":"11497:163:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5841,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5838,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11515:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"11515:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11551:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11515:37:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5850,"nodeType":"IfStatement","src":"11511:139:11","trueBody":{"id":5849,"nodeType":"Block","src":"11554:96:11","statements":[{"expression":{"argumentTypes":null,"id":5847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5842,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11572:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"11572:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5845,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11607:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5846,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11607:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11572:63:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5848,"nodeType":"ExpressionStatement","src":"11572:63:11"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":5858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5853,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11674:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5854,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"11674:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":5856,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11707:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5855,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"11700:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":5857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11700:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"11674:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5859,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11713:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5860,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11713:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5861,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11744:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11713:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11674:71:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5902,"nodeType":"IfStatement","src":"11670:528:11","trueBody":{"id":5901,"nodeType":"Block","src":"11747:451:11","statements":[{"expression":{"argumentTypes":null,"id":5867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":5864,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"11761:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5865,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11770:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5866,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11770:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:37:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5868,"nodeType":"ExpressionStatement","src":"11761:37:11"},{"expression":{"argumentTypes":null,"id":5873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5869,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"11885:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5871,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"11885:28:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":5872,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11916:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"11885:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5874,"nodeType":"ExpressionStatement","src":"11885:32:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5882,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"12027:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5883,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"12027:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5884,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"12051:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5885,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"12051:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5886,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"12073:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5887,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"12081:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5877,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"11976:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"11976:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11976:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5876,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"11952:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11952:39:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1534,"src":"11952:74:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,contract Avatar) external returns (bool)"}},"id":5888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11952:136:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5875,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"11931:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11931:158:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5890,"nodeType":"ExpressionStatement","src":"11931:158:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5893,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"12136:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12128:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12128:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5895,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5815,"src":"12145:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5896,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5821,"src":"12158:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":5238,"src":"12158:20:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5818,"src":"12180:6:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5891,"name":"RedeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"12108:19:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":5899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12108:79:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5900,"nodeType":"EmitStatement","src":"12103:84:11"}]}}]},"documentation":"@dev RedeemNativeToken reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@return amount the external token redeemed amount","id":5904,"implemented":true,"kind":"function","modifiers":[],"name":"redeemExternalToken","nodeType":"FunctionDefinition","parameters":{"id":5816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5815,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5904,"src":"11204:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5814,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11204:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11203:21:11"},"returnParameters":{"id":5819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5818,"name":"amount","nodeType":"VariableDeclaration","scope":5904,"src":"11240:14:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5817,"name":"uint256","nodeType":"ElementaryTypeName","src":"11240:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"11239:16:11"},"scope":6293,"src":"11175:1029:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":5969,"nodeType":"Block","src":"12680:786:11","statements":[{"assignments":[5916],"declarations":[{"constant":false,"id":5916,"name":"proposal","nodeType":"VariableDeclaration","scope":5969,"src":"12690:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5915,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"12690:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5920,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5917,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"12730:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5919,"indexExpression":{"argumentTypes":null,"id":5918,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5906,"src":"12752:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12730:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12690:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5922,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"12782:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5923,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"12782:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12816:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5921,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12774:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12774:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5926,"nodeType":"ExpressionStatement","src":"12774:92:11"},{"expression":{"argumentTypes":null,"id":5936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5927,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"13001:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"13001:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5933,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13075:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f72652072657075746174696f6e207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d52657075746174696f6e207761732063616c6c6564","id":5934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13096:98:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4106cd8ae6f9e53c34764e1e93682813218c98597a7148dc112dec488f9a4ea4","typeString":"literal_string \"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called\""},"value":"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_4106cd8ae6f9e53c34764e1e93682813218c98597a7148dc112dec488f9a4ea4","typeString":"literal_string \"cannot redeem more reputation than allocated for this proposal or no redeemReputation was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5930,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5916,"src":"13041:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChangeLeft","nodeType":"MemberAccess","referencedDeclaration":5242,"src":"13041:29:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"13041:33:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":5935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13041:154:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13001:194:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5937,"nodeType":"ExpressionStatement","src":"13001:194:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5945,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13273:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":5946,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"13286:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5948,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"13308:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13300:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13300:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":5940,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"13242:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":5941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"13242:12:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":5942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13242:14:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5939,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"13222:10:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":5943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:35:11","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":5944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"13222:50:11","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":5950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13222:94:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":5938,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"13205:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":5951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13205:112:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5952,"nodeType":"ExpressionStatement","src":"13205:112:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":5953,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13331:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":5954,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13346:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13331:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":5968,"nodeType":"IfStatement","src":"13327:133:11","trueBody":{"id":5967,"nodeType":"Block","src":"13349:111:11","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5958,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"13393:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":5957,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13385:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":5959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13385:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":5960,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5906,"src":"13402:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":5961,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5908,"src":"13415:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5963,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5910,"src":"13436:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5962,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13429:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":5964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13429:19:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":5956,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5196,"src":"13368:16:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_int256_$returns$__$","typeString":"function (address,bytes32,address,int256)"}},"id":5965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13368:81:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5966,"nodeType":"EmitStatement","src":"13363:86:11"}]}}]},"documentation":"@dev redeemReputationByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to mint reputation to.\n@param _reputation the reputation amount to mint\n note: burn reputation is not supported via this function","id":5970,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":5913,"modifierName":{"argumentTypes":null,"id":5912,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"12663:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"12663:12:11"}],"name":"redeemReputationByRewarder","nodeType":"FunctionDefinition","parameters":{"id":5911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5906,"name":"_proposalId","nodeType":"VariableDeclaration","scope":5970,"src":"12584:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5905,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12584:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5908,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":5970,"src":"12605:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5907,"name":"address","nodeType":"ElementaryTypeName","src":"12605:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5910,"name":"_reputation","nodeType":"VariableDeclaration","scope":5970,"src":"12627:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5909,"name":"uint256","nodeType":"ElementaryTypeName","src":"12627:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"12583:64:11"},"returnParameters":{"id":5914,"nodeType":"ParameterList","parameters":[],"src":"12680:0:11"},"scope":6293,"src":"12548:918:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6028,"nodeType":"Block","src":"13858:724:11","statements":[{"assignments":[5982],"declarations":[{"constant":false,"id":5982,"name":"proposal","nodeType":"VariableDeclaration","scope":6028,"src":"13868:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":5981,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"13868:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":5986,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":5983,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"13908:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":5985,"indexExpression":{"argumentTypes":null,"id":5984,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"13930:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13908:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13868:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5988,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"13960:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5989,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"13960:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":5990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13994:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":5987,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"13952:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":5991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13952:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5992,"nodeType":"ExpressionStatement","src":"13952:92:11"},{"expression":{"argumentTypes":null,"id":6002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"14180:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"14180:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":5999,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14256:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f726520746f6b656e73207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d4e6174697665546f6b656e207761732063616c6c6564","id":6000,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14273:95:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e03e47835f677f93493c59cb9d6e685d2cea3b8adccef49365356d4fd21121ce","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called\""},"value":"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_e03e47835f677f93493c59cb9d6e685d2cea3b8adccef49365356d4fd21121ce","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemNativeToken was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":5996,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5982,"src":"14221:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":5997,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5240,"src":"14221:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"14221:34:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":6001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14221:148:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14180:189:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6003,"nodeType":"ExpressionStatement","src":"14180:189:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6004,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14384:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":6005,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14394:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14384:11:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6027,"nodeType":"IfStatement","src":"14380:196:11","trueBody":{"id":6026,"nodeType":"Block","src":"14397:179:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6013,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"14454:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6014,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14468:7:11","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":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6008,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"14419:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeToken","nodeType":"MemberAccess","referencedDeclaration":73,"src":"14419:18:11","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_DAOToken_$1873_$","typeString":"function () view external returns (contract DAOToken)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14419:20:11","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}],"id":6007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14411:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14411:29:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"14411:42:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":6015,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14411:65:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6016,"nodeType":"ExpressionStatement","src":"14411:65:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6019,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"14521:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14513:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14513:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6021,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5972,"src":"14530:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6022,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5974,"src":"14543:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6023,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5976,"src":"14557:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6017,"name":"RedeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5216,"src":"14495:17:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":6024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14495:70:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6025,"nodeType":"EmitStatement","src":"14490:75:11"}]}}]},"documentation":"@dev redeemNativeTokenByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to mint tokens to.\n@param _amount the tokens amount to mint","id":6029,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":5979,"modifierName":{"argumentTypes":null,"id":5978,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"13841:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"13841:12:11"}],"name":"redeemNativeTokenByRewarder","nodeType":"FunctionDefinition","parameters":{"id":5977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5972,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6029,"src":"13766:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5971,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13766:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":5974,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6029,"src":"13787:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5973,"name":"address","nodeType":"ElementaryTypeName","src":"13787:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":5976,"name":"_amount","nodeType":"VariableDeclaration","scope":6029,"src":"13809:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5975,"name":"uint256","nodeType":"ElementaryTypeName","src":"13809:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"13765:60:11"},"returnParameters":{"id":5980,"nodeType":"ParameterList","parameters":[],"src":"13858:0:11"},"scope":6293,"src":"13729:853:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6083,"nodeType":"Block","src":"14960:647:11","statements":[{"assignments":[6041],"declarations":[{"constant":false,"id":6041,"name":"proposal","nodeType":"VariableDeclaration","scope":6083,"src":"14970:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":6040,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"14970:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":6045,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6042,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"15010:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6044,"indexExpression":{"argumentTypes":null,"id":6043,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"15032:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15010:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14970:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6047,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"15062:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"15062:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":6049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15096:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":6046,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"15054:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15054:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6051,"nodeType":"ExpressionStatement","src":"15054:92:11"},{"expression":{"argumentTypes":null,"id":6061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6052,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"15277:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"15277:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6058,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15329:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f7265204574686572207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d4574686572207761732063616c6c6564","id":6059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15346:88:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ef8d153f00bcb6e8a6a3a83ca3d7a260a0ef84504827a298a04fa858df81092b","typeString":"literal_string \"cannot redeem more Ether than allocated for this proposal or no redeemEther was called\""},"value":"cannot redeem more Ether than allocated for this proposal or no redeemEther was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_ef8d153f00bcb6e8a6a3a83ca3d7a260a0ef84504827a298a04fa858df81092b","typeString":"literal_string \"cannot redeem more Ether than allocated for this proposal or no redeemEther was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6055,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6041,"src":"15302:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5244,"src":"15302:22:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"15302:26:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":6060,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15302:133:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15277:158:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6062,"nodeType":"ExpressionStatement","src":"15277:158:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6063,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15450:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":6064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15460:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15450:11:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6082,"nodeType":"IfStatement","src":"15446:155:11","trueBody":{"id":6081,"nodeType":"Block","src":"15463:138:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6069,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15499:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":6066,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"15477:12:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15477:21:11","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":6070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15477:30:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6071,"nodeType":"ExpressionStatement","src":"15477:30:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6074,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"15546:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15538:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15538:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6076,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6031,"src":"15555:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6077,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6033,"src":"15568:12:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6078,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6035,"src":"15582:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6072,"name":"RedeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5206,"src":"15526:11:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":6079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15526:64:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6080,"nodeType":"EmitStatement","src":"15521:69:11"}]}}]},"documentation":"@dev redeemEtherByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to send eth to.\n@param _amount eth amount to send","id":6084,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6038,"modifierName":{"argumentTypes":null,"id":6037,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"14943:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"14943:12:11"}],"name":"redeemEtherByRewarder","nodeType":"FunctionDefinition","parameters":{"id":6036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6031,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6084,"src":"14860:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6030,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14860:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6033,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6084,"src":"14881:28:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":6032,"name":"address","nodeType":"ElementaryTypeName","src":"14881:15:11","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":6035,"name":"_amount","nodeType":"VariableDeclaration","scope":6084,"src":"14911:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6034,"name":"uint256","nodeType":"ElementaryTypeName","src":"14911:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"14859:68:11"},"returnParameters":{"id":6039,"nodeType":"ParameterList","parameters":[],"src":"14960:0:11"},"scope":6293,"src":"14829:778:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6149,"nodeType":"Block","src":"16022:814:11","statements":[{"assignments":[6096],"declarations":[{"constant":false,"id":6096,"name":"proposal","nodeType":"VariableDeclaration","scope":6149,"src":"16032:37:11","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"},"typeName":{"contractScope":null,"id":6095,"name":"ContributionProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":5249,"src":"16032:20:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal"}},"value":null,"visibility":"internal"}],"id":6100,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6097,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"16072:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6099,"indexExpression":{"argumentTypes":null,"id":6098,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"16094:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16072:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16032:74:11"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6102,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16124:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6103,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"16124:32:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20776173206e6f742061636365707465642062792074686520766f74696e67206d616368696e65","id":6104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16158:49:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""},"value":"proposal was not accepted by the voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2effd05128af1a95fac484943cc84bdfa2cb7c0368091dff6ebdcec587c09d2b","typeString":"literal_string \"proposal was not accepted by the voting machine\""}],"id":6101,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"16116:7:11","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16116:92:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6106,"nodeType":"ExpressionStatement","src":"16116:92:11"},{"expression":{"argumentTypes":null,"id":6116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6107,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16347:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"16347:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6113,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16427:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"63616e6e6f742072656465656d206d6f726520746f6b656e73207468616e20616c6c6f636174656420666f7220746869732070726f706f73616c206f72206e6f2072656465656d45787465726e616c546f6b656e207761732063616c6c6564","id":6114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16444:97:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7798e19365cc8ddfbdc5ed5aecdf843cc19b1429294722e3c02aa676008a0684","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called\""},"value":"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_7798e19365cc8ddfbdc5ed5aecdf843cc19b1429294722e3c02aa676008a0684","typeString":"literal_string \"cannot redeem more tokens than allocated for this proposal or no redeemExternalToken was called\""}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16390:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenRewardLeft","nodeType":"MemberAccess","referencedDeclaration":5246,"src":"16390:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"16390:36:11","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":6115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16390:152:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16347:195:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6117,"nodeType":"ExpressionStatement","src":"16347:195:11"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":6123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16557:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"16557:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6120,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"16583:6:11","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":6122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16583:9:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"16557:35:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6148,"nodeType":"IfStatement","src":"16553:277:11","trueBody":{"id":6147,"nodeType":"Block","src":"16594:236:11","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6124,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16612:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":6125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16622:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16612:11:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6146,"nodeType":"IfStatement","src":"16608:212:11","trueBody":{"id":6145,"nodeType":"Block","src":"16625:195:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6132,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"16688:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6133,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16702:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6128,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"16651:8:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage_ptr","typeString":"struct ContributionRewardExt.ContributionProposal storage pointer"}},"id":6129,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"16651:22:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":6127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16643:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:31:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6131,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"16643:44:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16643:67:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6135,"nodeType":"ExpressionStatement","src":"16643:67:11"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6138,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5271,"src":"16761:6:11","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6137,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16753:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16753:15:11","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6140,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6086,"src":"16770:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6141,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6088,"src":"16783:12:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6142,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6090,"src":"16797:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6136,"name":"RedeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5226,"src":"16733:19:11","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,address,uint256)"}},"id":6143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16733:72:11","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6144,"nodeType":"EmitStatement","src":"16728:77:11"}]}}]}}]},"documentation":"@dev redeemExternalTokenByRewarder redeem reward for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary the beneficiary to send the external token to.\n@param _amount the amount of external token to send","id":6150,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6093,"modifierName":{"argumentTypes":null,"id":6092,"name":"onlyRewarder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5261,"src":"16009:12:11","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"16009:12:11"}],"name":"redeemExternalTokenByRewarder","nodeType":"FunctionDefinition","parameters":{"id":6091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6086,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6150,"src":"15934:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6085,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15934:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6088,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6150,"src":"15955:20:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6087,"name":"address","nodeType":"ElementaryTypeName","src":"15955:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6090,"name":"_amount","nodeType":"VariableDeclaration","scope":6150,"src":"15977:15:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6089,"name":"uint256","nodeType":"ElementaryTypeName","src":"15977:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15933:60:11"},"returnParameters":{"id":6094,"nodeType":"ParameterList","parameters":[],"src":"16022:0:11"},"scope":6293,"src":"15895:941:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6211,"nodeType":"Block","src":"17460:425:11","statements":[{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6167,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17475:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6169,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":6168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17475:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6177,"nodeType":"IfStatement","src":"17471:95:11","trueBody":{"id":6176,"nodeType":"Block","src":"17493:73:11","statements":[{"expression":{"argumentTypes":null,"id":6174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6170,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6159,"src":"17507:16:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6172,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17543:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6171,"name":"redeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5649,"src":"17526:16:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_int256_$","typeString":"function (bytes32) returns (int256)"}},"id":6173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17526:29:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"17507:48:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":6175,"nodeType":"ExpressionStatement","src":"17507:48:11"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6178,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17580:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6180,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":6179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17594:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17580:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6188,"nodeType":"IfStatement","src":"17576:97:11","trueBody":{"id":6187,"nodeType":"Block","src":"17598:75:11","statements":[{"expression":{"argumentTypes":null,"id":6185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6181,"name":"nativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6161,"src":"17612:17:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6183,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17650:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6182,"name":"redeemNativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5732,"src":"17632:17:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":6184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17632:30:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17612:50:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6186,"nodeType":"ExpressionStatement","src":"17612:50:11"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6189,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17687:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6191,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17701:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17687:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6199,"nodeType":"IfStatement","src":"17683:85:11","trueBody":{"id":6198,"nodeType":"Block","src":"17705:63:11","statements":[{"expression":{"argumentTypes":null,"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6192,"name":"etherReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6163,"src":"17719:11:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6194,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17745:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6193,"name":"redeemEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5813,"src":"17733:11:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":6195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17733:24:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17719:38:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6197,"nodeType":"ExpressionStatement","src":"17719:38:11"}]}},{"condition":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6200,"name":"_whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6156,"src":"17782:13:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":6202,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":6201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17796:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17782:16:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6210,"nodeType":"IfStatement","src":"17778:101:11","trueBody":{"id":6209,"nodeType":"Block","src":"17800:79:11","statements":[{"expression":{"argumentTypes":null,"id":6207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6203,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"17814:19:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6205,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6152,"src":"17856:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6204,"name":"redeemExternalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5904,"src":"17836:19:11","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) returns (uint256)"}},"id":6206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17836:32:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17814:54:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6208,"nodeType":"ExpressionStatement","src":"17814:54:11"}]}}]},"documentation":"@dev redeem rewards for proposal\n@param _proposalId the ID of the voting in the voting machine\n@param _whatToRedeem whatToRedeem array of boolean values:\n whatToRedeem[0] - reputation\n whatToRedeem[1] - nativeTokenReward\n whatToRedeem[2] - Ether\n whatToRedeem[3] - ExternalToken\n@return result boolean array for each redeem type.","id":6212,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":6157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6152,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6212,"src":"17280:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17280:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6156,"name":"_whatToRedeem","nodeType":"VariableDeclaration","scope":6212,"src":"17301:28:11","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":6153,"name":"bool","nodeType":"ElementaryTypeName","src":"17301:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6155,"length":{"argumentTypes":null,"hexValue":"34","id":6154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17306:1:11","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"17301:7:11","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"src":"17279:51:11"},"returnParameters":{"id":6166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6159,"name":"reputationReward","nodeType":"VariableDeclaration","scope":6212,"src":"17354:23:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6158,"name":"int256","nodeType":"ElementaryTypeName","src":"17354:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6161,"name":"nativeTokenReward","nodeType":"VariableDeclaration","scope":6212,"src":"17379:25:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6160,"name":"uint256","nodeType":"ElementaryTypeName","src":"17379:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6163,"name":"etherReward","nodeType":"VariableDeclaration","scope":6212,"src":"17406:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6162,"name":"uint256","nodeType":"ElementaryTypeName","src":"17406:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6165,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":6212,"src":"17427:27:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6164,"name":"uint256","nodeType":"ElementaryTypeName","src":"17427:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17353:102:11"},"scope":6293,"src":"17264:621:11","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6224,"nodeType":"Block","src":"17972:68:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6219,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"17989:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6221,"indexExpression":{"argumentTypes":null,"id":6220,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6214,"src":"18011:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17989:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6222,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"ethReward","nodeType":"MemberAccess","referencedDeclaration":5232,"src":"17989:44:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6218,"id":6223,"nodeType":"Return","src":"17982:51:11"}]},"documentation":null,"id":6225,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalEthReward","nodeType":"FunctionDefinition","parameters":{"id":6215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6214,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6225,"src":"17921:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17921:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"17920:21:11"},"returnParameters":{"id":6218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6217,"name":"","nodeType":"VariableDeclaration","scope":6225,"src":"17963:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6216,"name":"uint256","nodeType":"ElementaryTypeName","src":"17963:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"17962:9:11"},"scope":6293,"src":"17891:149:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6237,"nodeType":"Block","src":"18137:78:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6232,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18154:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6234,"indexExpression":{"argumentTypes":null,"id":6233,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6227,"src":"18176:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18154:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalTokenReward","nodeType":"MemberAccess","referencedDeclaration":5236,"src":"18154:54:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6231,"id":6236,"nodeType":"Return","src":"18147:61:11"}]},"documentation":null,"id":6238,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalTokenReward","nodeType":"FunctionDefinition","parameters":{"id":6228,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6227,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6238,"src":"18086:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6226,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18086:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18085:21:11"},"returnParameters":{"id":6231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6230,"name":"","nodeType":"VariableDeclaration","scope":6238,"src":"18128:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6229,"name":"uint256","nodeType":"ElementaryTypeName","src":"18128:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18127:9:11"},"scope":6293,"src":"18046:169:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6252,"nodeType":"Block","src":"18306:81:11","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6246,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18331:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6248,"indexExpression":{"argumentTypes":null,"id":6247,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6240,"src":"18353:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18331:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"externalToken","nodeType":"MemberAccess","referencedDeclaration":5234,"src":"18331:48:11","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":6245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18323:7:11","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18323:57:11","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":6244,"id":6251,"nodeType":"Return","src":"18316:64:11"}]},"documentation":null,"id":6253,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalExternalToken","nodeType":"FunctionDefinition","parameters":{"id":6241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6240,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6253,"src":"18255:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6239,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18255:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18254:21:11"},"returnParameters":{"id":6244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6243,"name":"","nodeType":"VariableDeclaration","scope":6253,"src":"18297:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6242,"name":"address","nodeType":"ElementaryTypeName","src":"18297:7:11","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"18296:9:11"},"scope":6293,"src":"18221:166:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6265,"nodeType":"Block","src":"18480:75:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6260,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18497:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6262,"indexExpression":{"argumentTypes":null,"id":6261,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6255,"src":"18519:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18497:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputationChange","nodeType":"MemberAccess","referencedDeclaration":5230,"src":"18497:51:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"functionReturnParameters":6259,"id":6264,"nodeType":"Return","src":"18490:58:11"}]},"documentation":null,"id":6266,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalReputationReward","nodeType":"FunctionDefinition","parameters":{"id":6256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6255,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6266,"src":"18430:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6254,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18430:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18429:21:11"},"returnParameters":{"id":6259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6258,"name":"","nodeType":"VariableDeclaration","scope":6266,"src":"18472:6:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6257,"name":"int256","nodeType":"ElementaryTypeName","src":"18472:6:11","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"18471:8:11"},"scope":6293,"src":"18393:162:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6278,"nodeType":"Block","src":"18650:76:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6273,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18667:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6275,"indexExpression":{"argumentTypes":null,"id":6274,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6268,"src":"18689:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18667:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"nativeTokenReward","nodeType":"MemberAccess","referencedDeclaration":5228,"src":"18667:52:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":6272,"id":6277,"nodeType":"Return","src":"18660:59:11"}]},"documentation":null,"id":6279,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalNativeTokenReward","nodeType":"FunctionDefinition","parameters":{"id":6269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6268,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6279,"src":"18599:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6267,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18599:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18598:21:11"},"returnParameters":{"id":6272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6271,"name":"","nodeType":"VariableDeclaration","scope":6279,"src":"18641:7:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6270,"name":"uint256","nodeType":"ElementaryTypeName","src":"18641:7:11","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18640:9:11"},"scope":6293,"src":"18561:165:11","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":6291,"nodeType":"Block","src":"18824:82:11","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6286,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5265,"src":"18841:21:11","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ContributionProposal_$5249_storage_$","typeString":"mapping(bytes32 => struct ContributionRewardExt.ContributionProposal storage ref)"}},"id":6288,"indexExpression":{"argumentTypes":null,"id":6287,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6281,"src":"18863:11:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18841:34:11","typeDescriptions":{"typeIdentifier":"t_struct$_ContributionProposal_$5249_storage","typeString":"struct ContributionRewardExt.ContributionProposal storage ref"}},"id":6289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"acceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":5248,"src":"18841:58:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6285,"id":6290,"nodeType":"Return","src":"18834:65:11"}]},"documentation":null,"id":6292,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalAcceptedByVotingMachine","nodeType":"FunctionDefinition","parameters":{"id":6282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6281,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6292,"src":"18776:19:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18776:7:11","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"18775:21:11"},"returnParameters":{"id":6285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6284,"name":"","nodeType":"VariableDeclaration","scope":6292,"src":"18818:4:11","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6283,"name":"bool","nodeType":"ElementaryTypeName","src":"18818:4:11","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"18817:6:11"},"scope":6293,"src":"18732:174:11","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":6294,"src":"720:18189:11"}],"src":"0:18910:11"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.100Z","devdoc":{"details":"An agent can ask an organization to recognize a contribution and reward him with token, reputation, ether or any combination. This scheme extend the functionality of the ContributionReward scheme. It enable to assign a rewarder, which, after the contributionreward has been accepted, can then later distribute the assets as it would like.","methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_decision":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the proposal in the voting machine"}},"initialize(address,address,bytes32,address)":{"details":"initialize","params":{"_avatar":"the avatar to mint reputation from","_rewarder":"an address which allowed to redeem the contribution. if _rewarder is 0 this param is agnored.","_voteParams":"voting machine parameters","_votingMachine":"the voting machines address"}},"proposeContributionReward(string,int256,uint256[3],address,address,address)":{"details":"Submit a proposal for a reward for a contribution:","params":{"_beneficiary":"Who gets the rewards. if equal to 0 the beneficiary will be msg.sender.","_descriptionHash":"A hash of the proposal's description","_externalToken":"Address of external token, if reward is requested there","_proposer":"proposer . if equal to 0 the proposer will be msg.sender.","_reputationChange":"- Amount of reputation change requested .Can be negative.","_rewards":"rewards array: rewards[0] - Amount of tokens requested rewards[1] - Amount of ETH requested rewards[2] - Amount of external tokens"}},"redeem(bytes32,bool[4])":{"details":"redeem rewards for proposal","params":{"_proposalId":"the ID of the voting in the voting machine","_whatToRedeem":"whatToRedeem array of boolean values: whatToRedeem[0] - reputation whatToRedeem[1] - nativeTokenReward whatToRedeem[2] - Ether whatToRedeem[3] - ExternalToken"},"return":"result boolean array for each redeem type."},"redeemEther(bytes32)":{"details":"RedeemEther reward for proposal","params":{"_proposalId":"the ID of the voting in the voting machine"},"return":"amount ether redeemed amount"},"redeemEtherByRewarder(bytes32,address,uint256)":{"details":"redeemEtherByRewarder redeem reward for proposal","params":{"_amount":"eth amount to send","_beneficiary":"the beneficiary to send eth to.","_proposalId":"the ID of the voting in the voting machine"}},"redeemExternalToken(bytes32)":{"details":"RedeemNativeToken reward for proposal","params":{"_proposalId":"the ID of the voting in the voting machine"},"return":"amount the external token redeemed amount"},"redeemExternalTokenByRewarder(bytes32,address,uint256)":{"details":"redeemExternalTokenByRewarder redeem reward for proposal","params":{"_amount":"the amount of external token to send","_beneficiary":"the beneficiary to send the external token to.","_proposalId":"the ID of the voting in the voting machine"}},"redeemNativeToken(bytes32)":{"details":"RedeemNativeToken reward for proposal","params":{"_proposalId":"the ID of the voting in the voting machine"},"return":"amount the redeemed nativeToken."},"redeemNativeTokenByRewarder(bytes32,address,uint256)":{"details":"redeemNativeTokenByRewarder redeem reward for proposal","params":{"_amount":"the tokens amount to mint","_beneficiary":"the beneficiary to mint tokens to.","_proposalId":"the ID of the voting in the voting machine"}},"redeemReputation(bytes32)":{"details":"RedeemReputation reward for proposal","params":{"_proposalId":"the ID of the voting in the voting machine"},"return":"reputation the redeemed reputation."},"redeemReputationByRewarder(bytes32,address,uint256)":{"details":"redeemReputationByRewarder redeem reward for proposal","params":{"_beneficiary":"the beneficiary to mint reputation to.","_proposalId":"the ID of the voting in the voting machine","_reputation":"the reputation amount to mint note: burn reputation is not supported via this function"}}},"title":"A scheme for proposing and rewarding contributions to an organization"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Controller.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Controller.json new file mode 100644 index 00000000..ec76983d --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Controller.json @@ -0,0 +1 @@ +{"contractName":"Controller","abi":[{"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_globalConstraint","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_params","type":"bytes32"},{"indexed":false,"internalType":"enum GlobalConstraintInterface.CallPhase","name":"_when","type":"uint8"}],"name":"AddGlobalConstraint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BurnReputation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"MintReputation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"MintTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"address","name":"_scheme","type":"address"}],"name":"RegisterScheme","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_globalConstraint","type":"address"},{"indexed":false,"internalType":"uint256","name":"_index","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_isPre","type":"bool"}],"name":"RemoveGlobalConstraint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":true,"internalType":"address","name":"_scheme","type":"address"}],"name":"UnregisterScheme","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_oldController","type":"address"},{"indexed":false,"internalType":"address","name":"_newController","type":"address"}],"name":"UpgradeController","type":"event"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"globalConstraintsPost","outputs":[{"internalType":"address","name":"gcAddress","type":"address"},{"internalType":"bytes32","name":"params","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"globalConstraintsPre","outputs":[{"internalType":"address","name":"gcAddress","type":"address"},{"internalType":"bytes32","name":"params","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"globalConstraintsRegisterPost","outputs":[{"internalType":"bool","name":"isRegistered","type":"bool"},{"internalType":"uint256","name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"globalConstraintsRegisterPre","outputs":[{"internalType":"bool","name":"isRegistered","type":"bool"},{"internalType":"uint256","name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nativeReputation","outputs":[{"internalType":"contract Reputation","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"nativeToken","outputs":[{"internalType":"contract DAOToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newController","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"schemes","outputs":[{"internalType":"bytes32","name":"paramsHash","type":"bytes32"},{"internalType":"bytes4","name":"permissions","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"mintTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"bytes4","name":"_permissions","type":"bytes4"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"registerScheme","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"unregisterScheme","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_avatar","type":"address"}],"name":"unregisterSelf","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_globalConstraint","type":"address"},{"internalType":"bytes32","name":"_params","type":"bytes32"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"addGlobalConstraint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_globalConstraint","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"removeGlobalConstraint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newController","type":"address"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"upgradeController","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_contract","type":"address"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"genericCall","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amountInWei","type":"uint256"},{"internalType":"address payable","name":"_to","type":"address"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"sendEther","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"externalTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"externalTokenTransferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_externalToken","type":"address"},{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"externalTokenApproval","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_metaData","type":"string"},{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"metaData","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_avatar","type":"address"}],"name":"getNativeReputation","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"isSchemeRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"getSchemeParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"getSchemePermissions","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_globalConstraint","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"getGlobalConstraintParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_avatar","type":"address"}],"name":"globalConstraintsCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_globalConstraint","type":"address"},{"internalType":"address","name":"_avatar","type":"address"}],"name":"isGlobalConstraintRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum GlobalConstraintInterface.CallPhase\",\"name\":\"_when\",\"type\":\"uint8\"}],\"name\":\"AddGlobalConstraint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"BurnReputation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"MintReputation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"MintTokens\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"}],\"name\":\"RegisterScheme\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isPre\",\"type\":\"bool\"}],\"name\":\"RemoveGlobalConstraint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"}],\"name\":\"UnregisterScheme\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_oldController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newController\",\"type\":\"address\"}],\"name\":\"UpgradeController\",\"type\":\"event\"},{\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"addGlobalConstraint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"externalTokenApproval\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"externalTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_externalToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"externalTokenTransferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"genericCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"getGlobalConstraintParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getNativeReputation\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getSchemeParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"getSchemePermissions\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"globalConstraintsCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"globalConstraintsPost\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"gcAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"params\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"globalConstraintsPre\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"gcAddress\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"params\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"globalConstraintsRegisterPost\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"globalConstraintsRegisterPre\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"isGlobalConstraintRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"isSchemeRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metaData\",\"type\":\"string\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"metaData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"mintTokens\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nativeReputation\",\"outputs\":[{\"internalType\":\"contract Reputation\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"nativeToken\",\"outputs\":[{\"internalType\":\"contract DAOToken\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"newController\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"_permissions\",\"type\":\"bytes4\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"registerScheme\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_globalConstraint\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"removeGlobalConstraint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"schemes\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"permissions\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountInWei\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"sendEther\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"unregisterScheme\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"unregisterSelf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newController\",\"type\":\"address\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"upgradeController\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A controller controls the organizations tokens, reputation and avatar. It is subject to a set of schemes and constraints that determine its behavior. Each scheme has it own parameters and operation permissions.\",\"methods\":{\"addGlobalConstraint(address,bytes32,address)\":{\"details\":\"add or update Global Constraint\",\"params\":{\"_globalConstraint\":\"the address of the global constraint to be added.\",\"_params\":\"the constraint parameters hash.\"},\"return\":\"bool which represents a success\"},\"burnReputation(uint256,address,address)\":{\"details\":\"Burns `_amount` of reputation from `_from`\",\"params\":{\"_amount\":\"amount of reputation to burn\",\"_from\":\"The address that will lose the reputation\"},\"return\":\"bool which represents a success\"},\"externalTokenApproval(address,address,uint256,address)\":{\"details\":\"externalTokenApproval approve the spender address to spend a specified amount of tokens on behalf of msg.sender.\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_spender\":\"address\",\"_value\":\"the amount of ether (in Wei) which the approval is referring to.\"},\"return\":\"bool which represents a success\"},\"externalTokenTransfer(address,address,uint256,address)\":{\"details\":\"send some amount of arbitrary ERC20 Tokens\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_to\":\"address of the beneficiary\",\"_value\":\"the amount of ether (in Wei) to send\"},\"return\":\"bool which represents a success\"},\"externalTokenTransferFrom(address,address,address,uint256,address)\":{\"details\":\"transfer token \\\"from\\\" address \\\"to\\\" address One must to approve the amount of tokens which can be spend from the \\\"from\\\" account.This can be done using externalTokenApprove.\",\"params\":{\"_externalToken\":\"the address of the Token Contract\",\"_from\":\"address of the account to send from\",\"_to\":\"address of the beneficiary\",\"_value\":\"the amount of ether (in Wei) to send\"},\"return\":\"bool which represents a success\"},\"genericCall(address,bytes,address,uint256)\":{\"details\":\"perform a generic call to an arbitrary contract\",\"params\":{\"_avatar\":\"the controller's avatar address\",\"_contract\":\"the contract's address to call\",\"_data\":\"ABI-encoded contract call to call `_contract` address.\",\"_value\":\"value (ETH) to transfer with the transaction\"},\"return\":\"bool -success bytes - the return value of the called _contract's function.\"},\"getNativeReputation(address)\":{\"details\":\"getNativeReputation\",\"params\":{\"_avatar\":\"the organization avatar.\"},\"return\":\"organization native reputation\"},\"globalConstraintsCount(address)\":{\"details\":\"globalConstraintsCount return the global constraint pre and post count\",\"return\":\"uint256 globalConstraintsPre count.uint256 globalConstraintsPost count.\"},\"metaData(string,address)\":{\"details\":\"metaData emits an event with a string, should contain the hash of some meta data.\",\"params\":{\"_avatar\":\"Avatar\",\"_metaData\":\"a string representing a hash of the meta data\"},\"return\":\"bool which represents a success\"},\"mintReputation(uint256,address,address)\":{\"details\":\"Mint `_amount` of reputation that are assigned to `_to` .\",\"params\":{\"_amount\":\"amount of reputation to mint\",\"_to\":\"beneficiary address\"},\"return\":\"bool which represents a success\"},\"mintTokens(uint256,address,address)\":{\"details\":\"mint tokens .\",\"params\":{\"_amount\":\"amount of token to mint\",\"_beneficiary\":\"beneficiary address\"},\"return\":\"bool which represents a success\"},\"registerScheme(address,bytes32,bytes4,address)\":{\"details\":\"register a scheme\",\"params\":{\"_paramsHash\":\"a hashed configuration of the usage of the scheme\",\"_permissions\":\"the permissions the new scheme will have\",\"_scheme\":\"the address of the scheme\"},\"return\":\"bool which represents a success\"},\"removeGlobalConstraint(address,address)\":{\"details\":\"remove Global Constraint\",\"params\":{\"_globalConstraint\":\"the address of the global constraint to be remove.\"},\"return\":\"bool which represents a success\"},\"sendEther(uint256,address,address)\":{\"details\":\"send some ether\",\"params\":{\"_amountInWei\":\"the amount of ether (in Wei) to send\",\"_to\":\"address of the beneficiary\"},\"return\":\"bool which represents a success\"},\"unregisterScheme(address,address)\":{\"details\":\"unregister a scheme\",\"params\":{\"_scheme\":\"the address of the scheme\"},\"return\":\"bool which represents a success\"},\"unregisterSelf(address)\":{\"details\":\"unregister the caller's scheme\",\"return\":\"bool which represents a success\"},\"upgradeController(address,address)\":{\"details\":\"upgrade the Controller The function will trigger an event 'UpgradeController'.\",\"params\":{\"_newController\":\"the address of the new controller.\"},\"return\":\"bool which represents a success\"}},\"title\":\"Controller contract\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":\"Controller\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"373:20774:2:-;;;3016:318;8:9:-1;5:2;;;30:1;27;20:12;5:2;3016:318:2;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3016:318:2;3062:6;:16;;-1:-1:-1;;;;;;3062:16:2;-1:-1:-1;;;;;3062:16:2;;;;;;;;;;;3102:20;;;-1:-1:-1;;;3102:20:2;;;;:6;;;;;:18;;:20;;;;;3016:318;;3102:20;;;;;;;;:6;:20;;;5:2:-1;;;;30:1;27;20:12;5:2;3102:20:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3102:20:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3102:20:2;3088:11;:34;;-1:-1:-1;;;;;;3088:34:2;-1:-1:-1;;;;;3088:34:2;;;;;;-1:-1:-1;3151:6:2;:25;;;-1:-1:-1;;;3151:25:2;;;;:6;;;;;:23;;:25;;;;;3102:20;;3151:25;;;;;;;:6;:25;;;5:2:-1;;;;30:1;27;20:12;5:2;3151:25:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3151:25:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3151:25:2;3132:16;:44;;-1:-1:-1;;;;;;3132:44:2;-1:-1:-1;;;;;3132:44:2;;;;;;;;;3208:65;;;;;;;;-1:-1:-1;3208:65:2;;;-1:-1:-1;;;3151:25:2;3208:65;;;;;;3194:10;3186:19;;;;;;;;;;:87;;;;;;-1:-1:-1;3186:87:2;;;;;;-1:-1:-1;;3186:87:2;3253:18;3186:87;;;;;;;;;;;3288:39;;3194:10;;;;3288:39;;-1:-1:-1;3288:39:2;3016:318;373:20774;;;;;;","deployedSourceMap":"373:20774:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;373:20774:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3453:8;;;8230:638;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;8230:638:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1967:78;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1967:78:2;-1:-1:-1;;;;;1967:78:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;19304:188;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19304:188:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1538:28;;;:::i;:::-;;;;-1:-1:-1;;;;;1538:28:2;;;;;;;;;;;;;;14002:918;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;14002:918:2;;;;;;;;;;:::i;1663:46::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1663:46:2;;:::i;:::-;;;;-1:-1:-1;;;;;1663:46:2;;;;;;;;;;;;;;;;;;;;;;11367:2405;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11367:2405:2;;;;;;;;;;:::i;18002:347::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;18002:347:2;;;;;;;;;;;;;;;;;;;;;;:::i;1346:20::-;;;:::i;15862:274::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15862:274:2;;;-1:-1:-1;;;;;15862:274:2;;;;;;;;;;;;:::i;6365:328::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6365:328:2;;;-1:-1:-1;;;;;6365:328:2;;;;;;;;;;;;:::i;8980:298::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8980:298:2;-1:-1:-1;;;;;8980:298:2;;:::i;5852:324::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5852:324:2;;;-1:-1:-1;;;;;5852:324:2;;;;;;;;;;;;:::i;2160:79::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2160:79:2;-1:-1:-1;;;;;2160:79:2;;:::i;20405:229::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20405:229:2;-1:-1:-1;;;;;20405:229:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1405:34;;;:::i;18978:149::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18978:149:2;-1:-1:-1;;;;;18978:149:2;;:::i;19498:189::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19498:189:2;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;;19498:189:2;;;;;;;;;;;;;;;19133:165;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19133:165:2;;;;;;;;;;:::i;16420:329::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;16420:329:2;;;;;;;;;;;;;;;;;;;;;;:::i;18606:225::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18606:225:2;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;18606:225:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;18606:225:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;18606:225:2;;-1:-1:-1;18606:225:2;-1:-1:-1;18606:225:2;-1:-1:-1;;;;;18606:225:2;;:::i;15351:317::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;15351:317:2;;-1:-1:-1;;;;;15351:317:2;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;15351:317:2;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;15351:317:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;15351:317:2;;-1:-1:-1;15351:317:2;-1:-1:-1;15351:317:2;;-1:-1:-1;;;;;15351:317:2;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15351:317:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1300:39;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1300:39:2;-1:-1:-1;;;;;1300:39:2;;:::i;:::-;;;;;;;-1:-1:-1;;;;;;1300:39:2;;;;;;;;;;;;;;;;;19693:509;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19693:509:2;;;;;;;;;;:::i;1372:27::-;;;:::i;9527:1601::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9527:1601:2;;;;;;;;;;;;;;;;;:::i;6970:1111::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;6970:1111:2;;;;;;;;;;-1:-1:-1;;;;;;6970:1111:2;;;;;;;;;;;:::i;1807:47::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1807:47:2;;:::i;5297:318::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5297:318:2;;;-1:-1:-1;;;;;5297:318:2;;;;;;;;;;;;:::i;20640:340::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;20640:340:2;;;;;;;;;;:::i;17239:384::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;17239:384:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;8230:638::-;3697:10;8418:4;3689:19;;;;;;;;;;:31;;;3743:18;3689:31;-1:-1:-1;;;3689:50:2;;;:72;3681:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;8397:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;8482:28;8502:7;8482:19;:28::i;:::-;8478:80;;8542:5;8535:12;;;;8478:80;8696:10;8732:1;8688:19;;;;;;;;;;;:31;;;;;-1:-1:-1;;;;;8657:16:2;;;;;;;;:28;;;;8725:9;8688:31;;;8687:32;8657:28;;:63;-1:-1:-1;;;8637:84:2;:97;8629:106;;;;;;8770:37;;-1:-1:-1;;;;;8770:37:2;;;8787:10;;8770:37;;;;;-1:-1:-1;;;;;8824:16:2;;:7;:16;;;;;;;;;;8817:23;;;-1:-1:-1;8817:23:2;;;;;-1:-1:-1;;8817:23:2;;;-1:-1:-1;;5060:1:2;4702;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;;3772:1;;8230:638;;;;:::o;1967:78::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;19304:188::-;5042:6;;19428:7;;19398;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;-1:-1:-1;;;;;19458:16:2;;:7;:16;;;;;;;;;;:27;;-1:-1:-1;5060:1:2;19304:188;;;;;:::o;1538:28::-;;;-1:-1:-1;;;;;1538:28:2;;:::o;14002:918::-;3997:10;14154:4;3989:19;;;;;;;;;;:31;;;4043:18;3989:31;-1:-1:-1;;;3989:50:2;;;:72;3981:81;;;;;;5042:6;;14132:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;14182:13;;-1:-1:-1;;;;;14182:13:2;:27;14174:36;;;;;;-1:-1:-1;;;;;14283:28:2;;14275:37;;;;;;14322:13;:30;;-1:-1:-1;;;;;;14322:30:2;-1:-1:-1;;;;;14322:30:2;;;;;;;;-1:-1:-1;14362:6:2;:40;;;-1:-1:-1;;;14362:40:2;;;;;;;;;;;:6;;;-1:-1:-1;;14362:40:2;;;;;-1:-1:-1;;14362:40:2;;;;;;;-1:-1:-1;14362:6:2;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;14362:40:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;14420:6:2;:14;;;-1:-1:-1;;;14420:14:2;;;;-1:-1:-1;;;;;14420:32:2;;;;-1:-1:-1;14420:6:2;;;;-1:-1:-1;14420:12:2;;:14;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;14420:14:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14420:14:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14420:14:2;-1:-1:-1;;;;;14420:32:2;;14412:41;;;;;;14467:11;;:19;;;-1:-1:-1;;;14467:19:2;;;;14498:4;;-1:-1:-1;;;;;14467:11:2;;-1:-1:-1;;14467:19:2;;;;;;;;;;;;;;:11;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;14467:19:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14467:19:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14467:19:2;-1:-1:-1;;;;;14467:36:2;;14463:172;;;14519:11;;:45;;;-1:-1:-1;;;14519:45:2;;-1:-1:-1;;;;;14519:45:2;;;;;;;;;:11;;;;;-1:-1:-1;;14519:45:2;;;;;-1:-1:-1;;14519:45:2;;;;;;;-1:-1:-1;14519:11:2;:45;;;5:2:-1;;;;30:1;27;20:12;5:2;14519:45:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14586:11:2;;:19;;;-1:-1:-1;;;14586:19:2;;;;-1:-1:-1;;;;;14586:37:2;;;;-1:-1:-1;14586:11:2;;;;-1:-1:-1;14586:17:2;;:19;;;;;;;;;;;;;;:11;:19;;;5:2:-1;;;;30:1;27;20:12;5:2;14586:19:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14586:19:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14586:19:2;-1:-1:-1;;;;;14586:37:2;;14578:46;;;;;;14648:16;;:24;;;-1:-1:-1;;;14648:24:2;;;;14684:4;;-1:-1:-1;;;;;14648:16:2;;-1:-1:-1;;14648:24:2;;;;;;;;;;;;;;:16;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;14648:24:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14648:24:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14648:24:2;-1:-1:-1;;;;;14648:41:2;;14644:187;;;14705:16;;:50;;;-1:-1:-1;;;14705:50:2;;-1:-1:-1;;;;;14705:50:2;;;;;;;;;:16;;;;;-1:-1:-1;;14705:50:2;;;;;-1:-1:-1;;14705:50:2;;;;;;;-1:-1:-1;14705:16:2;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;14705:50:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;14777:16:2;;:24;;;-1:-1:-1;;;14777:24:2;;;;-1:-1:-1;;;;;14777:42:2;;;;-1:-1:-1;14777:16:2;;;;-1:-1:-1;14777:22:2;;:24;;;;;;;;;;;;;;:16;:24;;;5:2:-1;;;;30:1;27;20:12;5:2;14777:24:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14777:24:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14777:24:2;-1:-1:-1;;;;;14777:42:2;;14769:51;;;;;;14878:13;;14845:47;;;-1:-1:-1;;;;;14878:13:2;;;14845:47;;;14871:4;;14845:47;;;;;;;;;;-1:-1:-1;14909:4:2;;14002:918;-1:-1:-1;;;14002:918:2:o;1663:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1663:46:2;;;;-1:-1:-1;1663:46:2;:::o;11367:2405::-;3851:10;11528:4;3843:19;;;;;;;;;;:31;;;3897:18;3843:31;-1:-1:-1;;;3843:50:2;;;:72;3835:81;;;;;;5042:6;;11507:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;11548:56;;:::i;:::-;11614:40;;:::i;:::-;11664;11733:17;-1:-1:-1;;;;;11707:49:2;;:51;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11707:51:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11707:51:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11707:51:2;;-1:-1:-1;11768:11:2;;11803:4;:47;;;;;;;;;11802:120;;;-1:-1:-1;11875:46:2;11867:4;:54;;;;;;;;;11802:120;11798:852;;;-1:-1:-1;;;;;11965:47:2;;;;;;:28;:47;;;;;;;;;11938:74;;;;;;;;;;;;;;;;;-1:-1:-1;11938:74:2;;;;;;;;;;;;;-1:-1:-1;12026:614:2;;12152:1;12124:20;:27;;;;:29;12091:24;:30;;;:62;12087:389;;;12196:20;12217:27;;-1:-1:-1;;12217:29:2;;;12196:51;;;;;;;;;;;;;;;12177:70;;;;;;;;;12196:51;;;;;;12177:70;;-1:-1:-1;;;;;12177:70:2;;;-1:-1:-1;12177:70:2;;;;;;12290:30;;;;12269:20;:52;;12177:70;;-1:-1:-1;12177:70:2;;12269:20;;12290:30;12269:52;;;;;;;;;;;;;;:71;;:52;;;;;;:71;;-1:-1:-1;;;;;;12269:71:2;-1:-1:-1;;;;;12269:71:2;;;;;;;;;;-1:-1:-1;12269:71:2;;;;12427:30;;;;12391:26;;12362:56;;;;;:28;:56;;;;;;:62;;;:95;12087:389;12493:20;:29;;;;;-1:-1:-1;;12493:29:2;;;:::i;:::-;-1:-1:-1;;;;;;;12547:47:2;;;;;;:28;:47;;;;;12540:54;;-1:-1:-1;;12540:54:2;;;-1:-1:-1;12540:54:2;;;;;;;12026:614;12672:40;12664:4;:48;;;;;;;;;12663:121;;;-1:-1:-1;12737:46:2;12729:4;:54;;;;;;;;;12663:121;12659:861;;;-1:-1:-1;;;;;12827:48:2;;;;;;:29;:48;;;;;;;;;12800:75;;;;;;;;;;;;;;;;;-1:-1:-1;12800:75:2;;;;;;;;;;;;;-1:-1:-1;12889:621:2;;13016:1;12987:21;:28;;;;:30;12954:24;:30;;;:63;12950:394;;;13060:21;13082:28;;-1:-1:-1;;13082:30:2;;;13060:53;;;;;;;;;;;;;;;13041:72;;;;;;;;;13060:53;;;;;;13041:72;;-1:-1:-1;;;;;13041:72:2;;;-1:-1:-1;13041:72:2;;;;;;13157:30;;;;13135:21;:53;;13041:72;;-1:-1:-1;13041:72:2;;13135:21;;13157:30;13135:53;;;;;;;;;;;;;;:72;;:53;;;;;;:72;;-1:-1:-1;;;;;;13135:72:2;-1:-1:-1;;;;;13135:72:2;;;;;;;;;;-1:-1:-1;13135:72:2;;;;13295:30;;;;13259:26;;13229:57;;;;;:29;:57;;;;;;:63;;;:96;12950:394;13361:21;:30;;;;;-1:-1:-1;;13361:30:2;;;:::i;:::-;-1:-1:-1;;;;;;;13416:48:2;;;;;;:29;:48;;;;;13409:55;;-1:-1:-1;;13409:55:2;;;-1:-1:-1;13409:55:2;;;;;;;12889:621;13533:6;13529:214;;;13627:30;;;;-1:-1:-1;;;;;13560:172:2;;;;;13679:39;13671:4;:47;;;;;;;;13560:172;;;;;;13671:47;;13560:172;;;;;;;;;;;;;13529:214;13759:6;11367:2405;-1:-1:-1;;;;;;;11367:2405:2:o;18002:347::-;3548:10;18253:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;4379:580;4436:11;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;18231:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;18280:6;;:62;;;-1:-1:-1;;;18280:62:2;;-1:-1:-1;;;;;18280:62:2;;;;;;;;;;;;;;;;;;;;;;:6;;;;;-1:-1:-1;;18280:62:2;;;;;;;;;;;;;;-1:-1:-1;18280:6:2;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;18280:62:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18280:62:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18280:62:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;;3623:1;;18002:347;;;;;;:::o;1346:20::-;;;-1:-1:-1;;;;;1346:20:2;;:::o;15862:274::-;3548:10;16067:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;16045:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;16094:6;;:35;;;-1:-1:-1;;;16094:35:2;;;;;;;;-1:-1:-1;;;;;16094:35:2;;;;;;;;;:6;;;;;:16;;:35;;;;;;;;;;;;;;-1:-1:-1;16094:6:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;16094:35:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16094:35:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16094:35:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;;3623:1;;15862:274;;;;;:::o;6365:328::-;3548:10;6560:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;6539:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;6585:45;;;;;;;;-1:-1:-1;;;;;6585:45:2;;;6596:10;;6585:45;;;;;;;;;6647:11;;:39;;;-1:-1:-1;;;6647:39:2;;-1:-1:-1;;;;;6647:39:2;;;;;;;;;;;;;;;:11;;;;;-1:-1:-1;;6647:39:2;;;;;;;;;;;;;;-1:-1:-1;6647:11:2;:39;;;5:2:-1;;;;30:1;27;20:12;5:2;6647:39:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6647:39:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6647:39:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;8980:298;5042:6;;9061:4;;9044:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;9081:31;9101:10;9081:19;:31::i;:::-;9077:83;;9144:5;9137:12;;;;9077:83;9184:10;9176:7;:19;;;;;;;;;;;9169:26;;;;;;;-1:-1:-1;;9169:26:2;;;9210:40;9184:10;;9210:40;;;9267:4;9260:11;;5060:1;8980:298;;;;:::o;5852:324::-;3548:10;6048:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;6027:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;6073:42;;;;;;;;-1:-1:-1;;;;;6073:42:2;;;6088:10;;6073:42;;;;;;;;;6132:16;;:37;;;-1:-1:-1;;;6132:37:2;;-1:-1:-1;;;;;6132:37:2;;;;;;;;;;;;;;;:16;;;;;:21;;:37;;;;;;;;;;;;;;-1:-1:-1;6132:16:2;:37;;;5:2:-1;;;;30:1;27;20:12;5:2;6132:37:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6132:37:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6132:37:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;2160:79;;;;;;;;;;;;;;;;;;;;;;;;:::o;20405:229::-;5042:6;;20531:4;;;;20493:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;20569:20;:27;20598:21;:28;20569:27;;-1:-1:-1;20598:28:2;-1:-1:-1;20405:229:2;;;;:::o;1405:34::-;;;-1:-1:-1;;;;;1405:34:2;;:::o;18978:149::-;5042:6;;19069:7;;19047;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;-1:-1:-1;;19103:16:2;;-1:-1:-1;;;;;19103:16:2;;;-1:-1:-1;18978:149:2:o;19498:189::-;5042:6;;19623;;19593:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;-1:-1:-1;;;;;;;;19652:16:2;:7;:16;;;;;;;;;;-1:-1:-1;19652:28:2;;;;;19498:189::o;19133:165::-;5042:6;;19240:4;;19218:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;19263:28;19283:7;19263:19;:28::i;:::-;19256:35;19133:165;-1:-1:-1;;;;19133:165:2:o;16420:329::-;3548:10;16658:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;16636:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;16685:6;;:57;;;-1:-1:-1;;;16685:57:2;;-1:-1:-1;;;;;16685:57:2;;;;;;;;;;;;;;;;;;;;;;:6;;;;;-1:-1:-1;;16685:57:2;;;;;;;;;;;;;;-1:-1:-1;16685:6:2;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;16685:57:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16685:57:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16685:57:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;18606:225;4290:10;18767:4;4282:19;;;;;;;;;;:31;;;4336:18;4282:31;-1:-1:-1;;;4282:50:2;;;:72;4274:81;;;;;;5042:6;;18741:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;18798:6;;:26;;-1:-1:-1;;;18798:26:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;18798:6:2;;;;:15;;18814:9;;18798:26;;;;;;18814:9;18798:26;;18814:9;18798:26;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;18798::2;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18798:26:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18798:26:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18798:26:2;;18606:225;-1:-1:-1;;;;;18606:225:2:o;15351:317::-;4145:10;15576:4;4137:19;;;;;;;;;;:31;;;15582:12;;4191:18;4137:31;-1:-1:-1;;;4137:50:2;;;:72;4129:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;15553:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;15617:6;;:44;;-1:-1:-1;;;15617:44:2;;-1:-1:-1;;;;;15617:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:18;;:44;;15647:5;;15617:44;;;;;;;15647:5;15617:44;;15647:5;15617:44;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;15617:44:2;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15617:44:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15617:44:2;;;;;;39:16:-1;36:1;17:17;2:54;101:4;15617:44:2;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;15617:44:2;;;;;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;15617:44:2;;420:4:-1;411:14;;;;15617:44:2;;;;;411:14:-1;15617:44:2;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;15617:44:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15610:51;;;;4702:1;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;;4220:1;;15351:317;;;;;;;;:::o;1300:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;19693:509::-;19790:7;19810:40;;:::i;:::-;-1:-1:-1;;;;;;19853:47:2;;;;;;:28;:47;;;;;;;;;19810:90;;;;;;;;;;;;;;;;;-1:-1:-1;19810:90:2;;;;;;;;;;;19911:102;;19959:20;19980:8;:14;;;19959:36;;;;;;;;;;;;;;;;;;:43;;;19952:50;;;;;19911:102;-1:-1:-1;;;;;;20034:48:2;;;;;;:29;:48;;;;;;;;;20023:59;;;;;;;;;;;;;;;;;-1:-1:-1;20023:59:2;;;;;;;;;;;20093:103;;20141:21;20163:8;:14;;;20141:37;;;;;;;19693:509;;;;;:::o;1372:27::-;;;-1:-1:-1;;;;;1372:27:2;;:::o;9527:1601::-;3851:10;9701:4;3843:19;;;;;;;;;;:31;;;3897:18;3843:31;-1:-1:-1;;;3843:50:2;;;:72;3835:81;;;;;;5042:6;;9680:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;9721:40;9790:17;-1:-1:-1;;;;;9764:49:2;;:51;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9764:51:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9764:51:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9764:51:2;;-1:-1:-1;9838:39:2;9830:4;:47;;;;;;;;;9829:120;;;-1:-1:-1;9902:46:2;9894:4;:54;;;;;;;;;9829:120;9825:596;;;-1:-1:-1;;;;;9970:47:2;;;;;;:28;:47;;;;;:60;;;9965:446;;10076:44;;;;;;;;-1:-1:-1;;;;;10076:44:2;;;;;;;;;;;;;10050:20;27:10:-1;;-1:-1;23:18;;;45:23;;-1:-1;10050:71:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10050:71:2;;;;;;;;;;;;;;;;;;;10205:61;;;;;;;;;;10236:27;;-1:-1:-1;;10236:29:2;10205:61;;;;;;10139:47;;;:28;:47;;;;;;;:127;;;;-1:-1:-1;;10139:127:2;;;;;;;;;;;;9965:446;;;-1:-1:-1;;;;;10325:47:2;;;;;;:28;:47;;;;;-1:-1:-1;10325:53:2;;10304:20;:75;;10389:7;;10325:53;10304:75;;;;;;;;;;;;;;;;:82;;:92;;;;9965:446;10443:40;10435:4;:48;;;;;;;;;10434:121;;;-1:-1:-1;10508:46:2;10500:4;:54;;;;;;;;;10434:121;10430:603;;;-1:-1:-1;;;;;10576:48:2;;;;;;:29;:48;;;;;:61;;;10571:452;;10684:44;;;;;;;;-1:-1:-1;;;;;10684:44:2;;;;;;;;;;;;;10657:21;27:10:-1;;-1:-1;23:18;;;45:23;;-1:-1;10657:72:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10657:72:2;;;;;;;;;;;;;;;;;;;10814:62;;;;;;;;;;10845:28;;-1:-1:-1;;10845:30:2;10814:62;;;;;;10747:48;;;:29;:48;;;;;;;:129;;;;-1:-1:-1;;10747:129:2;;;;;;;;;;;;10571:452;;;-1:-1:-1;;;;;10936:48:2;;;;;;:29;:48;;;;;-1:-1:-1;10936:54:2;;10914:21;:77;;11001:7;;10936:54;10914:77;;;;;;;;;;;;;;;;:84;;:94;;;;10571:452;11067:17;-1:-1:-1;;;;;11047:53:2;;11086:7;11095:4;11047:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11117:4:2;;9527:1601;-1:-1:-1;;;;;9527:1601:2:o;6970:1111::-;3697:10;7195:4;3689:19;;;;;;;;;;:31;;;3743:18;3689:31;-1:-1:-1;;;3689:50:2;;;:72;3681:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;7174:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;7216:20;;:::i;:::-;-1:-1:-1;;;;;;7239:16:2;;:7;:16;;;;;;;;;;;7216:39;;;;;;;;;;;-1:-1:-1;7216:39:2;;;;-1:-1:-1;;;;;;;7216:39:2;;;;;;;;;;7617:10;7609:19;;;;;;;;;;:31;;7587:18;;7574:31;;7609;;;7608:32;7554:87;-1:-1:-1;;;7554:87:2;:100;7546:109;;;;;;7807:10;7843:1;7799:19;;;;;;;;;;;:31;;;7778:18;;;;-1:-1:-1;7799:31:2;;;;7798:32;7778:53;-1:-1:-1;;;7758:74:2;:87;7750:96;;;;;;-1:-1:-1;;;;;7890:16:2;;:7;:16;;;;;;;;;;;:41;;;-1:-1:-1;7941:28:2;:62;;-1:-1:-1;;7941:62:2;-1:-1:-1;;;7972:31:2;;-1:-1:-1;7941:62:2;;;;8018:35;8033:10;;8018:35;;;8070:4;8063:11;;;4702:1;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;1807:47;;;;;;;;;;5297:318;3548:10;5491:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;-1:-1:-1;;;4436:11:2;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;5470:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;5516:40;;;;;;;;-1:-1:-1;;;;;5516:40:2;;;5531:10;;5516:40;;;;;;;;;5573:16;;:35;;;-1:-1:-1;;;5573:35:2;;-1:-1:-1;;;;;5573:35:2;;;;;;;;;;;;;;;:16;;;;;-1:-1:-1;;5573:35:2;;;;;;;;;;;;;;-1:-1:-1;5573:16:2;:35;;;5:2:-1;;;;30:1;27;20:12;5:2;5573:35:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5573:35:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5573:35:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;20640:340;5042:6;;20799:4;;20761:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;-1:-1:-1;;;;;20831:47:2;;;;;;:28;:47;;;;;:60;;;;:141;;-1:-1:-1;;;;;;;;;20911:48:2;;;;;:29;:48;;;;;:61;;;;20640:340::o;17239:384::-;3548:10;17521:4;3540:19;;;;;;;;;;3601:10;3540:31;;3594:18;3540:31;-1:-1:-1;;;3540:50:2;;;:72;3532:81;;;;;;4379:580;4436:11;4457:236;4477:20;:27;4471:33;;4457:236;;;4575:20;4596:3;4575:25;;;;;;;;;;;;;;;;;;;;;:35;4642:20;:25;;-1:-1:-1;;;;;4575:35:2;;;;4548:81;;4630:10;;4663:3;;4642:25;;;;;;;;;;;;;;;;:32;;;4676:4;4548:133;;;;;;;;;;;;;-1:-1:-1;;;;;4548:133:2;-1:-1:-1;;;;;4548:133:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4548:133:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4548:133:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4548:133:2;4527:155;;;;;;4506:5;;4457:236;;;5042:6;;17499:7;;-1:-1:-1;;;;;5023:26:2;;;5042:6;;5023:26;5015:35;;;;;;17548:6;;:68;;;-1:-1:-1;;;17548:68:2;;-1:-1:-1;;;;;17548:68:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:6;;;;;:32;;:68;;;;;;;;;;;;;;-1:-1:-1;17548:6:2;:68;;;5:2:-1;;;;30:1;27;20:12;5:2;17548:68:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17548:68:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17548:68:2;;-1:-1:-1;4702:1:2;4724;4718:7;;4713:240;4733:21;:28;4727:34;;4713:240;;;4832:21;4854:3;4832:26;;;;;;;;;;;;;;;;;;;;;:36;4901:21;:26;;-1:-1:-1;;;;;4832:36:2;;;;4805:83;;4889:10;;4923:3;;4901:26;;;;;;;;;;;;;;;;:33;;;4936:4;4805:136;;;;;;;;;;;;;-1:-1:-1;;;;;4805:136:2;-1:-1:-1;;;;;4805:136:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4805:136:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4805:136:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4805:136:2;4784:158;;;;;;4763:5;;4713:240;;;3623:1;;17239:384;;;;;;;:::o;20986:159::-;-1:-1:-1;;;;;21077:16:2;21053:4;21077:16;;;;;;;;;;-1:-1:-1;21077:28:2;;21128:9;21077:28;-1:-1:-1;;;21077:47:2;:60;;;20986:159::o;373:20774::-;;;;;;;;;;-1:-1:-1;373:20774:2;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;373:20774:2;;;-1:-1:-1;;373:20774:2;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"./Avatar.sol\";\nimport \"../globalConstraints/GlobalConstraintInterface.sol\";\n\n/**\n * @title Controller contract\n * @dev A controller controls the organizations tokens, reputation and avatar.\n * It is subject to a set of schemes and constraints that determine its behavior.\n * Each scheme has it own parameters and operation permissions.\n */\ncontract Controller {\n\n struct Scheme {\n bytes32 paramsHash; // a hash \"configuration\" of the scheme\n bytes4 permissions; // A bitwise flags of permissions,\n // All 0: Not registered,\n // 1st bit: Flag if the scheme is registered,\n // 2nd bit: Scheme can register other schemes\n // 3rd bit: Scheme can add/remove global constraints\n // 4th bit: Scheme can upgrade the controller\n // 5th bit: Scheme can call genericCall on behalf of\n // the organization avatar\n }\n\n struct GlobalConstraint {\n address gcAddress;\n bytes32 params;\n }\n\n struct GlobalConstraintRegister {\n bool isRegistered; //is registered\n uint256 index; //index at globalConstraints\n }\n\n mapping(address=>Scheme) public schemes;\n\n Avatar public avatar;\n DAOToken public nativeToken;\n Reputation public nativeReputation;\n // newController will point to the new controller after the present controller is upgraded\n address public newController;\n // globalConstraintsPre that determine pre conditions for all actions on the controller\n\n GlobalConstraint[] public globalConstraintsPre;\n // globalConstraintsPost that determine post conditions for all actions on the controller\n GlobalConstraint[] public globalConstraintsPost;\n // globalConstraintsRegisterPre indicate if a globalConstraints is registered as a pre global constraint\n mapping(address=>GlobalConstraintRegister) public globalConstraintsRegisterPre;\n // globalConstraintsRegisterPost indicate if a globalConstraints is registered as a post global constraint\n mapping(address=>GlobalConstraintRegister) public globalConstraintsRegisterPost;\n\n event MintReputation (address indexed _sender, address indexed _to, uint256 _amount);\n event BurnReputation (address indexed _sender, address indexed _from, uint256 _amount);\n event MintTokens (address indexed _sender, address indexed _beneficiary, uint256 _amount);\n event RegisterScheme (address indexed _sender, address indexed _scheme);\n event UnregisterScheme (address indexed _sender, address indexed _scheme);\n event UpgradeController(address indexed _oldController, address _newController);\n\n event AddGlobalConstraint(\n address indexed _globalConstraint,\n bytes32 _params,\n GlobalConstraintInterface.CallPhase _when);\n\n event RemoveGlobalConstraint(address indexed _globalConstraint, uint256 _index, bool _isPre);\n\n constructor( Avatar _avatar) public {\n avatar = _avatar;\n nativeToken = avatar.nativeToken();\n nativeReputation = avatar.nativeReputation();\n schemes[msg.sender] = Scheme({paramsHash: bytes32(0), permissions: bytes4(0x0000001F)});\n emit RegisterScheme (msg.sender, msg.sender);\n }\n\n // Do not allow mistaken calls:\n // solhint-disable-next-line payable-fallback\n function() external {\n revert();\n }\n\n // Modifiers:\n modifier onlyRegisteredScheme() {\n require(schemes[msg.sender].permissions&bytes4(0x00000001) == bytes4(0x00000001));\n _;\n }\n\n modifier onlyRegisteringSchemes() {\n require(schemes[msg.sender].permissions&bytes4(0x00000002) == bytes4(0x00000002));\n _;\n }\n\n modifier onlyGlobalConstraintsScheme() {\n require(schemes[msg.sender].permissions&bytes4(0x00000004) == bytes4(0x00000004));\n _;\n }\n\n modifier onlyUpgradingScheme() {\n require(schemes[msg.sender].permissions&bytes4(0x00000008) == bytes4(0x00000008));\n _;\n }\n\n modifier onlyGenericCallScheme() {\n require(schemes[msg.sender].permissions&bytes4(0x00000010) == bytes4(0x00000010));\n _;\n }\n\n modifier onlyMetaDataScheme() {\n require(schemes[msg.sender].permissions&bytes4(0x00000010) == bytes4(0x00000010));\n _;\n }\n\n modifier onlySubjectToConstraint(bytes32 func) {\n uint256 idx;\n for (idx = 0; idx < globalConstraintsPre.length; idx++) {\n require(\n (GlobalConstraintInterface(globalConstraintsPre[idx].gcAddress))\n .pre(msg.sender, globalConstraintsPre[idx].params, func));\n }\n _;\n for (idx = 0; idx < globalConstraintsPost.length; idx++) {\n require(\n (GlobalConstraintInterface(globalConstraintsPost[idx].gcAddress))\n .post(msg.sender, globalConstraintsPost[idx].params, func));\n }\n }\n\n modifier isAvatarValid(address _avatar) {\n require(_avatar == address(avatar));\n _;\n }\n\n /**\n * @dev Mint `_amount` of reputation that are assigned to `_to` .\n * @param _amount amount of reputation to mint\n * @param _to beneficiary address\n * @return bool which represents a success\n */\n function mintReputation(uint256 _amount, address _to, address _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"mintReputation\")\n isAvatarValid(_avatar)\n returns(bool)\n {\n emit MintReputation(msg.sender, _to, _amount);\n return nativeReputation.mint(_to, _amount);\n }\n\n /**\n * @dev Burns `_amount` of reputation from `_from`\n * @param _amount amount of reputation to burn\n * @param _from The address that will lose the reputation\n * @return bool which represents a success\n */\n function burnReputation(uint256 _amount, address _from, address _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"burnReputation\")\n isAvatarValid(_avatar)\n returns(bool)\n {\n emit BurnReputation(msg.sender, _from, _amount);\n return nativeReputation.burn(_from, _amount);\n }\n\n /**\n * @dev mint tokens .\n * @param _amount amount of token to mint\n * @param _beneficiary beneficiary address\n * @return bool which represents a success\n */\n function mintTokens(uint256 _amount, address _beneficiary, address _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"mintTokens\")\n isAvatarValid(_avatar)\n returns(bool)\n {\n emit MintTokens(msg.sender, _beneficiary, _amount);\n return nativeToken.mint(_beneficiary, _amount);\n }\n\n /**\n * @dev register a scheme\n * @param _scheme the address of the scheme\n * @param _paramsHash a hashed configuration of the usage of the scheme\n * @param _permissions the permissions the new scheme will have\n * @return bool which represents a success\n */\n function registerScheme(address _scheme, bytes32 _paramsHash, bytes4 _permissions, address _avatar)\n external\n onlyRegisteringSchemes\n onlySubjectToConstraint(\"registerScheme\")\n isAvatarValid(_avatar)\n returns(bool)\n {\n\n Scheme memory scheme = schemes[_scheme];\n\n // Check scheme has at least the permissions it is changing, and at least the current permissions:\n // Implementation is a bit messy. One must recall logic-circuits ^^\n\n // produces non-zero if sender does not have all of the perms that are changing between old and new\n require(bytes4(0x0000001f)&(_permissions^scheme.permissions)&(~schemes[msg.sender].permissions) == bytes4(0));\n\n // produces non-zero if sender does not have all of the perms in the old scheme\n require(bytes4(0x0000001f)&(scheme.permissions&(~schemes[msg.sender].permissions)) == bytes4(0));\n\n // Add or change the scheme:\n schemes[_scheme].paramsHash = _paramsHash;\n schemes[_scheme].permissions = _permissions|bytes4(0x00000001);\n emit RegisterScheme(msg.sender, _scheme);\n return true;\n }\n\n /**\n * @dev unregister a scheme\n * @param _scheme the address of the scheme\n * @return bool which represents a success\n */\n function unregisterScheme( address _scheme, address _avatar)\n external\n onlyRegisteringSchemes\n onlySubjectToConstraint(\"unregisterScheme\")\n isAvatarValid(_avatar)\n returns(bool)\n {\n //check if the scheme is registered\n if (_isSchemeRegistered(_scheme) == false) {\n return false;\n }\n // Check the unregistering scheme has enough permissions:\n require(bytes4(0x0000001f)&(schemes[_scheme].permissions&(~schemes[msg.sender].permissions)) == bytes4(0));\n\n // Unregister:\n emit UnregisterScheme(msg.sender, _scheme);\n delete schemes[_scheme];\n return true;\n }\n\n /**\n * @dev unregister the caller's scheme\n * @return bool which represents a success\n */\n function unregisterSelf(address _avatar) external isAvatarValid(_avatar) returns(bool) {\n if (_isSchemeRegistered(msg.sender) == false) {\n return false;\n }\n delete schemes[msg.sender];\n emit UnregisterScheme(msg.sender, msg.sender);\n return true;\n }\n\n /**\n * @dev add or update Global Constraint\n * @param _globalConstraint the address of the global constraint to be added.\n * @param _params the constraint parameters hash.\n * @return bool which represents a success\n */\n function addGlobalConstraint(address _globalConstraint, bytes32 _params, address _avatar)\n external\n onlyGlobalConstraintsScheme\n isAvatarValid(_avatar)\n returns(bool)\n {\n GlobalConstraintInterface.CallPhase when = GlobalConstraintInterface(_globalConstraint).when();\n if ((when == GlobalConstraintInterface.CallPhase.Pre)||\n (when == GlobalConstraintInterface.CallPhase.PreAndPost)) {\n if (!globalConstraintsRegisterPre[_globalConstraint].isRegistered) {\n globalConstraintsPre.push(GlobalConstraint(_globalConstraint, _params));\n globalConstraintsRegisterPre[_globalConstraint] =\n GlobalConstraintRegister(true, globalConstraintsPre.length-1);\n }else {\n globalConstraintsPre[globalConstraintsRegisterPre[_globalConstraint].index].params = _params;\n }\n }\n if ((when == GlobalConstraintInterface.CallPhase.Post)||\n (when == GlobalConstraintInterface.CallPhase.PreAndPost)) {\n if (!globalConstraintsRegisterPost[_globalConstraint].isRegistered) {\n globalConstraintsPost.push(GlobalConstraint(_globalConstraint, _params));\n globalConstraintsRegisterPost[_globalConstraint] =\n GlobalConstraintRegister(true, globalConstraintsPost.length-1);\n }else {\n globalConstraintsPost[globalConstraintsRegisterPost[_globalConstraint].index].params = _params;\n }\n }\n emit AddGlobalConstraint(_globalConstraint, _params, when);\n return true;\n }\n\n /**\n * @dev remove Global Constraint\n * @param _globalConstraint the address of the global constraint to be remove.\n * @return bool which represents a success\n */\n // solhint-disable-next-line code-complexity\n function removeGlobalConstraint (address _globalConstraint, address _avatar)\n external\n onlyGlobalConstraintsScheme\n isAvatarValid(_avatar)\n returns(bool)\n {\n GlobalConstraintRegister memory globalConstraintRegister;\n GlobalConstraint memory globalConstraint;\n GlobalConstraintInterface.CallPhase when = GlobalConstraintInterface(_globalConstraint).when();\n bool retVal = false;\n\n if ((when == GlobalConstraintInterface.CallPhase.Pre)||\n (when == GlobalConstraintInterface.CallPhase.PreAndPost)) {\n globalConstraintRegister = globalConstraintsRegisterPre[_globalConstraint];\n if (globalConstraintRegister.isRegistered) {\n if (globalConstraintRegister.index < globalConstraintsPre.length-1) {\n globalConstraint = globalConstraintsPre[globalConstraintsPre.length-1];\n globalConstraintsPre[globalConstraintRegister.index] = globalConstraint;\n globalConstraintsRegisterPre[globalConstraint.gcAddress].index = globalConstraintRegister.index;\n }\n globalConstraintsPre.length--;\n delete globalConstraintsRegisterPre[_globalConstraint];\n retVal = true;\n }\n }\n if ((when == GlobalConstraintInterface.CallPhase.Post)||\n (when == GlobalConstraintInterface.CallPhase.PreAndPost)) {\n globalConstraintRegister = globalConstraintsRegisterPost[_globalConstraint];\n if (globalConstraintRegister.isRegistered) {\n if (globalConstraintRegister.index < globalConstraintsPost.length-1) {\n globalConstraint = globalConstraintsPost[globalConstraintsPost.length-1];\n globalConstraintsPost[globalConstraintRegister.index] = globalConstraint;\n globalConstraintsRegisterPost[globalConstraint.gcAddress].index = globalConstraintRegister.index;\n }\n globalConstraintsPost.length--;\n delete globalConstraintsRegisterPost[_globalConstraint];\n retVal = true;\n }\n }\n if (retVal) {\n emit RemoveGlobalConstraint(\n _globalConstraint,\n globalConstraintRegister.index,\n when == GlobalConstraintInterface.CallPhase.Pre\n );\n }\n return retVal;\n }\n\n /**\n * @dev upgrade the Controller\n * The function will trigger an event 'UpgradeController'.\n * @param _newController the address of the new controller.\n * @return bool which represents a success\n */\n function upgradeController(address _newController, Avatar _avatar)\n external\n onlyUpgradingScheme\n isAvatarValid(address(_avatar))\n returns(bool)\n {\n require(newController == address(0)); // so the upgrade could be done once for a contract.\n require(_newController != address(0));\n newController = _newController;\n avatar.transferOwnership(_newController);\n require(avatar.owner() == _newController);\n if (nativeToken.owner() == address(this)) {\n nativeToken.transferOwnership(_newController);\n require(nativeToken.owner() == _newController);\n }\n if (nativeReputation.owner() == address(this)) {\n nativeReputation.transferOwnership(_newController);\n require(nativeReputation.owner() == _newController);\n }\n emit UpgradeController(address(this), newController);\n return true;\n }\n\n /**\n * @dev perform a generic call to an arbitrary contract\n * @param _contract the contract's address to call\n * @param _data ABI-encoded contract call to call `_contract` address.\n * @param _avatar the controller's avatar address\n * @param _value value (ETH) to transfer with the transaction\n * @return bool -success\n * bytes - the return value of the called _contract's function.\n */\n function genericCall(address _contract, bytes calldata _data, Avatar _avatar, uint256 _value)\n external\n onlyGenericCallScheme\n onlySubjectToConstraint(\"genericCall\")\n isAvatarValid(address(_avatar))\n returns (bool, bytes memory)\n {\n return avatar.genericCall(_contract, _data, _value);\n }\n\n /**\n * @dev send some ether\n * @param _amountInWei the amount of ether (in Wei) to send\n * @param _to address of the beneficiary\n * @return bool which represents a success\n */\n function sendEther(uint256 _amountInWei, address payable _to, Avatar _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"sendEther\")\n isAvatarValid(address(_avatar))\n returns(bool)\n {\n return avatar.sendEther(_amountInWei, _to);\n }\n\n /**\n * @dev send some amount of arbitrary ERC20 Tokens\n * @param _externalToken the address of the Token Contract\n * @param _to address of the beneficiary\n * @param _value the amount of ether (in Wei) to send\n * @return bool which represents a success\n */\n function externalTokenTransfer(IERC20 _externalToken, address _to, uint256 _value, Avatar _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"externalTokenTransfer\")\n isAvatarValid(address(_avatar))\n returns(bool)\n {\n return avatar.externalTokenTransfer(_externalToken, _to, _value);\n }\n\n /**\n * @dev transfer token \"from\" address \"to\" address\n * One must to approve the amount of tokens which can be spend from the\n * \"from\" account.This can be done using externalTokenApprove.\n * @param _externalToken the address of the Token Contract\n * @param _from address of the account to send from\n * @param _to address of the beneficiary\n * @param _value the amount of ether (in Wei) to send\n * @return bool which represents a success\n */\n function externalTokenTransferFrom(\n IERC20 _externalToken,\n address _from,\n address _to,\n uint256 _value,\n Avatar _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"externalTokenTransferFrom\")\n isAvatarValid(address(_avatar))\n returns(bool)\n {\n return avatar.externalTokenTransferFrom(_externalToken, _from, _to, _value);\n }\n\n /**\n * @dev externalTokenApproval approve the spender address to spend a specified amount of tokens\n * on behalf of msg.sender.\n * @param _externalToken the address of the Token Contract\n * @param _spender address\n * @param _value the amount of ether (in Wei) which the approval is referring to.\n * @return bool which represents a success\n */\n function externalTokenApproval(IERC20 _externalToken, address _spender, uint256 _value, Avatar _avatar)\n external\n onlyRegisteredScheme\n onlySubjectToConstraint(\"externalTokenIncreaseApproval\")\n isAvatarValid(address(_avatar))\n returns(bool)\n {\n return avatar.externalTokenApproval(_externalToken, _spender, _value);\n }\n\n /**\n * @dev metaData emits an event with a string, should contain the hash of some meta data.\n * @param _metaData a string representing a hash of the meta data\n * @param _avatar Avatar\n * @return bool which represents a success\n */\n function metaData(string calldata _metaData, Avatar _avatar)\n external\n onlyMetaDataScheme\n isAvatarValid(address(_avatar))\n returns(bool)\n {\n return avatar.metaData(_metaData);\n }\n\n /**\n * @dev getNativeReputation\n * @param _avatar the organization avatar.\n * @return organization native reputation\n */\n function getNativeReputation(address _avatar) external isAvatarValid(_avatar) view returns(address) {\n return address(nativeReputation);\n }\n\n function isSchemeRegistered(address _scheme, address _avatar) external isAvatarValid(_avatar) view returns(bool) {\n return _isSchemeRegistered(_scheme);\n }\n\n function getSchemeParameters(address _scheme, address _avatar)\n external\n isAvatarValid(_avatar)\n view\n returns(bytes32)\n {\n return schemes[_scheme].paramsHash;\n }\n\n function getSchemePermissions(address _scheme, address _avatar)\n external\n isAvatarValid(_avatar)\n view\n returns(bytes4)\n {\n return schemes[_scheme].permissions;\n }\n\n function getGlobalConstraintParameters(address _globalConstraint, address) external view returns(bytes32) {\n\n GlobalConstraintRegister memory register = globalConstraintsRegisterPre[_globalConstraint];\n\n if (register.isRegistered) {\n return globalConstraintsPre[register.index].params;\n }\n\n register = globalConstraintsRegisterPost[_globalConstraint];\n\n if (register.isRegistered) {\n return globalConstraintsPost[register.index].params;\n }\n }\n\n /**\n * @dev globalConstraintsCount return the global constraint pre and post count\n * @return uint256 globalConstraintsPre count.\n * @return uint256 globalConstraintsPost count.\n */\n function globalConstraintsCount(address _avatar)\n external\n isAvatarValid(_avatar)\n view\n returns(uint, uint)\n {\n return (globalConstraintsPre.length, globalConstraintsPost.length);\n }\n\n function isGlobalConstraintRegistered(address _globalConstraint, address _avatar)\n external\n isAvatarValid(_avatar)\n view\n returns(bool)\n {\n return (globalConstraintsRegisterPre[_globalConstraint].isRegistered ||\n globalConstraintsRegisterPost[_globalConstraint].isRegistered);\n }\n\n function _isSchemeRegistered(address _scheme) private view returns(bool) {\n return (schemes[_scheme].permissions&bytes4(0x00000001) != bytes4(0));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","exportedSymbols":{"Controller":[1797]},"id":1798,"nodeType":"SourceUnit","nodes":[{"id":339,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:2"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"./Avatar.sol","id":340,"nodeType":"ImportDirective","scope":1798,"sourceUnit":338,"src":"25:22:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","file":"../globalConstraints/GlobalConstraintInterface.sol","id":341,"nodeType":"ImportDirective","scope":1798,"sourceUnit":1908,"src":"48:60:2","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title Controller contract\n@dev A controller controls the organizations tokens, reputation and avatar.\nIt is subject to a set of schemes and constraints that determine its behavior.\nEach scheme has it own parameters and operation permissions.","fullyImplemented":true,"id":1797,"linearizedBaseContracts":[1797],"name":"Controller","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Controller.Scheme","id":346,"members":[{"constant":false,"id":343,"name":"paramsHash","nodeType":"VariableDeclaration","scope":346,"src":"424:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"424:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":345,"name":"permissions","nodeType":"VariableDeclaration","scope":346,"src":"493:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":344,"name":"bytes4","nodeType":"ElementaryTypeName","src":"493:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"name":"Scheme","nodeType":"StructDefinition","scope":1797,"src":"400:663:2","visibility":"public"},{"canonicalName":"Controller.GlobalConstraint","id":351,"members":[{"constant":false,"id":348,"name":"gcAddress","nodeType":"VariableDeclaration","scope":351,"src":"1103:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":347,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":350,"name":"params","nodeType":"VariableDeclaration","scope":351,"src":"1130:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"name":"GlobalConstraint","nodeType":"StructDefinition","scope":1797,"src":"1069:82:2","visibility":"public"},{"canonicalName":"Controller.GlobalConstraintRegister","id":356,"members":[{"constant":false,"id":353,"name":"isRegistered","nodeType":"VariableDeclaration","scope":356,"src":"1199:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":352,"name":"bool","nodeType":"ElementaryTypeName","src":"1199:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":355,"name":"index","nodeType":"VariableDeclaration","scope":356,"src":"1242:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"GlobalConstraintRegister","nodeType":"StructDefinition","scope":1797,"src":"1157:137:2","visibility":"public"},{"constant":false,"id":360,"name":"schemes","nodeType":"VariableDeclaration","scope":1797,"src":"1300:39:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme)"},"typeName":{"id":359,"keyType":{"id":357,"name":"address","nodeType":"ElementaryTypeName","src":"1308:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1300:24:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme)"},"valueType":{"contractScope":null,"id":358,"name":"Scheme","nodeType":"UserDefinedTypeName","referencedDeclaration":346,"src":"1317:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage_ptr","typeString":"struct Controller.Scheme"}}},"value":null,"visibility":"public"},{"constant":false,"id":362,"name":"avatar","nodeType":"VariableDeclaration","scope":1797,"src":"1346:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":361,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1346:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":364,"name":"nativeToken","nodeType":"VariableDeclaration","scope":1797,"src":"1372:27:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":363,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"1372:8:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"public"},{"constant":false,"id":366,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":1797,"src":"1405:34:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":365,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"1405:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"constant":false,"id":368,"name":"newController","nodeType":"VariableDeclaration","scope":1797,"src":"1538:28:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":367,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":371,"name":"globalConstraintsPre","nodeType":"VariableDeclaration","scope":1797,"src":"1663:46:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint[]"},"typeName":{"baseType":{"contractScope":null,"id":369,"name":"GlobalConstraint","nodeType":"UserDefinedTypeName","referencedDeclaration":351,"src":"1663:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage_ptr","typeString":"struct Controller.GlobalConstraint"}},"id":370,"length":null,"nodeType":"ArrayTypeName","src":"1663:18:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage_ptr","typeString":"struct Controller.GlobalConstraint[]"}},"value":null,"visibility":"public"},{"constant":false,"id":374,"name":"globalConstraintsPost","nodeType":"VariableDeclaration","scope":1797,"src":"1807:47:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint[]"},"typeName":{"baseType":{"contractScope":null,"id":372,"name":"GlobalConstraint","nodeType":"UserDefinedTypeName","referencedDeclaration":351,"src":"1807:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage_ptr","typeString":"struct Controller.GlobalConstraint"}},"id":373,"length":null,"nodeType":"ArrayTypeName","src":"1807:18:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage_ptr","typeString":"struct Controller.GlobalConstraint[]"}},"value":null,"visibility":"public"},{"constant":false,"id":378,"name":"globalConstraintsRegisterPre","nodeType":"VariableDeclaration","scope":1797,"src":"1967:78:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"typeName":{"id":377,"keyType":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"1975:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1967:42:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"valueType":{"contractScope":null,"id":376,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"1984:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}}},"value":null,"visibility":"public"},{"constant":false,"id":382,"name":"globalConstraintsRegisterPost","nodeType":"VariableDeclaration","scope":1797,"src":"2160:79:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"typeName":{"id":381,"keyType":{"id":379,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2160:42:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"valueType":{"contractScope":null,"id":380,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"2177:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":390,"name":"MintReputation","nodeType":"EventDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":390,"src":"2268:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":386,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":390,"src":"2293:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":385,"name":"address","nodeType":"ElementaryTypeName","src":"2293:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":388,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":390,"src":"2314:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2314:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2267:63:2"},"src":"2246:85:2"},{"anonymous":false,"documentation":null,"id":398,"name":"BurnReputation","nodeType":"EventDefinition","parameters":{"id":397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":392,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":398,"src":"2358:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":391,"name":"address","nodeType":"ElementaryTypeName","src":"2358:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":394,"indexed":true,"name":"_from","nodeType":"VariableDeclaration","scope":398,"src":"2383:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":396,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":398,"src":"2406:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2357:65:2"},"src":"2336:87:2"},{"anonymous":false,"documentation":null,"id":406,"name":"MintTokens","nodeType":"EventDefinition","parameters":{"id":405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":400,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":406,"src":"2446:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":399,"name":"address","nodeType":"ElementaryTypeName","src":"2446:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":402,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":406,"src":"2471:28:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":401,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":404,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":406,"src":"2501:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":403,"name":"uint256","nodeType":"ElementaryTypeName","src":"2501:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2445:72:2"},"src":"2428:90:2"},{"anonymous":false,"documentation":null,"id":412,"name":"RegisterScheme","nodeType":"EventDefinition","parameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":408,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":412,"src":"2545:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":407,"name":"address","nodeType":"ElementaryTypeName","src":"2545:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":410,"indexed":true,"name":"_scheme","nodeType":"VariableDeclaration","scope":412,"src":"2570:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":409,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2544:50:2"},"src":"2523:72:2"},{"anonymous":false,"documentation":null,"id":418,"name":"UnregisterScheme","nodeType":"EventDefinition","parameters":{"id":417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":414,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":418,"src":"2624:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"2624:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":416,"indexed":true,"name":"_scheme","nodeType":"VariableDeclaration","scope":418,"src":"2649:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":415,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2623:50:2"},"src":"2600:74:2"},{"anonymous":false,"documentation":null,"id":424,"name":"UpgradeController","nodeType":"EventDefinition","parameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"indexed":true,"name":"_oldController","nodeType":"VariableDeclaration","scope":424,"src":"2703:30:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"2703:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":422,"indexed":false,"name":"_newController","nodeType":"VariableDeclaration","scope":424,"src":"2735:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":421,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2702:56:2"},"src":"2679:80:2"},{"anonymous":false,"documentation":null,"id":432,"name":"AddGlobalConstraint","nodeType":"EventDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":426,"indexed":true,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":432,"src":"2800:33:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":428,"indexed":false,"name":"_params","nodeType":"VariableDeclaration","scope":432,"src":"2843:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2843:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":430,"indexed":false,"name":"_when","nodeType":"VariableDeclaration","scope":432,"src":"2868:41:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":429,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"2868:35:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"2790:120:2"},"src":"2765:146:2"},{"anonymous":false,"documentation":null,"id":440,"name":"RemoveGlobalConstraint","nodeType":"EventDefinition","parameters":{"id":439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"indexed":true,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":440,"src":"2946:33:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":433,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":436,"indexed":false,"name":"_index","nodeType":"VariableDeclaration","scope":440,"src":"2981:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"2981:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":438,"indexed":false,"name":"_isPre","nodeType":"VariableDeclaration","scope":440,"src":"2997:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":437,"name":"bool","nodeType":"ElementaryTypeName","src":"2997:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2945:64:2"},"src":"2917:93:2"},{"body":{"id":482,"nodeType":"Block","src":"3052:282:2","statements":[{"expression":{"argumentTypes":null,"id":447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":445,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3062:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":446,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"3071:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3062:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":448,"nodeType":"ExpressionStatement","src":"3062:16:2"},{"expression":{"argumentTypes":null,"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":449,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"3088:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":450,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3102:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeToken","nodeType":"MemberAccess","referencedDeclaration":73,"src":"3102:18:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_DAOToken_$1873_$","typeString":"function () view external returns (contract DAOToken)"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3102:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"src":"3088:34:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":454,"nodeType":"ExpressionStatement","src":"3088:34:2"},{"expression":{"argumentTypes":null,"id":459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":455,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"3132:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":456,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3151:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"3151:23:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3151:25:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"3132:44:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":460,"nodeType":"ExpressionStatement","src":"3132:44:2"},{"expression":{"argumentTypes":null,"id":473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":461,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3186:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":464,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":462,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3194:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3194:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3186:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3236:1:2","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":466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303146","id":470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3260:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001F"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3253:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":465,"name":"Scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"3208:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Scheme_$346_storage_ptr_$","typeString":"type(struct Controller.Scheme storage pointer)"}},"id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["paramsHash","permissions"],"nodeType":"FunctionCall","src":"3208:65:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory","typeString":"struct Controller.Scheme memory"}},"src":"3186:87:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":474,"nodeType":"ExpressionStatement","src":"3186:87:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3304:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3304:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":478,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3316:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3316:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":475,"name":"RegisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"3288:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3288:39:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":481,"nodeType":"EmitStatement","src":"3283:44:2"}]},"documentation":null,"id":483,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":442,"name":"_avatar","nodeType":"VariableDeclaration","scope":483,"src":"3029:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":441,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3029:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"3027:17:2"},"returnParameters":{"id":444,"nodeType":"ParameterList","parameters":[],"src":"3052:0:2"},"scope":1797,"src":"3016:318:2","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":489,"nodeType":"Block","src":"3443:25:2","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":486,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[21112,21113],"referencedDeclaration":21112,"src":"3453:6:2","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3453:8:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":488,"nodeType":"ExpressionStatement","src":"3453:8:2"}]},"documentation":null,"id":490,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[],"src":"3431:2:2"},"returnParameters":{"id":485,"nodeType":"ParameterList","parameters":[],"src":"3443:0:2"},"scope":1797,"src":"3423:45:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":509,"nodeType":"Block","src":"3522:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":493,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3540:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":496,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":494,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3548:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3548:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3540:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3540:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3579:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3572:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3540:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3601:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3594:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3594:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3540:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3532:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3532:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":507,"nodeType":"ExpressionStatement","src":"3532:81:2"},{"id":508,"nodeType":"PlaceholderStatement","src":"3623:1:2"}]},"documentation":null,"id":510,"name":"onlyRegisteredScheme","nodeType":"ModifierDefinition","parameters":{"id":491,"nodeType":"ParameterList","parameters":[],"src":"3519:2:2"},"src":"3490:141:2","visibility":"internal"},{"body":{"id":529,"nodeType":"Block","src":"3671:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":513,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3689:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":516,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3697:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3697:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3689:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3689:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303032","id":519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3728:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x00000002"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3721:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3721:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3689:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303032","id":523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3750:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x00000002"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3743:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3743:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3689:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":512,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3681:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3681:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":527,"nodeType":"ExpressionStatement","src":"3681:81:2"},{"id":528,"nodeType":"PlaceholderStatement","src":"3772:1:2"}]},"documentation":null,"id":530,"name":"onlyRegisteringSchemes","nodeType":"ModifierDefinition","parameters":{"id":511,"nodeType":"ParameterList","parameters":[],"src":"3668:2:2"},"src":"3637:143:2","visibility":"internal"},{"body":{"id":549,"nodeType":"Block","src":"3825:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":533,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3843:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":536,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3851:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3851:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3843:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3843:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303034","id":539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3882:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x00000004"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3875:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3875:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3843:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303034","id":543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3904:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x00000004"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3897:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3897:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3843:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3835:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3835:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":547,"nodeType":"ExpressionStatement","src":"3835:81:2"},{"id":548,"nodeType":"PlaceholderStatement","src":"3926:1:2"}]},"documentation":null,"id":550,"name":"onlyGlobalConstraintsScheme","nodeType":"ModifierDefinition","parameters":{"id":531,"nodeType":"ParameterList","parameters":[],"src":"3822:2:2"},"src":"3786:148:2","visibility":"internal"},{"body":{"id":569,"nodeType":"Block","src":"3971:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":553,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3989:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":556,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":554,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3997:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3997:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3989:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3989:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303038","id":559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4028:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x00000008"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4021:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4021:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3989:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303038","id":563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4050:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x00000008"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4043:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4043:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3989:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3981:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3981:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":567,"nodeType":"ExpressionStatement","src":"3981:81:2"},{"id":568,"nodeType":"PlaceholderStatement","src":"4072:1:2"}]},"documentation":null,"id":570,"name":"onlyUpgradingScheme","nodeType":"ModifierDefinition","parameters":{"id":551,"nodeType":"ParameterList","parameters":[],"src":"3968:2:2"},"src":"3940:140:2","visibility":"internal"},{"body":{"id":589,"nodeType":"Block","src":"4119:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":573,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"4137:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":576,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4145:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4145:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4137:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"4137:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4176:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4169:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4169:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4137:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4198:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4191:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4191:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4137:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4129:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4129:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":587,"nodeType":"ExpressionStatement","src":"4129:81:2"},{"id":588,"nodeType":"PlaceholderStatement","src":"4220:1:2"}]},"documentation":null,"id":590,"name":"onlyGenericCallScheme","nodeType":"ModifierDefinition","parameters":{"id":571,"nodeType":"ParameterList","parameters":[],"src":"4116:2:2"},"src":"4086:142:2","visibility":"internal"},{"body":{"id":609,"nodeType":"Block","src":"4264:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":593,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"4282:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":596,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":594,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4290:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4290:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4282:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"4282:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4321:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4314:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4314:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4282:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4343:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4336:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4282:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4274:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4274:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":607,"nodeType":"ExpressionStatement","src":"4274:81:2"},{"id":608,"nodeType":"PlaceholderStatement","src":"4365:1:2"}]},"documentation":null,"id":610,"name":"onlyMetaDataScheme","nodeType":"ModifierDefinition","parameters":{"id":591,"nodeType":"ParameterList","parameters":[],"src":"4261:2:2"},"src":"4234:139:2","visibility":"internal"},{"body":{"id":682,"nodeType":"Block","src":"4426:533:2","statements":[{"assignments":[615],"declarations":[{"constant":false,"id":615,"name":"idx","nodeType":"VariableDeclaration","scope":682,"src":"4436:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":614,"name":"uint256","nodeType":"ElementaryTypeName","src":"4436:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":616,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"4436:11:2"},{"body":{"id":647,"nodeType":"Block","src":"4513:180:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":637,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4630:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4630:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":639,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4642:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":641,"indexExpression":{"argumentTypes":null,"id":640,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4663:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4642:25:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"4642:32:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":643,"name":"func","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"4676:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":630,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4575:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":632,"indexExpression":{"argumentTypes":null,"id":631,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4596:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4575:25:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"4575:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":629,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"4549:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4549:62:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}}],"id":635,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4548:64:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pre","nodeType":"MemberAccess","referencedDeclaration":1890,"src":"4548:81:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes32) external returns (bool)"}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4548:133:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":628,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4527:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4527:155:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":646,"nodeType":"ExpressionStatement","src":"4527:155:2"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":621,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4471:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":622,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4477:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4477:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4471:33:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":648,"initializationExpression":{"expression":{"argumentTypes":null,"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":617,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4462:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4468:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4462:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":620,"nodeType":"ExpressionStatement","src":"4462:7:2"},"loopExpression":{"expression":{"argumentTypes":null,"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4506:5:2","subExpression":{"argumentTypes":null,"id":625,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4506:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":627,"nodeType":"ExpressionStatement","src":"4506:5:2"},"nodeType":"ForStatement","src":"4457:236:2"},{"id":649,"nodeType":"PlaceholderStatement","src":"4702:1:2"},{"body":{"id":680,"nodeType":"Block","src":"4770:183:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":670,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4889:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4889:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":672,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4901:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":674,"indexExpression":{"argumentTypes":null,"id":673,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4923:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4901:26:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"4901:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":676,"name":"func","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"4936:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":663,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4832:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":665,"indexExpression":{"argumentTypes":null,"id":664,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4854:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4832:26:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"4832:36:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":662,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"4806:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4806:63:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}}],"id":668,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4805:65:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"post","nodeType":"MemberAccess","referencedDeclaration":1901,"src":"4805:83:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes32) external returns (bool)"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4805:136:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":661,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4784:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4784:158:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":679,"nodeType":"ExpressionStatement","src":"4784:158:2"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":654,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4727:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":655,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4733:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4733:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4727:34:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":681,"initializationExpression":{"expression":{"argumentTypes":null,"id":652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":650,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4718:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4724:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4718:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":653,"nodeType":"ExpressionStatement","src":"4718:7:2"},"loopExpression":{"expression":{"argumentTypes":null,"id":659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4763:5:2","subExpression":{"argumentTypes":null,"id":658,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4763:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":660,"nodeType":"ExpressionStatement","src":"4763:5:2"},"nodeType":"ForStatement","src":"4713:240:2"}]},"documentation":null,"id":683,"name":"onlySubjectToConstraint","nodeType":"ModifierDefinition","parameters":{"id":613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":612,"name":"func","nodeType":"VariableDeclaration","scope":683,"src":"4412:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4412:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4411:14:2"},"src":"4379:580:2","visibility":"internal"},{"body":{"id":696,"nodeType":"Block","src":"5005:63:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":688,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":685,"src":"5023:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":690,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"5042:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5034:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5034:15:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5023:26:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":687,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"5015:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5015:35:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":694,"nodeType":"ExpressionStatement","src":"5015:35:2"},{"id":695,"nodeType":"PlaceholderStatement","src":"5060:1:2"}]},"documentation":null,"id":697,"name":"isAvatarValid","nodeType":"ModifierDefinition","parameters":{"id":686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":685,"name":"_avatar","nodeType":"VariableDeclaration","scope":697,"src":"4988:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":684,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"4987:17:2"},"src":"4965:103:2","visibility":"internal"},{"body":{"id":729,"nodeType":"Block","src":"5501:114:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":717,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5531:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5531:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":719,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"5543:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":720,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"5548:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":716,"name":"MintReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"5516:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5516:40:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":722,"nodeType":"EmitStatement","src":"5511:45:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":725,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"5595:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":726,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"5600:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":723,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"5573:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"5573:21:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5573:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":715,"id":728,"nodeType":"Return","src":"5566:42:2"}]},"documentation":"@dev Mint `_amount` of reputation that are assigned to `_to` .\n@param _amount amount of reputation to mint\n@param _to beneficiary address\n@return bool which represents a success","id":730,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":706,"modifierName":{"argumentTypes":null,"id":705,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5385:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"5385:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"6d696e7452657075746174696f6e","id":708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5434:16:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1a219662897983599a6b9002ff87ae94af2205e820352b0884d9af0be457f05d","typeString":"literal_string \"mintReputation\""},"value":"mintReputation"}],"id":709,"modifierName":{"argumentTypes":null,"id":707,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"5410:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5410:41:2"},{"arguments":[{"argumentTypes":null,"id":711,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"5470:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":712,"modifierName":{"argumentTypes":null,"id":710,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"5456:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"5456:22:2"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":699,"name":"_amount","nodeType":"VariableDeclaration","scope":730,"src":"5321:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":698,"name":"uint256","nodeType":"ElementaryTypeName","src":"5321:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":701,"name":"_to","nodeType":"VariableDeclaration","scope":730,"src":"5338:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"5338:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":703,"name":"_avatar","nodeType":"VariableDeclaration","scope":730,"src":"5351:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":702,"name":"address","nodeType":"ElementaryTypeName","src":"5351:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5320:47:2"},"returnParameters":{"id":715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":714,"name":"","nodeType":"VariableDeclaration","scope":730,"src":"5491:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":713,"name":"bool","nodeType":"ElementaryTypeName","src":"5491:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5490:6:2"},"scope":1797,"src":"5297:318:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":762,"nodeType":"Block","src":"6058:118:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":750,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6088:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6088:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":752,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"6100:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":753,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"6107:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":749,"name":"BurnReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"6073:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6073:42:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":755,"nodeType":"EmitStatement","src":"6068:47:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":758,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"6154:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":759,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"6161:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":756,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"6132:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"6132:21:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6132:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":748,"id":761,"nodeType":"Return","src":"6125:44:2"}]},"documentation":"@dev Burns `_amount` of reputation from `_from`\n@param _amount amount of reputation to burn\n@param _from The address that will lose the reputation\n@return bool which represents a success","id":763,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":739,"modifierName":{"argumentTypes":null,"id":738,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5942:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"5942:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"6275726e52657075746174696f6e","id":741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5991:16:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_701c6a9b3c30976c567c709256889545b87c2151a8fd377ac6f0366a5ce4dd74","typeString":"literal_string \"burnReputation\""},"value":"burnReputation"}],"id":742,"modifierName":{"argumentTypes":null,"id":740,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"5967:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5967:41:2"},{"arguments":[{"argumentTypes":null,"id":744,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"6027:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":745,"modifierName":{"argumentTypes":null,"id":743,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"6013:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"6013:22:2"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"name":"_amount","nodeType":"VariableDeclaration","scope":763,"src":"5876:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":731,"name":"uint256","nodeType":"ElementaryTypeName","src":"5876:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":734,"name":"_from","nodeType":"VariableDeclaration","scope":763,"src":"5893:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":733,"name":"address","nodeType":"ElementaryTypeName","src":"5893:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":736,"name":"_avatar","nodeType":"VariableDeclaration","scope":763,"src":"5908:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":735,"name":"address","nodeType":"ElementaryTypeName","src":"5908:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5875:49:2"},"returnParameters":{"id":748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":747,"name":"","nodeType":"VariableDeclaration","scope":763,"src":"6048:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":746,"name":"bool","nodeType":"ElementaryTypeName","src":"6048:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6047:6:2"},"scope":1797,"src":"5852:324:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":795,"nodeType":"Block","src":"6570:123:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":783,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6596:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6596:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":785,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"6608:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":786,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"6622:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":782,"name":"MintTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"6585:10:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6585:45:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":788,"nodeType":"EmitStatement","src":"6580:50:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":791,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"6664:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":792,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"6678:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":789,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"6647:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":1872,"src":"6647:16:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6647:39:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":781,"id":794,"nodeType":"Return","src":"6640:46:2"}]},"documentation":"@dev mint tokens .\n@param _amount amount of token to mint\n@param _beneficiary beneficiary address\n@return bool which represents a success","id":796,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":772,"modifierName":{"argumentTypes":null,"id":771,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"6458:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"6458:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"6d696e74546f6b656e73","id":774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6507:12:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_21b23862db72e99373f312e35ae4594cf48c0e3462d6964e450d863eb9283120","typeString":"literal_string \"mintTokens\""},"value":"mintTokens"}],"id":775,"modifierName":{"argumentTypes":null,"id":773,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"6483:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"6483:37:2"},{"arguments":[{"argumentTypes":null,"id":777,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"6539:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":778,"modifierName":{"argumentTypes":null,"id":776,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"6525:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"6525:22:2"}],"name":"mintTokens","nodeType":"FunctionDefinition","parameters":{"id":770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"name":"_amount","nodeType":"VariableDeclaration","scope":796,"src":"6385:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":764,"name":"uint256","nodeType":"ElementaryTypeName","src":"6385:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":767,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":796,"src":"6402:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":766,"name":"address","nodeType":"ElementaryTypeName","src":"6402:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":769,"name":"_avatar","nodeType":"VariableDeclaration","scope":796,"src":"6424:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":768,"name":"address","nodeType":"ElementaryTypeName","src":"6424:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6384:56:2"},"returnParameters":{"id":781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":780,"name":"","nodeType":"VariableDeclaration","scope":796,"src":"6560:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":779,"name":"bool","nodeType":"ElementaryTypeName","src":"6560:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6559:6:2"},"scope":1797,"src":"6365:328:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":895,"nodeType":"Block","src":"7205:876:2","statements":[{"assignments":[818],"declarations":[{"constant":false,"id":818,"name":"scheme","nodeType":"VariableDeclaration","scope":895,"src":"7216:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory_ptr","typeString":"struct Controller.Scheme"},"typeName":{"contractScope":null,"id":817,"name":"Scheme","nodeType":"UserDefinedTypeName","referencedDeclaration":346,"src":"7216:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage_ptr","typeString":"struct Controller.Scheme"}},"value":null,"visibility":"internal"}],"id":822,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":819,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7239:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":821,"indexExpression":{"argumentTypes":null,"id":820,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"7247:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7239:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7216:39:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7561:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7554:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7554:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":827,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"7574:12:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":828,"name":"scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"7587:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory_ptr","typeString":"struct Controller.Scheme memory"}},"id":829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7587:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7574:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":831,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7573:33:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7554:52:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7608:32:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":833,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7609:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":836,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":834,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7617:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7617:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7609:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7609:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":839,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7607:34:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7554:87:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7652:1:2","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":841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7645:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7645:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7554:100:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7546:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7546:109:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":846,"nodeType":"ExpressionStatement","src":"7546:109:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7765:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7758:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7758:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":851,"name":"scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"7778:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory_ptr","typeString":"struct Controller.Scheme memory"}},"id":852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7778:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7798:32:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":853,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7799:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":856,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":854,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7807:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7807:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7799:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7799:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7797:34:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7778:53:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7777:55:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7758:74:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7843:1:2","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":863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7836:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7836:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7758:87:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7750:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7750:96:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":868,"nodeType":"ExpressionStatement","src":"7750:96:2"},{"expression":{"argumentTypes":null,"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":869,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7890:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":871,"indexExpression":{"argumentTypes":null,"id":870,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"7898:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":343,"src":"7890:27:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":873,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"7920:11:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7890:41:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":875,"nodeType":"ExpressionStatement","src":"7890:41:2"},{"expression":{"argumentTypes":null,"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":876,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7941:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":878,"indexExpression":{"argumentTypes":null,"id":877,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"7949:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7941:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7941:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":880,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"7972:12:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7992:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7985:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7985:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7972:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7941:62:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":886,"nodeType":"ExpressionStatement","src":"7941:62:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":888,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8033:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8033:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":890,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"8045:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":887,"name":"RegisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"8018:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8018:35:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":892,"nodeType":"EmitStatement","src":"8013:40:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8070:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":816,"id":894,"nodeType":"Return","src":"8063:11:2"}]},"documentation":"@dev register a scheme\n@param _scheme the address of the scheme\n@param _paramsHash a hashed configuration of the usage of the scheme\n@param _permissions the permissions the new scheme will have\n@return bool which represents a success","id":896,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":807,"modifierName":{"argumentTypes":null,"id":806,"name":"onlyRegisteringSchemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"7087:22:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"7087:22:2"},{"arguments":[{"argumentTypes":null,"hexValue":"7265676973746572536368656d65","id":809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7138:16:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c6de131411a6b4c4ab26bd5c5ac65f44cdd792220de1a6733d66d35c3433e601","typeString":"literal_string \"registerScheme\""},"value":"registerScheme"}],"id":810,"modifierName":{"argumentTypes":null,"id":808,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"7114:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"7114:41:2"},{"arguments":[{"argumentTypes":null,"id":812,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"7174:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":813,"modifierName":{"argumentTypes":null,"id":811,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"7160:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"7160:22:2"}],"name":"registerScheme","nodeType":"FunctionDefinition","parameters":{"id":805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":798,"name":"_scheme","nodeType":"VariableDeclaration","scope":896,"src":"6994:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":797,"name":"address","nodeType":"ElementaryTypeName","src":"6994:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":800,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":896,"src":"7011:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7011:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":802,"name":"_permissions","nodeType":"VariableDeclaration","scope":896,"src":"7032:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":801,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7032:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":804,"name":"_avatar","nodeType":"VariableDeclaration","scope":896,"src":"7053:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":803,"name":"address","nodeType":"ElementaryTypeName","src":"7053:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6993:76:2"},"returnParameters":{"id":816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":815,"name":"","nodeType":"VariableDeclaration","scope":896,"src":"7195:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":814,"name":"bool","nodeType":"ElementaryTypeName","src":"7195:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"7194:6:2"},"scope":1797,"src":"6970:1111:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":959,"nodeType":"Block","src":"8428:440:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":914,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8502:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":913,"name":"_isSchemeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"8482:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8482:28:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8514:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8482:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":921,"nodeType":"IfStatement","src":"8478:80:2","trueBody":{"id":920,"nodeType":"Block","src":"8521:37:2","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8542:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":912,"id":919,"nodeType":"Return","src":"8535:12:2"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8644:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8637:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8637:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":926,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"8657:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":928,"indexExpression":{"argumentTypes":null,"id":927,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8665:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8657:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"8657:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"8687:32:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":930,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"8688:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":933,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8696:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8696:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8688:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"8688:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8686:34:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8657:63:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8656:65:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8637:84:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8732:1:2","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":940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8725:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8725:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8637:97:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"8629:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8629:106:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":945,"nodeType":"ExpressionStatement","src":"8629:106:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":947,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8787:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8787:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":949,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8799:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":946,"name":"UnregisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"8770:16:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8770:37:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":951,"nodeType":"EmitStatement","src":"8765:42:2"},{"expression":{"argumentTypes":null,"id":955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8817:23:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":952,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"8824:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":954,"indexExpression":{"argumentTypes":null,"id":953,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8832:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8824:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":956,"nodeType":"ExpressionStatement","src":"8817:23:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8857:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":912,"id":958,"nodeType":"Return","src":"8850:11:2"}]},"documentation":"@dev unregister a scheme\n@param _scheme the address of the scheme\n@return bool which represents a success","id":960,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":903,"modifierName":{"argumentTypes":null,"id":902,"name":"onlyRegisteringSchemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"8308:22:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"8308:22:2"},{"arguments":[{"argumentTypes":null,"hexValue":"756e7265676973746572536368656d65","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8359:18:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b691bb484251ef01d241995950a354987a3e0c00fe2381f87b564ec41aab942c","typeString":"literal_string \"unregisterScheme\""},"value":"unregisterScheme"}],"id":906,"modifierName":{"argumentTypes":null,"id":904,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"8335:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"8335:43:2"},{"arguments":[{"argumentTypes":null,"id":908,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":900,"src":"8397:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":909,"modifierName":{"argumentTypes":null,"id":907,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"8383:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"8383:22:2"}],"name":"unregisterScheme","nodeType":"FunctionDefinition","parameters":{"id":901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":898,"name":"_scheme","nodeType":"VariableDeclaration","scope":960,"src":"8257:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":897,"name":"address","nodeType":"ElementaryTypeName","src":"8257:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":900,"name":"_avatar","nodeType":"VariableDeclaration","scope":960,"src":"8274:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":899,"name":"address","nodeType":"ElementaryTypeName","src":"8274:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8255:35:2"},"returnParameters":{"id":912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":911,"name":"","nodeType":"VariableDeclaration","scope":960,"src":"8418:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":910,"name":"bool","nodeType":"ElementaryTypeName","src":"8418:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"8417:6:2"},"scope":1797,"src":"8230:638:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":995,"nodeType":"Block","src":"9067:211:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9101:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9101:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":970,"name":"_isSchemeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"9081:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9081:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9116:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"9081:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":979,"nodeType":"IfStatement","src":"9077:83:2","trueBody":{"id":978,"nodeType":"Block","src":"9123:37:2","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9144:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":969,"id":977,"nodeType":"Return","src":"9137:12:2"}]}},{"expression":{"argumentTypes":null,"id":984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9169:26:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":980,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"9176:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":983,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":981,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9184:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9184:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9176:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"ExpressionStatement","src":"9169:26:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9227:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9227:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":989,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9239:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9239:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":986,"name":"UnregisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"9210:16:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9210:40:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":992,"nodeType":"EmitStatement","src":"9205:45:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9267:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":969,"id":994,"nodeType":"Return","src":"9260:11:2"}]},"documentation":"@dev unregister the caller's scheme\n@return bool which represents a success","id":996,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":965,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"9044:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":966,"modifierName":{"argumentTypes":null,"id":964,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"9030:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"9030:22:2"}],"name":"unregisterSelf","nodeType":"FunctionDefinition","parameters":{"id":963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":962,"name":"_avatar","nodeType":"VariableDeclaration","scope":996,"src":"9004:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":961,"name":"address","nodeType":"ElementaryTypeName","src":"9004:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"9003:17:2"},"returnParameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"name":"","nodeType":"VariableDeclaration","scope":996,"src":"9061:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":967,"name":"bool","nodeType":"ElementaryTypeName","src":"9061:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9060:6:2"},"scope":1797,"src":"8980:298:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1138,"nodeType":"Block","src":"9711:1417:2","statements":[{"assignments":[1015],"declarations":[{"constant":false,"id":1015,"name":"when","nodeType":"VariableDeclaration","scope":1138,"src":"9721:40:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":1014,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"9721:35:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"id":1021,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1017,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"9790:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1016,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"9764:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:44:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"when","nodeType":"MemberAccess","referencedDeclaration":1906,"src":"9764:49:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_CallPhase_$1879_$","typeString":"function () external returns (enum GlobalConstraintInterface.CallPhase)"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:51:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"VariableDeclarationStatement","src":"9721:94:2"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1022,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"9830:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1023,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"9838:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"9838:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9838:39:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"9830:47:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1027,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9829:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1028,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"9894:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1029,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"9902:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"9902:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9902:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"9894:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9893:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9829:120:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1075,"nodeType":"IfStatement","src":"9825:596:2","trueBody":{"id":1074,"nodeType":"Block","src":"9951:470:2","statements":[{"condition":{"argumentTypes":null,"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9969:61:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1035,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"9970:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1037,"indexExpression":{"argumentTypes":null,"id":1036,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"9999:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9970:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"9970:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1072,"nodeType":"Block","src":"10286:125:2","statements":[{"expression":{"argumentTypes":null,"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1062,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"10304:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1067,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1063,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"10325:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1065,"indexExpression":{"argumentTypes":null,"id":1064,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10354:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10325:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"10325:53:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10304:75:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"10304:82:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1069,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"10389:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10304:92:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1071,"nodeType":"ExpressionStatement","src":"10304:92:2"}]},"id":1073,"nodeType":"IfStatement","src":"9965:446:2","trueBody":{"id":1061,"nodeType":"Block","src":"10032:249:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1044,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10093:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1045,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"10112:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1043,"name":"GlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"10076:16:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraint_$351_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraint storage pointer)"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10076:44:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}],"expression":{"argumentTypes":null,"id":1040,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"10050:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10050:25:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_GlobalConstraint_$351_storage_$returns$_t_uint256_$","typeString":"function (struct Controller.GlobalConstraint storage ref) returns (uint256)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10050:71:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1048,"nodeType":"ExpressionStatement","src":"10050:71:2"},{"expression":{"argumentTypes":null,"id":1059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1049,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"10139:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1051,"indexExpression":{"argumentTypes":null,"id":1050,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10168:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10139:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"74727565","id":1053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10230:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1054,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"10236:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10236:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10264:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10236:29:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1052,"name":"GlobalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"10205:24:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraintRegister_$356_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraintRegister storage pointer)"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10205:61:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory","typeString":"struct Controller.GlobalConstraintRegister memory"}},"src":"10139:127:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1060,"nodeType":"ExpressionStatement","src":"10139:127:2"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1076,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10435:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1077,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"10443:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"10443:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10443:40:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"10435:48:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1081,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10434:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1082,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10500:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1083,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"10508:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"10508:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10508:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"10500:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10499:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10434:121:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1129,"nodeType":"IfStatement","src":"10430:603:2","trueBody":{"id":1128,"nodeType":"Block","src":"10557:476:2","statements":[{"condition":{"argumentTypes":null,"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10575:62:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1089,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"10576:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1091,"indexExpression":{"argumentTypes":null,"id":1090,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10606:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10576:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"10576:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1126,"nodeType":"Block","src":"10896:127:2","statements":[{"expression":{"argumentTypes":null,"id":1124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1116,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"10914:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1121,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1117,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"10936:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1119,"indexExpression":{"argumentTypes":null,"id":1118,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10966:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10936:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"10936:54:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10914:77:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"10914:84:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1123,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"11001:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10914:94:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1125,"nodeType":"ExpressionStatement","src":"10914:94:2"}]},"id":1127,"nodeType":"IfStatement","src":"10571:452:2","trueBody":{"id":1115,"nodeType":"Block","src":"10639:252:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1098,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10701:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1099,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"10720:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1097,"name":"GlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"10684:16:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraint_$351_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraint storage pointer)"}},"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10684:44:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}],"expression":{"argumentTypes":null,"id":1094,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"10657:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10657:26:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_GlobalConstraint_$351_storage_$returns$_t_uint256_$","typeString":"function (struct Controller.GlobalConstraint storage ref) returns (uint256)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10657:72:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1102,"nodeType":"ExpressionStatement","src":"10657:72:2"},{"expression":{"argumentTypes":null,"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1103,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"10747:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1105,"indexExpression":{"argumentTypes":null,"id":1104,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10777:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10747:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"74727565","id":1107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10839:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1108,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"10845:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10845:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10874:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10845:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1106,"name":"GlobalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"10814:24:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraintRegister_$356_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraintRegister storage pointer)"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10814:62:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory","typeString":"struct Controller.GlobalConstraintRegister memory"}},"src":"10747:129:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1114,"nodeType":"ExpressionStatement","src":"10747:129:2"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1131,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"11067:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1132,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"11086:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1133,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"11095:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}],"id":1130,"name":"AddGlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":432,"src":"11047:19:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_enum$_CallPhase_$1879_$returns$__$","typeString":"function (address,bytes32,enum GlobalConstraintInterface.CallPhase)"}},"id":1134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11047:53:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1135,"nodeType":"EmitStatement","src":"11042:58:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11117:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1011,"id":1137,"nodeType":"Return","src":"11110:11:2"}]},"documentation":"@dev add or update Global Constraint\n@param _globalConstraint the address of the global constraint to be added.\n@param _params the constraint parameters hash.\n@return bool which represents a success","id":1139,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1005,"modifierName":{"argumentTypes":null,"id":1004,"name":"onlyGlobalConstraintsScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"9634:27:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"9634:27:2"},{"arguments":[{"argumentTypes":null,"id":1007,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"9680:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1008,"modifierName":{"argumentTypes":null,"id":1006,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"9666:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"9666:22:2"}],"name":"addGlobalConstraint","nodeType":"FunctionDefinition","parameters":{"id":1003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":998,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1139,"src":"9556:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":997,"name":"address","nodeType":"ElementaryTypeName","src":"9556:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1000,"name":"_params","nodeType":"VariableDeclaration","scope":1139,"src":"9583:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9583:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1002,"name":"_avatar","nodeType":"VariableDeclaration","scope":1139,"src":"9600:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1001,"name":"address","nodeType":"ElementaryTypeName","src":"9600:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"9555:61:2"},"returnParameters":{"id":1011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1010,"name":"","nodeType":"VariableDeclaration","scope":1139,"src":"9701:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1009,"name":"bool","nodeType":"ElementaryTypeName","src":"9701:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9700:6:2"},"scope":1797,"src":"9527:1601:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1335,"nodeType":"Block","src":"11538:2234:2","statements":[{"assignments":[1154],"declarations":[{"constant":false,"id":1154,"name":"globalConstraintRegister","nodeType":"VariableDeclaration","scope":1335,"src":"11548:56:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister"},"typeName":{"contractScope":null,"id":1153,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"11548:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}},"value":null,"visibility":"internal"}],"id":1155,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"11548:56:2"},{"assignments":[1157],"declarations":[{"constant":false,"id":1157,"name":"globalConstraint","nodeType":"VariableDeclaration","scope":1335,"src":"11614:40:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint"},"typeName":{"contractScope":null,"id":1156,"name":"GlobalConstraint","nodeType":"UserDefinedTypeName","referencedDeclaration":351,"src":"11614:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage_ptr","typeString":"struct Controller.GlobalConstraint"}},"value":null,"visibility":"internal"}],"id":1158,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"11614:40:2"},{"assignments":[1162],"declarations":[{"constant":false,"id":1162,"name":"when","nodeType":"VariableDeclaration","scope":1335,"src":"11664:40:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":1161,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"11664:35:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"id":1168,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1164,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"11733:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1163,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"11707:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11707:44:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"when","nodeType":"MemberAccess","referencedDeclaration":1906,"src":"11707:49:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_CallPhase_$1879_$","typeString":"function () external returns (enum GlobalConstraintInterface.CallPhase)"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11707:51:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"VariableDeclarationStatement","src":"11664:94:2"},{"assignments":[1170],"declarations":[{"constant":false,"id":1170,"name":"retVal","nodeType":"VariableDeclaration","scope":1335,"src":"11768:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1169,"name":"bool","nodeType":"ElementaryTypeName","src":"11768:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":1172,"initialValue":{"argumentTypes":null,"hexValue":"66616c7365","id":1171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11782:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"11768:19:2"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1173,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"11803:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1174,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"11811:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"11811:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11811:39:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"11803:47:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1178,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11802:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1179,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"11867:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1180,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"11875:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"11875:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11875:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"11867:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11866:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11802:120:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1245,"nodeType":"IfStatement","src":"11798:852:2","trueBody":{"id":1244,"nodeType":"Block","src":"11924:726:2","statements":[{"expression":{"argumentTypes":null,"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1186,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"11938:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1187,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"11965:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1189,"indexExpression":{"argumentTypes":null,"id":1188,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"11994:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11965:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"src":"11938:74:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1191,"nodeType":"ExpressionStatement","src":"11938:74:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1192,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12030:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"12030:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1243,"nodeType":"IfStatement","src":"12026:614:2","trueBody":{"id":1242,"nodeType":"Block","src":"12069:571:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1194,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12091:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12091:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1196,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12124:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12124:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12152:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12124:29:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12091:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1227,"nodeType":"IfStatement","src":"12087:389:2","trueBody":{"id":1226,"nodeType":"Block","src":"12155:321:2","statements":[{"expression":{"argumentTypes":null,"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1201,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"12177:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1202,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12196:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1207,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1203,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12217:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12217:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12245:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12217:29:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12196:51:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"src":"12177:70:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1209,"nodeType":"ExpressionStatement","src":"12177:70:2"},{"expression":{"argumentTypes":null,"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1210,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12269:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1213,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1211,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12290:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12290:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12269:52:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1214,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"12324:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"src":"12269:71:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1216,"nodeType":"ExpressionStatement","src":"12269:71:2"},{"expression":{"argumentTypes":null,"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1217,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"12362:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1220,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1218,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"12391:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"12391:26:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12362:56:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12362:62:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1222,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12427:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12427:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12362:95:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1225,"nodeType":"ExpressionStatement","src":"12362:95:2"}]}},{"expression":{"argumentTypes":null,"id":1231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"12493:29:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1228,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12493:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12493:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1232,"nodeType":"ExpressionStatement","src":"12493:29:2"},{"expression":{"argumentTypes":null,"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12540:54:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1233,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"12547:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1235,"indexExpression":{"argumentTypes":null,"id":1234,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"12576:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12547:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1237,"nodeType":"ExpressionStatement","src":"12540:54:2"},{"expression":{"argumentTypes":null,"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1238,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"12612:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":1239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12621:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12612:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1241,"nodeType":"ExpressionStatement","src":"12612:13:2"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1246,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"12664:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1247,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"12672:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"12672:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12672:40:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"12664:48:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1251,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12663:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1252,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"12729:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1253,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"12737:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"12737:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12737:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"12729:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1257,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12728:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12663:121:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1318,"nodeType":"IfStatement","src":"12659:861:2","trueBody":{"id":1317,"nodeType":"Block","src":"12786:734:2","statements":[{"expression":{"argumentTypes":null,"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1259,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12800:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1260,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"12827:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1262,"indexExpression":{"argumentTypes":null,"id":1261,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"12857:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12827:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"src":"12800:75:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1264,"nodeType":"ExpressionStatement","src":"12800:75:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1265,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12893:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"12893:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1316,"nodeType":"IfStatement","src":"12889:621:2","trueBody":{"id":1315,"nodeType":"Block","src":"12932:578:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1267,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12954:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12954:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1269,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"12987:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12987:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13016:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12987:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12954:63:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1300,"nodeType":"IfStatement","src":"12950:394:2","trueBody":{"id":1299,"nodeType":"Block","src":"13019:325:2","statements":[{"expression":{"argumentTypes":null,"id":1281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1274,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"13041:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1275,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13060:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1280,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1276,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13082:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13082:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13111:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13082:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13060:53:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"src":"13041:72:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1282,"nodeType":"ExpressionStatement","src":"13041:72:2"},{"expression":{"argumentTypes":null,"id":1288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1283,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13135:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1286,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1284,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13157:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13157:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13135:53:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1287,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"13191:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"src":"13135:72:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1289,"nodeType":"ExpressionStatement","src":"13135:72:2"},{"expression":{"argumentTypes":null,"id":1297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1290,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"13229:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1293,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1291,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"13259:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"13259:26:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13229:57:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13229:63:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1295,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13295:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13295:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13229:96:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1298,"nodeType":"ExpressionStatement","src":"13229:96:2"}]}},{"expression":{"argumentTypes":null,"id":1304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13361:30:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1301,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13361:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13361:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1305,"nodeType":"ExpressionStatement","src":"13361:30:2"},{"expression":{"argumentTypes":null,"id":1309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13409:55:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1306,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"13416:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1308,"indexExpression":{"argumentTypes":null,"id":1307,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"13446:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13416:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1310,"nodeType":"ExpressionStatement","src":"13409:55:2"},{"expression":{"argumentTypes":null,"id":1313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1311,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13482:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":1312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13491:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13482:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1314,"nodeType":"ExpressionStatement","src":"13482:13:2"}]}}]}},{"condition":{"argumentTypes":null,"id":1319,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13533:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1332,"nodeType":"IfStatement","src":"13529:214:2","trueBody":{"id":1331,"nodeType":"Block","src":"13541:202:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1321,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"13596:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1322,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13627:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13627:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1324,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"13671:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1325,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"13679:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"13679:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13679:39:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"13671:47:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1320,"name":"RemoveGlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"13560:22:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13560:172:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1330,"nodeType":"EmitStatement","src":"13555:177:2"}]}},{"expression":{"argumentTypes":null,"id":1333,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13759:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1152,"id":1334,"nodeType":"Return","src":"13752:13:2"}]},"documentation":"@dev remove Global Constraint\n@param _globalConstraint the address of the global constraint to be remove.\n@return bool which represents a success","id":1336,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1146,"modifierName":{"argumentTypes":null,"id":1145,"name":"onlyGlobalConstraintsScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"11461:27:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"11461:27:2"},{"arguments":[{"argumentTypes":null,"id":1148,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"11507:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1149,"modifierName":{"argumentTypes":null,"id":1147,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"11493:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"11493:22:2"}],"name":"removeGlobalConstraint","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1336,"src":"11400:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1140,"name":"address","nodeType":"ElementaryTypeName","src":"11400:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1143,"name":"_avatar","nodeType":"VariableDeclaration","scope":1336,"src":"11427:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1142,"name":"address","nodeType":"ElementaryTypeName","src":"11427:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"11399:44:2"},"returnParameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1151,"name":"","nodeType":"VariableDeclaration","scope":1336,"src":"11528:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1150,"name":"bool","nodeType":"ElementaryTypeName","src":"11528:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"11527:6:2"},"scope":1797,"src":"11367:2405:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1441,"nodeType":"Block","src":"14164:756:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1353,"name":"newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"14182:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14207:1:2","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":1354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14199:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14199:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"14182:27:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1352,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14174:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14174:36:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1359,"nodeType":"ExpressionStatement","src":"14174:36:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1361,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14283:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14309:1:2","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":1362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14301:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14301:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"14283:28:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1360,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14275:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14275:37:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1367,"nodeType":"ExpressionStatement","src":"14275:37:2"},{"expression":{"argumentTypes":null,"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1368,"name":"newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"14322:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1369,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14338:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14322:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1371,"nodeType":"ExpressionStatement","src":"14322:30:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1375,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14387:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1372,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"14362:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"14362:24:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14362:40:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1377,"nodeType":"ExpressionStatement","src":"14362:40:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1379,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"14420:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14420:12:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14420:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1382,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14438:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14420:32:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1378,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14412:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14412:41:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1385,"nodeType":"ExpressionStatement","src":"14412:41:2"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1386,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"14467:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14467:17:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14467:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1390,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"14498:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":1389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14490:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14490:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14467:36:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1408,"nodeType":"IfStatement","src":"14463:172:2","trueBody":{"id":1407,"nodeType":"Block","src":"14505:130:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1396,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14549:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1393,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"14519:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":1395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"14519:29:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14519:45:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1398,"nodeType":"ExpressionStatement","src":"14519:45:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1400,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"14586:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14586:17:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14586:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1403,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14609:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14586:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14578:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14578:46:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1406,"nodeType":"ExpressionStatement","src":"14578:46:2"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1409,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"14648:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14648:22:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14648:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1413,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"14684:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":1412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14676:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14676:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14648:41:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1431,"nodeType":"IfStatement","src":"14644:187:2","trueBody":{"id":1430,"nodeType":"Block","src":"14691:140:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1419,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14740:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1416,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"14705:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"14705:34:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14705:50:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1421,"nodeType":"ExpressionStatement","src":"14705:50:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1423,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"14777:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14777:22:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14777:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1426,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14805:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14777:42:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14769:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14769:51:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1429,"nodeType":"ExpressionStatement","src":"14769:51:2"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1434,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"14871:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":1433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14863:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14863:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1436,"name":"newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"14878:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1432,"name":"UpgradeController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"14845:17:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14845:47:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1438,"nodeType":"EmitStatement","src":"14840:52:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14909:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1351,"id":1440,"nodeType":"Return","src":"14902:11:2"}]},"documentation":"@dev upgrade the Controller\n The function will trigger an event 'UpgradeController'.\n@param _newController the address of the new controller.\n@return bool which represents a success","id":1442,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1343,"modifierName":{"argumentTypes":null,"id":1342,"name":"onlyUpgradingScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"14086:19:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"14086:19:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1346,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1340,"src":"14132:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14124:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14124:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1348,"modifierName":{"argumentTypes":null,"id":1344,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"14110:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"14110:31:2"}],"name":"upgradeController","nodeType":"FunctionDefinition","parameters":{"id":1341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"name":"_newController","nodeType":"VariableDeclaration","scope":1442,"src":"14029:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1337,"name":"address","nodeType":"ElementaryTypeName","src":"14029:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1340,"name":"_avatar","nodeType":"VariableDeclaration","scope":1442,"src":"14053:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1339,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"14053:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"14028:40:2"},"returnParameters":{"id":1351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1350,"name":"","nodeType":"VariableDeclaration","scope":1442,"src":"14154:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1349,"name":"bool","nodeType":"ElementaryTypeName","src":"14154:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"14153:6:2"},"scope":1797,"src":"14002:918:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1474,"nodeType":"Block","src":"15600:68:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1469,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"15636:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1470,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"15647:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"argumentTypes":null,"id":1471,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1450,"src":"15654:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1467,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"15617:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":195,"src":"15617:18:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) external returns (bool,bytes memory)"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15617:44:2","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":1466,"id":1473,"nodeType":"Return","src":"15610:51:2"}]},"documentation":"@dev perform a generic call to an arbitrary contract\n@param _contract the contract's address to call\n@param _data ABI-encoded contract call to call `_contract` address.\n@param _avatar the controller's avatar address\n@param _value value (ETH) to transfer with the transaction\n@return bool -success\n bytes - the return value of the called _contract's function.","id":1475,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1453,"modifierName":{"argumentTypes":null,"id":1452,"name":"onlyGenericCallScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":590,"src":"15462:21:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"15462:21:2"},{"arguments":[{"argumentTypes":null,"hexValue":"67656e6572696343616c6c","id":1455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15512:13:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f50c9c0d8078680ea2ffd7664f6b8e067777195c71561a9aa7bb8b53f908fb39","typeString":"literal_string \"genericCall\""},"value":"genericCall"}],"id":1456,"modifierName":{"argumentTypes":null,"id":1454,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"15488:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"15488:38:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1459,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1448,"src":"15553:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15545:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15545:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1461,"modifierName":{"argumentTypes":null,"id":1457,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"15531:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"15531:31:2"}],"name":"genericCall","nodeType":"FunctionDefinition","parameters":{"id":1451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1444,"name":"_contract","nodeType":"VariableDeclaration","scope":1475,"src":"15372:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1443,"name":"address","nodeType":"ElementaryTypeName","src":"15372:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1446,"name":"_data","nodeType":"VariableDeclaration","scope":1475,"src":"15391:20:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1445,"name":"bytes","nodeType":"ElementaryTypeName","src":"15391:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1448,"name":"_avatar","nodeType":"VariableDeclaration","scope":1475,"src":"15413:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1447,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"15413:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":1450,"name":"_value","nodeType":"VariableDeclaration","scope":1475,"src":"15429:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1449,"name":"uint256","nodeType":"ElementaryTypeName","src":"15429:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15371:73:2"},"returnParameters":{"id":1466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1463,"name":"","nodeType":"VariableDeclaration","scope":1475,"src":"15576:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1462,"name":"bool","nodeType":"ElementaryTypeName","src":"15576:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1465,"name":"","nodeType":"VariableDeclaration","scope":1475,"src":"15582:12:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1464,"name":"bytes","nodeType":"ElementaryTypeName","src":"15582:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"15575:20:2"},"scope":1797,"src":"15351:317:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1502,"nodeType":"Block","src":"16077:59:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1498,"name":"_amountInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"16111:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1499,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"16125:3:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":1496,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"16094:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendEther","nodeType":"MemberAccess","referencedDeclaration":220,"src":"16094:16:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_payable_$returns$_t_bool_$","typeString":"function (uint256,address payable) external returns (bool)"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16094:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1495,"id":1501,"nodeType":"Return","src":"16087:42:2"}]},"documentation":"@dev send some ether\n@param _amountInWei the amount of ether (in Wei) to send\n@param _to address of the beneficiary\n@return bool which represents a success","id":1503,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1484,"modifierName":{"argumentTypes":null,"id":1483,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"15957:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"15957:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"73656e644574686572","id":1486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16006:11:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c700fcf825bb96908bcfa40b8d91237381cd207a842fc67195330064c6f87772","typeString":"literal_string \"sendEther\""},"value":"sendEther"}],"id":1487,"modifierName":{"argumentTypes":null,"id":1485,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"15982:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"15982:36:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1490,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"16045:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16037:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16037:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1492,"modifierName":{"argumentTypes":null,"id":1488,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"16023:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"16023:31:2"}],"name":"sendEther","nodeType":"FunctionDefinition","parameters":{"id":1482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1477,"name":"_amountInWei","nodeType":"VariableDeclaration","scope":1503,"src":"15881:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1476,"name":"uint256","nodeType":"ElementaryTypeName","src":"15881:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1479,"name":"_to","nodeType":"VariableDeclaration","scope":1503,"src":"15903:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1478,"name":"address","nodeType":"ElementaryTypeName","src":"15903:15:2","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1481,"name":"_avatar","nodeType":"VariableDeclaration","scope":1503,"src":"15924:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1480,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"15924:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"15880:59:2"},"returnParameters":{"id":1495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"name":"","nodeType":"VariableDeclaration","scope":1503,"src":"16067:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1493,"name":"bool","nodeType":"ElementaryTypeName","src":"16067:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"16066:6:2"},"scope":1797,"src":"15862:274:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1533,"nodeType":"Block","src":"16668:81:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1528,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1505,"src":"16714:14:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1529,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"16730:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1530,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"16735:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1526,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"16685:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":252,"src":"16685:28:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256) external returns (bool)"}},"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16685:57:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1525,"id":1532,"nodeType":"Return","src":"16678:64:2"}]},"documentation":"@dev send some amount of arbitrary ERC20 Tokens\n@param _externalToken the address of the Token Contract\n@param _to address of the beneficiary\n@param _value the amount of ether (in Wei) to send\n@return bool which represents a success","id":1534,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1514,"modifierName":{"argumentTypes":null,"id":1513,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"16536:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"16536:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"65787465726e616c546f6b656e5472616e73666572","id":1516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16585:23:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7813035546e060c03dbe66bdee1941f9a0ad6551df13f617f14419ad20f4154f","typeString":"literal_string \"externalTokenTransfer\""},"value":"externalTokenTransfer"}],"id":1517,"modifierName":{"argumentTypes":null,"id":1515,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"16561:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"16561:48:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1520,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"16636:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16628:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16628:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1522,"modifierName":{"argumentTypes":null,"id":1518,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"16614:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"16614:31:2"}],"name":"externalTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":1512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1505,"name":"_externalToken","nodeType":"VariableDeclaration","scope":1534,"src":"16451:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1504,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"16451:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1507,"name":"_to","nodeType":"VariableDeclaration","scope":1534,"src":"16474:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"16474:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1509,"name":"_value","nodeType":"VariableDeclaration","scope":1534,"src":"16487:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1508,"name":"uint256","nodeType":"ElementaryTypeName","src":"16487:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1511,"name":"_avatar","nodeType":"VariableDeclaration","scope":1534,"src":"16503:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1510,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"16503:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"16450:68:2"},"returnParameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1524,"name":"","nodeType":"VariableDeclaration","scope":1534,"src":"16658:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1523,"name":"bool","nodeType":"ElementaryTypeName","src":"16658:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"16657:6:2"},"scope":1797,"src":"16420:329:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1567,"nodeType":"Block","src":"17531:92:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1561,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"17581:14:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1562,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"17597:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1563,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"17604:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1564,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"17609:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1559,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"17548:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransferFrom","nodeType":"MemberAccess","referencedDeclaration":288,"src":"17548:32:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) external returns (bool)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17548:68:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1558,"id":1566,"nodeType":"Return","src":"17541:75:2"}]},"documentation":"@dev transfer token \"from\" address \"to\" address\n One must to approve the amount of tokens which can be spend from the\n \"from\" account.This can be done using externalTokenApprove.\n@param _externalToken the address of the Token Contract\n@param _from address of the account to send from\n@param _to address of the beneficiary\n@param _value the amount of ether (in Wei) to send\n@return bool which represents a success","id":1568,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1547,"modifierName":{"argumentTypes":null,"id":1546,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"17395:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"17395:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"65787465726e616c546f6b656e5472616e7366657246726f6d","id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17444:27:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ac07667e4f3fe9c6116bdfeed71f93079924e4156b3ee8a0c3180f10145562f3","typeString":"literal_string \"externalTokenTransferFrom\""},"value":"externalTokenTransferFrom"}],"id":1550,"modifierName":{"argumentTypes":null,"id":1548,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"17420:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"17420:52:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1553,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1544,"src":"17499:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17491:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17491:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1555,"modifierName":{"argumentTypes":null,"id":1551,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"17477:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"17477:31:2"}],"name":"externalTokenTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":1545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1536,"name":"_externalToken","nodeType":"VariableDeclaration","scope":1568,"src":"17279:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1535,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"17279:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1538,"name":"_from","nodeType":"VariableDeclaration","scope":1568,"src":"17306:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1537,"name":"address","nodeType":"ElementaryTypeName","src":"17306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1540,"name":"_to","nodeType":"VariableDeclaration","scope":1568,"src":"17325:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1539,"name":"address","nodeType":"ElementaryTypeName","src":"17325:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1542,"name":"_value","nodeType":"VariableDeclaration","scope":1568,"src":"17342:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1541,"name":"uint256","nodeType":"ElementaryTypeName","src":"17342:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1544,"name":"_avatar","nodeType":"VariableDeclaration","scope":1568,"src":"17362:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1543,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"17362:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"17273:104:2"},"returnParameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1557,"name":"","nodeType":"VariableDeclaration","scope":1568,"src":"17521:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1556,"name":"bool","nodeType":"ElementaryTypeName","src":"17521:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"17520:6:2"},"scope":1797,"src":"17239:384:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1598,"nodeType":"Block","src":"18263:86:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1593,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1570,"src":"18309:14:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1594,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1572,"src":"18325:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1595,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"18335:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1591,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"18280:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenApproval","nodeType":"MemberAccess","referencedDeclaration":320,"src":"18280:28:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256) external returns (bool)"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18280:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1590,"id":1597,"nodeType":"Return","src":"18273:69:2"}]},"documentation":"@dev externalTokenApproval approve the spender address to spend a specified amount of tokens\n on behalf of msg.sender.\n@param _externalToken the address of the Token Contract\n@param _spender address\n@param _value the amount of ether (in Wei) which the approval is referring to.\n@return bool which represents a success","id":1599,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1579,"modifierName":{"argumentTypes":null,"id":1578,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"18123:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"18123:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"65787465726e616c546f6b656e496e637265617365417070726f76616c","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18172:31:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a6b5493ce06b69199b7c164b2fe8141dd5ecf7d2d491b28efc85f9c00fdfd15c","typeString":"literal_string \"externalTokenIncreaseApproval\""},"value":"externalTokenIncreaseApproval"}],"id":1582,"modifierName":{"argumentTypes":null,"id":1580,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"18148:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"18148:56:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1585,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1576,"src":"18231:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18223:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18223:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1587,"modifierName":{"argumentTypes":null,"id":1583,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"18209:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"18209:31:2"}],"name":"externalTokenApproval","nodeType":"FunctionDefinition","parameters":{"id":1577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1570,"name":"_externalToken","nodeType":"VariableDeclaration","scope":1599,"src":"18033:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1569,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"18033:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1572,"name":"_spender","nodeType":"VariableDeclaration","scope":1599,"src":"18056:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1571,"name":"address","nodeType":"ElementaryTypeName","src":"18056:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1574,"name":"_value","nodeType":"VariableDeclaration","scope":1599,"src":"18074:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"18074:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1576,"name":"_avatar","nodeType":"VariableDeclaration","scope":1599,"src":"18090:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1575,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"18090:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"18032:73:2"},"returnParameters":{"id":1590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1589,"name":"","nodeType":"VariableDeclaration","scope":1599,"src":"18253:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1588,"name":"bool","nodeType":"ElementaryTypeName","src":"18253:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"18252:6:2"},"scope":1797,"src":"18002:347:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1620,"nodeType":"Block","src":"18781:50:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1617,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"18814:9:2","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"argumentTypes":null,"id":1615,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"18798:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"metaData","nodeType":"MemberAccess","referencedDeclaration":336,"src":"18798:15:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) external returns (bool)"}},"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18798:26:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1614,"id":1619,"nodeType":"Return","src":"18791:33:2"}]},"documentation":"@dev metaData emits an event with a string, should contain the hash of some meta data.\n@param _metaData a string representing a hash of the meta data\n@param _avatar Avatar\n@return bool which represents a success","id":1621,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1606,"modifierName":{"argumentTypes":null,"id":1605,"name":"onlyMetaDataScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"18692:18:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"18692:18:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1609,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"18741:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18733:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18733:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1611,"modifierName":{"argumentTypes":null,"id":1607,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"18719:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"18719:31:2"}],"name":"metaData","nodeType":"FunctionDefinition","parameters":{"id":1604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1601,"name":"_metaData","nodeType":"VariableDeclaration","scope":1621,"src":"18624:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1600,"name":"string","nodeType":"ElementaryTypeName","src":"18624:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1603,"name":"_avatar","nodeType":"VariableDeclaration","scope":1621,"src":"18651:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1602,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"18651:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"18623:43:2"},"returnParameters":{"id":1614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1613,"name":"","nodeType":"VariableDeclaration","scope":1621,"src":"18767:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1612,"name":"bool","nodeType":"ElementaryTypeName","src":"18767:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"18766:6:2"},"scope":1797,"src":"18606:225:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1635,"nodeType":"Block","src":"19078:49:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1632,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"19103:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":1631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19095:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19095:25:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1630,"id":1634,"nodeType":"Return","src":"19088:32:2"}]},"documentation":"@dev getNativeReputation\n@param _avatar the organization avatar.\n@return organization native reputation","id":1636,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1626,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"19047:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1627,"modifierName":{"argumentTypes":null,"id":1625,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19033:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19033:22:2"}],"name":"getNativeReputation","nodeType":"FunctionDefinition","parameters":{"id":1624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1623,"name":"_avatar","nodeType":"VariableDeclaration","scope":1636,"src":"19007:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1622,"name":"address","nodeType":"ElementaryTypeName","src":"19007:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19006:17:2"},"returnParameters":{"id":1630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1629,"name":"","nodeType":"VariableDeclaration","scope":1636,"src":"19069:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1628,"name":"address","nodeType":"ElementaryTypeName","src":"19069:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19068:9:2"},"scope":1797,"src":"18978:149:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1652,"nodeType":"Block","src":"19246:52:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1649,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"19283:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1648,"name":"_isSchemeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"19263:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19263:28:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1647,"id":1651,"nodeType":"Return","src":"19256:35:2"}]},"documentation":null,"id":1653,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1643,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"19218:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1644,"modifierName":{"argumentTypes":null,"id":1642,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19204:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19204:22:2"}],"name":"isSchemeRegistered","nodeType":"FunctionDefinition","parameters":{"id":1641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1638,"name":"_scheme","nodeType":"VariableDeclaration","scope":1653,"src":"19161:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1637,"name":"address","nodeType":"ElementaryTypeName","src":"19161:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1640,"name":"_avatar","nodeType":"VariableDeclaration","scope":1653,"src":"19178:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1639,"name":"address","nodeType":"ElementaryTypeName","src":"19178:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19160:34:2"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"name":"","nodeType":"VariableDeclaration","scope":1653,"src":"19240:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1645,"name":"bool","nodeType":"ElementaryTypeName","src":"19240:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"19239:6:2"},"scope":1797,"src":"19133:165:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1670,"nodeType":"Block","src":"19441:51:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1665,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"19458:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":1667,"indexExpression":{"argumentTypes":null,"id":1666,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"19466:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19458:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":1668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":343,"src":"19458:27:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1664,"id":1669,"nodeType":"Return","src":"19451:34:2"}]},"documentation":null,"id":1671,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1660,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"19398:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1661,"modifierName":{"argumentTypes":null,"id":1659,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19384:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19384:22:2"}],"name":"getSchemeParameters","nodeType":"FunctionDefinition","parameters":{"id":1658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1655,"name":"_scheme","nodeType":"VariableDeclaration","scope":1671,"src":"19333:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1654,"name":"address","nodeType":"ElementaryTypeName","src":"19333:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1657,"name":"_avatar","nodeType":"VariableDeclaration","scope":1671,"src":"19350:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1656,"name":"address","nodeType":"ElementaryTypeName","src":"19350:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19332:34:2"},"returnParameters":{"id":1664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"name":"","nodeType":"VariableDeclaration","scope":1671,"src":"19428:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19428:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"19427:9:2"},"scope":1797,"src":"19304:188:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1688,"nodeType":"Block","src":"19635:52:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1683,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"19652:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":1685,"indexExpression":{"argumentTypes":null,"id":1684,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"19660:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19652:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":1686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"19652:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":1682,"id":1687,"nodeType":"Return","src":"19645:35:2"}]},"documentation":null,"id":1689,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1678,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"19593:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1679,"modifierName":{"argumentTypes":null,"id":1677,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19579:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19579:22:2"}],"name":"getSchemePermissions","nodeType":"FunctionDefinition","parameters":{"id":1676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1673,"name":"_scheme","nodeType":"VariableDeclaration","scope":1689,"src":"19528:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1672,"name":"address","nodeType":"ElementaryTypeName","src":"19528:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1675,"name":"_avatar","nodeType":"VariableDeclaration","scope":1689,"src":"19545:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1674,"name":"address","nodeType":"ElementaryTypeName","src":"19545:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19527:34:2"},"returnParameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1681,"name":"","nodeType":"VariableDeclaration","scope":1689,"src":"19623:6:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1680,"name":"bytes4","nodeType":"ElementaryTypeName","src":"19623:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"src":"19622:8:2"},"scope":1797,"src":"19498:189:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1730,"nodeType":"Block","src":"19799:403:2","statements":[{"assignments":[1699],"declarations":[{"constant":false,"id":1699,"name":"register","nodeType":"VariableDeclaration","scope":1730,"src":"19810:40:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister"},"typeName":{"contractScope":null,"id":1698,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"19810:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}},"value":null,"visibility":"internal"}],"id":1703,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1700,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"19853:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1702,"indexExpression":{"argumentTypes":null,"id":1701,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"19882:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19853:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19810:90:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1704,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"19915:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"19915:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1713,"nodeType":"IfStatement","src":"19911:102:2","trueBody":{"id":1712,"nodeType":"Block","src":"19938:75:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1706,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"19959:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1709,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1707,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"19980:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"19980:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19959:36:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"19959:43:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1697,"id":1711,"nodeType":"Return","src":"19952:50:2"}]}},{"expression":{"argumentTypes":null,"id":1718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1714,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"20023:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1715,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"20034:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1717,"indexExpression":{"argumentTypes":null,"id":1716,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"20064:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20034:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"src":"20023:59:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1719,"nodeType":"ExpressionStatement","src":"20023:59:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1720,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"20097:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"20097:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1729,"nodeType":"IfStatement","src":"20093:103:2","trueBody":{"id":1728,"nodeType":"Block","src":"20120:76:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1722,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"20141:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1725,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1723,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"20163:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"20163:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20141:37:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"20141:44:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1697,"id":1727,"nodeType":"Return","src":"20134:51:2"}]}}]},"documentation":null,"id":1731,"implemented":true,"kind":"function","modifiers":[],"name":"getGlobalConstraintParameters","nodeType":"FunctionDefinition","parameters":{"id":1694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1731,"src":"19732:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"19732:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1693,"name":"","nodeType":"VariableDeclaration","scope":1731,"src":"19759:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1692,"name":"address","nodeType":"ElementaryTypeName","src":"19759:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19731:36:2"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1696,"name":"","nodeType":"VariableDeclaration","scope":1731,"src":"19790:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19790:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"19789:9:2"},"scope":1797,"src":"19693:509:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1749,"nodeType":"Block","src":"20551:83:2","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1743,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"20569:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20569:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1745,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"20598:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20598:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1747,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20568:59:2","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":1742,"id":1748,"nodeType":"Return","src":"20561:66:2"}]},"documentation":"@dev globalConstraintsCount return the global constraint pre and post count\n@return uint256 globalConstraintsPre count.\n@return uint256 globalConstraintsPost count.","id":1750,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1736,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"20493:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1737,"modifierName":{"argumentTypes":null,"id":1735,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"20479:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"20479:22:2"}],"name":"globalConstraintsCount","nodeType":"FunctionDefinition","parameters":{"id":1734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1733,"name":"_avatar","nodeType":"VariableDeclaration","scope":1750,"src":"20437:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1732,"name":"address","nodeType":"ElementaryTypeName","src":"20437:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"20436:17:2"},"returnParameters":{"id":1742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1739,"name":"","nodeType":"VariableDeclaration","scope":1750,"src":"20531:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1738,"name":"uint","nodeType":"ElementaryTypeName","src":"20531:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1741,"name":"","nodeType":"VariableDeclaration","scope":1750,"src":"20537:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1740,"name":"uint","nodeType":"ElementaryTypeName","src":"20537:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20530:12:2"},"scope":1797,"src":"20405:229:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1773,"nodeType":"Block","src":"20813:167:2","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1762,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"20831:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1764,"indexExpression":{"argumentTypes":null,"id":1763,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"20860:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20831:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"20831:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1766,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"20911:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1768,"indexExpression":{"argumentTypes":null,"id":1767,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"20941:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20911:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"20911:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20831:141:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1771,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20830:143:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1761,"id":1772,"nodeType":"Return","src":"20823:150:2"}]},"documentation":null,"id":1774,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1757,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"20761:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1758,"modifierName":{"argumentTypes":null,"id":1756,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"20747:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"20747:22:2"}],"name":"isGlobalConstraintRegistered","nodeType":"FunctionDefinition","parameters":{"id":1755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1752,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1774,"src":"20678:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1751,"name":"address","nodeType":"ElementaryTypeName","src":"20678:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1754,"name":"_avatar","nodeType":"VariableDeclaration","scope":1774,"src":"20705:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1753,"name":"address","nodeType":"ElementaryTypeName","src":"20705:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"20677:44:2"},"returnParameters":{"id":1761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1760,"name":"","nodeType":"VariableDeclaration","scope":1774,"src":"20799:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1759,"name":"bool","nodeType":"ElementaryTypeName","src":"20799:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"20798:6:2"},"scope":1797,"src":"20640:340:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1795,"nodeType":"Block","src":"21059:86:2","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1781,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"21077:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":1783,"indexExpression":{"argumentTypes":null,"id":1782,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"21085:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21077:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":1784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"21077:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":1786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21113:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21106:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":1787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21106:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21077:47:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21135:1:2","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":1789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21128:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":1791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21128:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21077:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21076:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1780,"id":1794,"nodeType":"Return","src":"21069:69:2"}]},"documentation":null,"id":1796,"implemented":true,"kind":"function","modifiers":[],"name":"_isSchemeRegistered","nodeType":"FunctionDefinition","parameters":{"id":1777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"name":"_scheme","nodeType":"VariableDeclaration","scope":1796,"src":"21015:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1775,"name":"address","nodeType":"ElementaryTypeName","src":"21015:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"21014:17:2"},"returnParameters":{"id":1780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"name":"","nodeType":"VariableDeclaration","scope":1796,"src":"21053:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1778,"name":"bool","nodeType":"ElementaryTypeName","src":"21053:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"21052:6:2"},"scope":1797,"src":"20986:159:2","stateMutability":"view","superFunction":null,"visibility":"private"}],"scope":1798,"src":"373:20774:2"}],"src":"0:21148:2"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","exportedSymbols":{"Controller":[1797]},"id":1798,"nodeType":"SourceUnit","nodes":[{"id":339,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:2"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"./Avatar.sol","id":340,"nodeType":"ImportDirective","scope":1798,"sourceUnit":338,"src":"25:22:2","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","file":"../globalConstraints/GlobalConstraintInterface.sol","id":341,"nodeType":"ImportDirective","scope":1798,"sourceUnit":1908,"src":"48:60:2","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title Controller contract\n@dev A controller controls the organizations tokens, reputation and avatar.\nIt is subject to a set of schemes and constraints that determine its behavior.\nEach scheme has it own parameters and operation permissions.","fullyImplemented":true,"id":1797,"linearizedBaseContracts":[1797],"name":"Controller","nodeType":"ContractDefinition","nodes":[{"canonicalName":"Controller.Scheme","id":346,"members":[{"constant":false,"id":343,"name":"paramsHash","nodeType":"VariableDeclaration","scope":346,"src":"424:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"424:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":345,"name":"permissions","nodeType":"VariableDeclaration","scope":346,"src":"493:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":344,"name":"bytes4","nodeType":"ElementaryTypeName","src":"493:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"name":"Scheme","nodeType":"StructDefinition","scope":1797,"src":"400:663:2","visibility":"public"},{"canonicalName":"Controller.GlobalConstraint","id":351,"members":[{"constant":false,"id":348,"name":"gcAddress","nodeType":"VariableDeclaration","scope":351,"src":"1103:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":347,"name":"address","nodeType":"ElementaryTypeName","src":"1103:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":350,"name":"params","nodeType":"VariableDeclaration","scope":351,"src":"1130:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":349,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1130:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"name":"GlobalConstraint","nodeType":"StructDefinition","scope":1797,"src":"1069:82:2","visibility":"public"},{"canonicalName":"Controller.GlobalConstraintRegister","id":356,"members":[{"constant":false,"id":353,"name":"isRegistered","nodeType":"VariableDeclaration","scope":356,"src":"1199:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":352,"name":"bool","nodeType":"ElementaryTypeName","src":"1199:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":355,"name":"index","nodeType":"VariableDeclaration","scope":356,"src":"1242:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":354,"name":"uint256","nodeType":"ElementaryTypeName","src":"1242:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"GlobalConstraintRegister","nodeType":"StructDefinition","scope":1797,"src":"1157:137:2","visibility":"public"},{"constant":false,"id":360,"name":"schemes","nodeType":"VariableDeclaration","scope":1797,"src":"1300:39:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme)"},"typeName":{"id":359,"keyType":{"id":357,"name":"address","nodeType":"ElementaryTypeName","src":"1308:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1300:24:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme)"},"valueType":{"contractScope":null,"id":358,"name":"Scheme","nodeType":"UserDefinedTypeName","referencedDeclaration":346,"src":"1317:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage_ptr","typeString":"struct Controller.Scheme"}}},"value":null,"visibility":"public"},{"constant":false,"id":362,"name":"avatar","nodeType":"VariableDeclaration","scope":1797,"src":"1346:20:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":361,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1346:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":364,"name":"nativeToken","nodeType":"VariableDeclaration","scope":1797,"src":"1372:27:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":363,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"1372:8:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"public"},{"constant":false,"id":366,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":1797,"src":"1405:34:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":365,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"1405:10:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"constant":false,"id":368,"name":"newController","nodeType":"VariableDeclaration","scope":1797,"src":"1538:28:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":367,"name":"address","nodeType":"ElementaryTypeName","src":"1538:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":371,"name":"globalConstraintsPre","nodeType":"VariableDeclaration","scope":1797,"src":"1663:46:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint[]"},"typeName":{"baseType":{"contractScope":null,"id":369,"name":"GlobalConstraint","nodeType":"UserDefinedTypeName","referencedDeclaration":351,"src":"1663:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage_ptr","typeString":"struct Controller.GlobalConstraint"}},"id":370,"length":null,"nodeType":"ArrayTypeName","src":"1663:18:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage_ptr","typeString":"struct Controller.GlobalConstraint[]"}},"value":null,"visibility":"public"},{"constant":false,"id":374,"name":"globalConstraintsPost","nodeType":"VariableDeclaration","scope":1797,"src":"1807:47:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint[]"},"typeName":{"baseType":{"contractScope":null,"id":372,"name":"GlobalConstraint","nodeType":"UserDefinedTypeName","referencedDeclaration":351,"src":"1807:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage_ptr","typeString":"struct Controller.GlobalConstraint"}},"id":373,"length":null,"nodeType":"ArrayTypeName","src":"1807:18:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage_ptr","typeString":"struct Controller.GlobalConstraint[]"}},"value":null,"visibility":"public"},{"constant":false,"id":378,"name":"globalConstraintsRegisterPre","nodeType":"VariableDeclaration","scope":1797,"src":"1967:78:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"typeName":{"id":377,"keyType":{"id":375,"name":"address","nodeType":"ElementaryTypeName","src":"1975:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1967:42:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"valueType":{"contractScope":null,"id":376,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"1984:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}}},"value":null,"visibility":"public"},{"constant":false,"id":382,"name":"globalConstraintsRegisterPost","nodeType":"VariableDeclaration","scope":1797,"src":"2160:79:2","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"typeName":{"id":381,"keyType":{"id":379,"name":"address","nodeType":"ElementaryTypeName","src":"2168:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"2160:42:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister)"},"valueType":{"contractScope":null,"id":380,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"2177:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":390,"name":"MintReputation","nodeType":"EventDefinition","parameters":{"id":389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":384,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":390,"src":"2268:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":383,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":386,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":390,"src":"2293:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":385,"name":"address","nodeType":"ElementaryTypeName","src":"2293:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":388,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":390,"src":"2314:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":387,"name":"uint256","nodeType":"ElementaryTypeName","src":"2314:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2267:63:2"},"src":"2246:85:2"},{"anonymous":false,"documentation":null,"id":398,"name":"BurnReputation","nodeType":"EventDefinition","parameters":{"id":397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":392,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":398,"src":"2358:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":391,"name":"address","nodeType":"ElementaryTypeName","src":"2358:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":394,"indexed":true,"name":"_from","nodeType":"VariableDeclaration","scope":398,"src":"2383:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":393,"name":"address","nodeType":"ElementaryTypeName","src":"2383:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":396,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":398,"src":"2406:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2406:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2357:65:2"},"src":"2336:87:2"},{"anonymous":false,"documentation":null,"id":406,"name":"MintTokens","nodeType":"EventDefinition","parameters":{"id":405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":400,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":406,"src":"2446:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":399,"name":"address","nodeType":"ElementaryTypeName","src":"2446:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":402,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":406,"src":"2471:28:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":401,"name":"address","nodeType":"ElementaryTypeName","src":"2471:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":404,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":406,"src":"2501:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":403,"name":"uint256","nodeType":"ElementaryTypeName","src":"2501:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2445:72:2"},"src":"2428:90:2"},{"anonymous":false,"documentation":null,"id":412,"name":"RegisterScheme","nodeType":"EventDefinition","parameters":{"id":411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":408,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":412,"src":"2545:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":407,"name":"address","nodeType":"ElementaryTypeName","src":"2545:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":410,"indexed":true,"name":"_scheme","nodeType":"VariableDeclaration","scope":412,"src":"2570:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":409,"name":"address","nodeType":"ElementaryTypeName","src":"2570:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2544:50:2"},"src":"2523:72:2"},{"anonymous":false,"documentation":null,"id":418,"name":"UnregisterScheme","nodeType":"EventDefinition","parameters":{"id":417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":414,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":418,"src":"2624:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":413,"name":"address","nodeType":"ElementaryTypeName","src":"2624:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":416,"indexed":true,"name":"_scheme","nodeType":"VariableDeclaration","scope":418,"src":"2649:23:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":415,"name":"address","nodeType":"ElementaryTypeName","src":"2649:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2623:50:2"},"src":"2600:74:2"},{"anonymous":false,"documentation":null,"id":424,"name":"UpgradeController","nodeType":"EventDefinition","parameters":{"id":423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":420,"indexed":true,"name":"_oldController","nodeType":"VariableDeclaration","scope":424,"src":"2703:30:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":419,"name":"address","nodeType":"ElementaryTypeName","src":"2703:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":422,"indexed":false,"name":"_newController","nodeType":"VariableDeclaration","scope":424,"src":"2735:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":421,"name":"address","nodeType":"ElementaryTypeName","src":"2735:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2702:56:2"},"src":"2679:80:2"},{"anonymous":false,"documentation":null,"id":432,"name":"AddGlobalConstraint","nodeType":"EventDefinition","parameters":{"id":431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":426,"indexed":true,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":432,"src":"2800:33:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"2800:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":428,"indexed":false,"name":"_params","nodeType":"VariableDeclaration","scope":432,"src":"2843:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":427,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2843:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":430,"indexed":false,"name":"_when","nodeType":"VariableDeclaration","scope":432,"src":"2868:41:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":429,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"2868:35:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"2790:120:2"},"src":"2765:146:2"},{"anonymous":false,"documentation":null,"id":440,"name":"RemoveGlobalConstraint","nodeType":"EventDefinition","parameters":{"id":439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":434,"indexed":true,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":440,"src":"2946:33:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":433,"name":"address","nodeType":"ElementaryTypeName","src":"2946:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":436,"indexed":false,"name":"_index","nodeType":"VariableDeclaration","scope":440,"src":"2981:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":435,"name":"uint256","nodeType":"ElementaryTypeName","src":"2981:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":438,"indexed":false,"name":"_isPre","nodeType":"VariableDeclaration","scope":440,"src":"2997:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":437,"name":"bool","nodeType":"ElementaryTypeName","src":"2997:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2945:64:2"},"src":"2917:93:2"},{"body":{"id":482,"nodeType":"Block","src":"3052:282:2","statements":[{"expression":{"argumentTypes":null,"id":447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":445,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3062:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":446,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":442,"src":"3071:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3062:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":448,"nodeType":"ExpressionStatement","src":"3062:16:2"},{"expression":{"argumentTypes":null,"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":449,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"3088:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":450,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3102:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeToken","nodeType":"MemberAccess","referencedDeclaration":73,"src":"3102:18:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_DAOToken_$1873_$","typeString":"function () view external returns (contract DAOToken)"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3102:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"src":"3088:34:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":454,"nodeType":"ExpressionStatement","src":"3088:34:2"},{"expression":{"argumentTypes":null,"id":459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":455,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"3132:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":456,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"3151:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"3151:23:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3151:25:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"3132:44:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":460,"nodeType":"ExpressionStatement","src":"3132:44:2"},{"expression":{"argumentTypes":null,"id":473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":461,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3186:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":464,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":462,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3194:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3194:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3186:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3236:1:2","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":466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3228:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3228:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303146","id":470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3260:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001F"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3253:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3253:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":465,"name":"Scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":346,"src":"3208:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Scheme_$346_storage_ptr_$","typeString":"type(struct Controller.Scheme storage pointer)"}},"id":472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"names":["paramsHash","permissions"],"nodeType":"FunctionCall","src":"3208:65:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory","typeString":"struct Controller.Scheme memory"}},"src":"3186:87:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":474,"nodeType":"ExpressionStatement","src":"3186:87:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":476,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3304:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3304:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":478,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3316:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3316:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":475,"name":"RegisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"3288:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3288:39:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":481,"nodeType":"EmitStatement","src":"3283:44:2"}]},"documentation":null,"id":483,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":442,"name":"_avatar","nodeType":"VariableDeclaration","scope":483,"src":"3029:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":441,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3029:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"3027:17:2"},"returnParameters":{"id":444,"nodeType":"ParameterList","parameters":[],"src":"3052:0:2"},"scope":1797,"src":"3016:318:2","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":489,"nodeType":"Block","src":"3443:25:2","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":486,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[21112,21113],"referencedDeclaration":21112,"src":"3453:6:2","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3453:8:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":488,"nodeType":"ExpressionStatement","src":"3453:8:2"}]},"documentation":null,"id":490,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":484,"nodeType":"ParameterList","parameters":[],"src":"3431:2:2"},"returnParameters":{"id":485,"nodeType":"ParameterList","parameters":[],"src":"3443:0:2"},"scope":1797,"src":"3423:45:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":509,"nodeType":"Block","src":"3522:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":493,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3540:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":496,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":494,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3548:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3548:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3540:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3540:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3579:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3572:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3572:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3540:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3601:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":502,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3594:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3594:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3540:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":492,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3532:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3532:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":507,"nodeType":"ExpressionStatement","src":"3532:81:2"},{"id":508,"nodeType":"PlaceholderStatement","src":"3623:1:2"}]},"documentation":null,"id":510,"name":"onlyRegisteredScheme","nodeType":"ModifierDefinition","parameters":{"id":491,"nodeType":"ParameterList","parameters":[],"src":"3519:2:2"},"src":"3490:141:2","visibility":"internal"},{"body":{"id":529,"nodeType":"Block","src":"3671:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":513,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3689:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":516,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":514,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3697:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3697:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3689:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":517,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3689:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303032","id":519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3728:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x00000002"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3721:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3721:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3689:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303032","id":523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3750:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"0x00000002"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":522,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3743:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3743:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3689:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":512,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3681:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3681:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":527,"nodeType":"ExpressionStatement","src":"3681:81:2"},{"id":528,"nodeType":"PlaceholderStatement","src":"3772:1:2"}]},"documentation":null,"id":530,"name":"onlyRegisteringSchemes","nodeType":"ModifierDefinition","parameters":{"id":511,"nodeType":"ParameterList","parameters":[],"src":"3668:2:2"},"src":"3637:143:2","visibility":"internal"},{"body":{"id":549,"nodeType":"Block","src":"3825:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":533,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3843:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":536,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3851:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3851:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3843:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":537,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3843:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303034","id":539,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3882:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x00000004"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":538,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3875:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3875:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3843:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303034","id":543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3904:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"0x00000004"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"}],"id":542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3897:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3897:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3843:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3835:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3835:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":547,"nodeType":"ExpressionStatement","src":"3835:81:2"},{"id":548,"nodeType":"PlaceholderStatement","src":"3926:1:2"}]},"documentation":null,"id":550,"name":"onlyGlobalConstraintsScheme","nodeType":"ModifierDefinition","parameters":{"id":531,"nodeType":"ParameterList","parameters":[],"src":"3822:2:2"},"src":"3786:148:2","visibility":"internal"},{"body":{"id":569,"nodeType":"Block","src":"3971:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":553,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"3989:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":556,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":554,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3997:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3997:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3989:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"3989:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303038","id":559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4028:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x00000008"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4021:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4021:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3989:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303038","id":563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4050:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"0x00000008"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"}],"id":562,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4043:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":564,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4043:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"3989:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":552,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3981:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3981:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":567,"nodeType":"ExpressionStatement","src":"3981:81:2"},{"id":568,"nodeType":"PlaceholderStatement","src":"4072:1:2"}]},"documentation":null,"id":570,"name":"onlyUpgradingScheme","nodeType":"ModifierDefinition","parameters":{"id":551,"nodeType":"ParameterList","parameters":[],"src":"3968:2:2"},"src":"3940:140:2","visibility":"internal"},{"body":{"id":589,"nodeType":"Block","src":"4119:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":573,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"4137:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":576,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4145:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4145:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4137:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"4137:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4176:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4169:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4169:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4137:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":583,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4198:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":582,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4191:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4191:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4137:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":572,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4129:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4129:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":587,"nodeType":"ExpressionStatement","src":"4129:81:2"},{"id":588,"nodeType":"PlaceholderStatement","src":"4220:1:2"}]},"documentation":null,"id":590,"name":"onlyGenericCallScheme","nodeType":"ModifierDefinition","parameters":{"id":571,"nodeType":"ParameterList","parameters":[],"src":"4116:2:2"},"src":"4086:142:2","visibility":"internal"},{"body":{"id":609,"nodeType":"Block","src":"4264:109:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":593,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"4282:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":596,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":594,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4290:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4290:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4282:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":597,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"4282:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4321:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4314:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4314:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4282:50:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303130","id":603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4343:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"},"value":"0x00000010"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_16_by_1","typeString":"int_const 16"}],"id":602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4336:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4336:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4282:72:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":592,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4274:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4274:81:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":607,"nodeType":"ExpressionStatement","src":"4274:81:2"},{"id":608,"nodeType":"PlaceholderStatement","src":"4365:1:2"}]},"documentation":null,"id":610,"name":"onlyMetaDataScheme","nodeType":"ModifierDefinition","parameters":{"id":591,"nodeType":"ParameterList","parameters":[],"src":"4261:2:2"},"src":"4234:139:2","visibility":"internal"},{"body":{"id":682,"nodeType":"Block","src":"4426:533:2","statements":[{"assignments":[615],"declarations":[{"constant":false,"id":615,"name":"idx","nodeType":"VariableDeclaration","scope":682,"src":"4436:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":614,"name":"uint256","nodeType":"ElementaryTypeName","src":"4436:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":616,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"4436:11:2"},{"body":{"id":647,"nodeType":"Block","src":"4513:180:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":637,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4630:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4630:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":639,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4642:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":641,"indexExpression":{"argumentTypes":null,"id":640,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4663:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4642:25:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":642,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"4642:32:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":643,"name":"func","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"4676:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":630,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4575:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":632,"indexExpression":{"argumentTypes":null,"id":631,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4596:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4575:25:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"4575:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":629,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"4549:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4549:62:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}}],"id":635,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4548:64:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pre","nodeType":"MemberAccess","referencedDeclaration":1890,"src":"4548:81:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes32) external returns (bool)"}},"id":644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4548:133:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":628,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4527:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":645,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4527:155:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":646,"nodeType":"ExpressionStatement","src":"4527:155:2"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":621,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4471:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":622,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"4477:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4477:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4471:33:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":648,"initializationExpression":{"expression":{"argumentTypes":null,"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":617,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4462:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4468:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4462:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":620,"nodeType":"ExpressionStatement","src":"4462:7:2"},"loopExpression":{"expression":{"argumentTypes":null,"id":626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4506:5:2","subExpression":{"argumentTypes":null,"id":625,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4506:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":627,"nodeType":"ExpressionStatement","src":"4506:5:2"},"nodeType":"ForStatement","src":"4457:236:2"},{"id":649,"nodeType":"PlaceholderStatement","src":"4702:1:2"},{"body":{"id":680,"nodeType":"Block","src":"4770:183:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":670,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4889:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4889:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":672,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4901:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":674,"indexExpression":{"argumentTypes":null,"id":673,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4923:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4901:26:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"4901:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":676,"name":"func","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":612,"src":"4936:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":663,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4832:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":665,"indexExpression":{"argumentTypes":null,"id":664,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4854:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4832:26:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":666,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"4832:36:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":662,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"4806:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4806:63:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}}],"id":668,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4805:65:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"post","nodeType":"MemberAccess","referencedDeclaration":1901,"src":"4805:83:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes32) external returns (bool)"}},"id":677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4805:136:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":661,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4784:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4784:158:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":679,"nodeType":"ExpressionStatement","src":"4784:158:2"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":654,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4727:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":655,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"4733:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4733:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4727:34:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":681,"initializationExpression":{"expression":{"argumentTypes":null,"id":652,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":650,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4718:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4724:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4718:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":653,"nodeType":"ExpressionStatement","src":"4718:7:2"},"loopExpression":{"expression":{"argumentTypes":null,"id":659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4763:5:2","subExpression":{"argumentTypes":null,"id":658,"name":"idx","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":615,"src":"4763:3:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":660,"nodeType":"ExpressionStatement","src":"4763:5:2"},"nodeType":"ForStatement","src":"4713:240:2"}]},"documentation":null,"id":683,"name":"onlySubjectToConstraint","nodeType":"ModifierDefinition","parameters":{"id":613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":612,"name":"func","nodeType":"VariableDeclaration","scope":683,"src":"4412:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4412:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4411:14:2"},"src":"4379:580:2","visibility":"internal"},{"body":{"id":696,"nodeType":"Block","src":"5005:63:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":688,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":685,"src":"5023:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":690,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"5042:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":689,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5034:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":691,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5034:15:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5023:26:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":687,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"5015:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5015:35:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":694,"nodeType":"ExpressionStatement","src":"5015:35:2"},{"id":695,"nodeType":"PlaceholderStatement","src":"5060:1:2"}]},"documentation":null,"id":697,"name":"isAvatarValid","nodeType":"ModifierDefinition","parameters":{"id":686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":685,"name":"_avatar","nodeType":"VariableDeclaration","scope":697,"src":"4988:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":684,"name":"address","nodeType":"ElementaryTypeName","src":"4988:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"4987:17:2"},"src":"4965:103:2","visibility":"internal"},{"body":{"id":729,"nodeType":"Block","src":"5501:114:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":717,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5531:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5531:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":719,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"5543:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":720,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"5548:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":716,"name":"MintReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":390,"src":"5516:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5516:40:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":722,"nodeType":"EmitStatement","src":"5511:45:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":725,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":701,"src":"5595:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":726,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":699,"src":"5600:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":723,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"5573:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"5573:21:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5573:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":715,"id":728,"nodeType":"Return","src":"5566:42:2"}]},"documentation":"@dev Mint `_amount` of reputation that are assigned to `_to` .\n@param _amount amount of reputation to mint\n@param _to beneficiary address\n@return bool which represents a success","id":730,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":706,"modifierName":{"argumentTypes":null,"id":705,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5385:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"5385:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"6d696e7452657075746174696f6e","id":708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5434:16:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1a219662897983599a6b9002ff87ae94af2205e820352b0884d9af0be457f05d","typeString":"literal_string \"mintReputation\""},"value":"mintReputation"}],"id":709,"modifierName":{"argumentTypes":null,"id":707,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"5410:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5410:41:2"},{"arguments":[{"argumentTypes":null,"id":711,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":703,"src":"5470:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":712,"modifierName":{"argumentTypes":null,"id":710,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"5456:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"5456:22:2"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":699,"name":"_amount","nodeType":"VariableDeclaration","scope":730,"src":"5321:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":698,"name":"uint256","nodeType":"ElementaryTypeName","src":"5321:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":701,"name":"_to","nodeType":"VariableDeclaration","scope":730,"src":"5338:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":700,"name":"address","nodeType":"ElementaryTypeName","src":"5338:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":703,"name":"_avatar","nodeType":"VariableDeclaration","scope":730,"src":"5351:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":702,"name":"address","nodeType":"ElementaryTypeName","src":"5351:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5320:47:2"},"returnParameters":{"id":715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":714,"name":"","nodeType":"VariableDeclaration","scope":730,"src":"5491:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":713,"name":"bool","nodeType":"ElementaryTypeName","src":"5491:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5490:6:2"},"scope":1797,"src":"5297:318:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":762,"nodeType":"Block","src":"6058:118:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":750,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6088:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6088:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":752,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"6100:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":753,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"6107:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":749,"name":"BurnReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":398,"src":"6073:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6073:42:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":755,"nodeType":"EmitStatement","src":"6068:47:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":758,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":734,"src":"6154:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":759,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":732,"src":"6161:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":756,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"6132:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"6132:21:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6132:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":748,"id":761,"nodeType":"Return","src":"6125:44:2"}]},"documentation":"@dev Burns `_amount` of reputation from `_from`\n@param _amount amount of reputation to burn\n@param _from The address that will lose the reputation\n@return bool which represents a success","id":763,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":739,"modifierName":{"argumentTypes":null,"id":738,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"5942:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"5942:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"6275726e52657075746174696f6e","id":741,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5991:16:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_701c6a9b3c30976c567c709256889545b87c2151a8fd377ac6f0366a5ce4dd74","typeString":"literal_string \"burnReputation\""},"value":"burnReputation"}],"id":742,"modifierName":{"argumentTypes":null,"id":740,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"5967:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5967:41:2"},{"arguments":[{"argumentTypes":null,"id":744,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":736,"src":"6027:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":745,"modifierName":{"argumentTypes":null,"id":743,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"6013:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"6013:22:2"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":737,"nodeType":"ParameterList","parameters":[{"constant":false,"id":732,"name":"_amount","nodeType":"VariableDeclaration","scope":763,"src":"5876:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":731,"name":"uint256","nodeType":"ElementaryTypeName","src":"5876:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":734,"name":"_from","nodeType":"VariableDeclaration","scope":763,"src":"5893:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":733,"name":"address","nodeType":"ElementaryTypeName","src":"5893:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":736,"name":"_avatar","nodeType":"VariableDeclaration","scope":763,"src":"5908:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":735,"name":"address","nodeType":"ElementaryTypeName","src":"5908:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"5875:49:2"},"returnParameters":{"id":748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":747,"name":"","nodeType":"VariableDeclaration","scope":763,"src":"6048:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":746,"name":"bool","nodeType":"ElementaryTypeName","src":"6048:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6047:6:2"},"scope":1797,"src":"5852:324:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":795,"nodeType":"Block","src":"6570:123:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":783,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6596:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6596:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":785,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"6608:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":786,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"6622:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":782,"name":"MintTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":406,"src":"6585:10:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6585:45:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":788,"nodeType":"EmitStatement","src":"6580:50:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":791,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":767,"src":"6664:12:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":792,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":765,"src":"6678:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":789,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"6647:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":1872,"src":"6647:16:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6647:39:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":781,"id":794,"nodeType":"Return","src":"6640:46:2"}]},"documentation":"@dev mint tokens .\n@param _amount amount of token to mint\n@param _beneficiary beneficiary address\n@return bool which represents a success","id":796,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":772,"modifierName":{"argumentTypes":null,"id":771,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"6458:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"6458:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"6d696e74546f6b656e73","id":774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6507:12:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_21b23862db72e99373f312e35ae4594cf48c0e3462d6964e450d863eb9283120","typeString":"literal_string \"mintTokens\""},"value":"mintTokens"}],"id":775,"modifierName":{"argumentTypes":null,"id":773,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"6483:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"6483:37:2"},{"arguments":[{"argumentTypes":null,"id":777,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":769,"src":"6539:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":778,"modifierName":{"argumentTypes":null,"id":776,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"6525:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"6525:22:2"}],"name":"mintTokens","nodeType":"FunctionDefinition","parameters":{"id":770,"nodeType":"ParameterList","parameters":[{"constant":false,"id":765,"name":"_amount","nodeType":"VariableDeclaration","scope":796,"src":"6385:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":764,"name":"uint256","nodeType":"ElementaryTypeName","src":"6385:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":767,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":796,"src":"6402:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":766,"name":"address","nodeType":"ElementaryTypeName","src":"6402:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":769,"name":"_avatar","nodeType":"VariableDeclaration","scope":796,"src":"6424:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":768,"name":"address","nodeType":"ElementaryTypeName","src":"6424:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6384:56:2"},"returnParameters":{"id":781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":780,"name":"","nodeType":"VariableDeclaration","scope":796,"src":"6560:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":779,"name":"bool","nodeType":"ElementaryTypeName","src":"6560:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6559:6:2"},"scope":1797,"src":"6365:328:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":895,"nodeType":"Block","src":"7205:876:2","statements":[{"assignments":[818],"declarations":[{"constant":false,"id":818,"name":"scheme","nodeType":"VariableDeclaration","scope":895,"src":"7216:20:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory_ptr","typeString":"struct Controller.Scheme"},"typeName":{"contractScope":null,"id":817,"name":"Scheme","nodeType":"UserDefinedTypeName","referencedDeclaration":346,"src":"7216:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage_ptr","typeString":"struct Controller.Scheme"}},"value":null,"visibility":"internal"}],"id":822,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":819,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7239:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":821,"indexExpression":{"argumentTypes":null,"id":820,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"7247:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7239:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7216:39:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7561:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7554:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7554:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":827,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"7574:12:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"^","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":828,"name":"scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"7587:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory_ptr","typeString":"struct Controller.Scheme memory"}},"id":829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7587:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7574:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":831,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7573:33:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7554:52:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7608:32:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":833,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7609:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":836,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":834,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7617:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7617:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7609:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7609:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":839,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7607:34:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7554:87:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":842,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7652:1:2","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":841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7645:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7645:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7554:100:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":823,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7546:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7546:109:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":846,"nodeType":"ExpressionStatement","src":"7546:109:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7765:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7758:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7758:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":851,"name":"scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":818,"src":"7778:6:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_memory_ptr","typeString":"struct Controller.Scheme memory"}},"id":852,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7778:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"7798:32:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":853,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7799:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":856,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":854,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7807:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7807:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7799:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7799:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":859,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7797:34:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7778:53:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":861,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7777:55:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7758:74:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7843:1:2","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":863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7836:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":865,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7836:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7758:87:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":847,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7750:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7750:96:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":868,"nodeType":"ExpressionStatement","src":"7750:96:2"},{"expression":{"argumentTypes":null,"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":869,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7890:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":871,"indexExpression":{"argumentTypes":null,"id":870,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"7898:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7890:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":872,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":343,"src":"7890:27:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":873,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":800,"src":"7920:11:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"7890:41:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":875,"nodeType":"ExpressionStatement","src":"7890:41:2"},{"expression":{"argumentTypes":null,"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":876,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"7941:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":878,"indexExpression":{"argumentTypes":null,"id":877,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"7949:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7941:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"7941:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":880,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":802,"src":"7972:12:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"|","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7992:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":881,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7985:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7985:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7972:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7941:62:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":886,"nodeType":"ExpressionStatement","src":"7941:62:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":888,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8033:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8033:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":890,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":798,"src":"8045:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":887,"name":"RegisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":412,"src":"8018:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8018:35:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":892,"nodeType":"EmitStatement","src":"8013:40:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8070:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":816,"id":894,"nodeType":"Return","src":"8063:11:2"}]},"documentation":"@dev register a scheme\n@param _scheme the address of the scheme\n@param _paramsHash a hashed configuration of the usage of the scheme\n@param _permissions the permissions the new scheme will have\n@return bool which represents a success","id":896,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":807,"modifierName":{"argumentTypes":null,"id":806,"name":"onlyRegisteringSchemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"7087:22:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"7087:22:2"},{"arguments":[{"argumentTypes":null,"hexValue":"7265676973746572536368656d65","id":809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7138:16:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c6de131411a6b4c4ab26bd5c5ac65f44cdd792220de1a6733d66d35c3433e601","typeString":"literal_string \"registerScheme\""},"value":"registerScheme"}],"id":810,"modifierName":{"argumentTypes":null,"id":808,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"7114:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"7114:41:2"},{"arguments":[{"argumentTypes":null,"id":812,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":804,"src":"7174:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":813,"modifierName":{"argumentTypes":null,"id":811,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"7160:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"7160:22:2"}],"name":"registerScheme","nodeType":"FunctionDefinition","parameters":{"id":805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":798,"name":"_scheme","nodeType":"VariableDeclaration","scope":896,"src":"6994:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":797,"name":"address","nodeType":"ElementaryTypeName","src":"6994:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":800,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":896,"src":"7011:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":799,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7011:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":802,"name":"_permissions","nodeType":"VariableDeclaration","scope":896,"src":"7032:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":801,"name":"bytes4","nodeType":"ElementaryTypeName","src":"7032:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":804,"name":"_avatar","nodeType":"VariableDeclaration","scope":896,"src":"7053:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":803,"name":"address","nodeType":"ElementaryTypeName","src":"7053:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6993:76:2"},"returnParameters":{"id":816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":815,"name":"","nodeType":"VariableDeclaration","scope":896,"src":"7195:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":814,"name":"bool","nodeType":"ElementaryTypeName","src":"7195:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"7194:6:2"},"scope":1797,"src":"6970:1111:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":959,"nodeType":"Block","src":"8428:440:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":914,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8502:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":913,"name":"_isSchemeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"8482:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":915,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8482:28:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8514:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8482:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":921,"nodeType":"IfStatement","src":"8478:80:2","trueBody":{"id":920,"nodeType":"Block","src":"8521:37:2","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8542:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":912,"id":919,"nodeType":"Return","src":"8535:12:2"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8644:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":923,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8637:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8637:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":926,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"8657:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":928,"indexExpression":{"argumentTypes":null,"id":927,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8665:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8657:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":929,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"8657:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"8687:32:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":930,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"8688:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":933,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8696:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8696:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8688:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":934,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"8688:31:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":936,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8686:34:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8657:63:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"id":938,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8656:65:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8637:84:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8732:1:2","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":940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8725:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8725:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"8637:97:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":922,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"8629:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8629:106:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":945,"nodeType":"ExpressionStatement","src":"8629:106:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":947,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8787:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8787:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":949,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8799:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":946,"name":"UnregisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"8770:16:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8770:37:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":951,"nodeType":"EmitStatement","src":"8765:42:2"},{"expression":{"argumentTypes":null,"id":955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"8817:23:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":952,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"8824:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":954,"indexExpression":{"argumentTypes":null,"id":953,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":898,"src":"8832:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8824:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":956,"nodeType":"ExpressionStatement","src":"8817:23:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8857:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":912,"id":958,"nodeType":"Return","src":"8850:11:2"}]},"documentation":"@dev unregister a scheme\n@param _scheme the address of the scheme\n@return bool which represents a success","id":960,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":903,"modifierName":{"argumentTypes":null,"id":902,"name":"onlyRegisteringSchemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":530,"src":"8308:22:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"8308:22:2"},{"arguments":[{"argumentTypes":null,"hexValue":"756e7265676973746572536368656d65","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8359:18:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b691bb484251ef01d241995950a354987a3e0c00fe2381f87b564ec41aab942c","typeString":"literal_string \"unregisterScheme\""},"value":"unregisterScheme"}],"id":906,"modifierName":{"argumentTypes":null,"id":904,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"8335:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"8335:43:2"},{"arguments":[{"argumentTypes":null,"id":908,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":900,"src":"8397:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":909,"modifierName":{"argumentTypes":null,"id":907,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"8383:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"8383:22:2"}],"name":"unregisterScheme","nodeType":"FunctionDefinition","parameters":{"id":901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":898,"name":"_scheme","nodeType":"VariableDeclaration","scope":960,"src":"8257:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":897,"name":"address","nodeType":"ElementaryTypeName","src":"8257:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":900,"name":"_avatar","nodeType":"VariableDeclaration","scope":960,"src":"8274:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":899,"name":"address","nodeType":"ElementaryTypeName","src":"8274:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8255:35:2"},"returnParameters":{"id":912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":911,"name":"","nodeType":"VariableDeclaration","scope":960,"src":"8418:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":910,"name":"bool","nodeType":"ElementaryTypeName","src":"8418:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"8417:6:2"},"scope":1797,"src":"8230:638:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":995,"nodeType":"Block","src":"9067:211:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9101:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9101:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":970,"name":"_isSchemeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"9081:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9081:31:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9116:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"9081:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":979,"nodeType":"IfStatement","src":"9077:83:2","trueBody":{"id":978,"nodeType":"Block","src":"9123:37:2","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":976,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9144:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":969,"id":977,"nodeType":"Return","src":"9137:12:2"}]}},{"expression":{"argumentTypes":null,"id":984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"9169:26:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":980,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"9176:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":983,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":981,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9184:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9184:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9176:19:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":985,"nodeType":"ExpressionStatement","src":"9169:26:2"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9227:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9227:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":989,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"9239:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9239:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":986,"name":"UnregisterScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":418,"src":"9210:16:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9210:40:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":992,"nodeType":"EmitStatement","src":"9205:45:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":993,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9267:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":969,"id":994,"nodeType":"Return","src":"9260:11:2"}]},"documentation":"@dev unregister the caller's scheme\n@return bool which represents a success","id":996,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":965,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"9044:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":966,"modifierName":{"argumentTypes":null,"id":964,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"9030:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"9030:22:2"}],"name":"unregisterSelf","nodeType":"FunctionDefinition","parameters":{"id":963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":962,"name":"_avatar","nodeType":"VariableDeclaration","scope":996,"src":"9004:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":961,"name":"address","nodeType":"ElementaryTypeName","src":"9004:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"9003:17:2"},"returnParameters":{"id":969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":968,"name":"","nodeType":"VariableDeclaration","scope":996,"src":"9061:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":967,"name":"bool","nodeType":"ElementaryTypeName","src":"9061:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9060:6:2"},"scope":1797,"src":"8980:298:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1138,"nodeType":"Block","src":"9711:1417:2","statements":[{"assignments":[1015],"declarations":[{"constant":false,"id":1015,"name":"when","nodeType":"VariableDeclaration","scope":1138,"src":"9721:40:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":1014,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"9721:35:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"id":1021,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1017,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"9790:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1016,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"9764:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:44:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":1019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"when","nodeType":"MemberAccess","referencedDeclaration":1906,"src":"9764:49:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_CallPhase_$1879_$","typeString":"function () external returns (enum GlobalConstraintInterface.CallPhase)"}},"id":1020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:51:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"VariableDeclarationStatement","src":"9721:94:2"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1022,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"9830:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1023,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"9838:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"9838:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1025,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9838:39:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"9830:47:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1027,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9829:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1028,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"9894:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1029,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"9902:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"9902:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9902:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"9894:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9893:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9829:120:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1075,"nodeType":"IfStatement","src":"9825:596:2","trueBody":{"id":1074,"nodeType":"Block","src":"9951:470:2","statements":[{"condition":{"argumentTypes":null,"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9969:61:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1035,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"9970:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1037,"indexExpression":{"argumentTypes":null,"id":1036,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"9999:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9970:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"9970:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1072,"nodeType":"Block","src":"10286:125:2","statements":[{"expression":{"argumentTypes":null,"id":1070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1062,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"10304:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1067,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1063,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"10325:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1065,"indexExpression":{"argumentTypes":null,"id":1064,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10354:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10325:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"10325:53:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10304:75:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"10304:82:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1069,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"10389:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10304:92:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1071,"nodeType":"ExpressionStatement","src":"10304:92:2"}]},"id":1073,"nodeType":"IfStatement","src":"9965:446:2","trueBody":{"id":1061,"nodeType":"Block","src":"10032:249:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1044,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10093:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1045,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"10112:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1043,"name":"GlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"10076:16:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraint_$351_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraint storage pointer)"}},"id":1046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10076:44:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}],"expression":{"argumentTypes":null,"id":1040,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"10050:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10050:25:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_GlobalConstraint_$351_storage_$returns$_t_uint256_$","typeString":"function (struct Controller.GlobalConstraint storage ref) returns (uint256)"}},"id":1047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10050:71:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1048,"nodeType":"ExpressionStatement","src":"10050:71:2"},{"expression":{"argumentTypes":null,"id":1059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1049,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"10139:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1051,"indexExpression":{"argumentTypes":null,"id":1050,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10168:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10139:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"74727565","id":1053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10230:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1054,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"10236:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1055,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10236:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10264:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10236:29:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1052,"name":"GlobalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"10205:24:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraintRegister_$356_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraintRegister storage pointer)"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10205:61:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory","typeString":"struct Controller.GlobalConstraintRegister memory"}},"src":"10139:127:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1060,"nodeType":"ExpressionStatement","src":"10139:127:2"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1076,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10435:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1077,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"10443:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1078,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"10443:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10443:40:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"10435:48:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1081,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10434:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1082,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"10500:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1083,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"10508:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"10508:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10508:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"10500:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10499:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10434:121:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1129,"nodeType":"IfStatement","src":"10430:603:2","trueBody":{"id":1128,"nodeType":"Block","src":"10557:476:2","statements":[{"condition":{"argumentTypes":null,"id":1093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"10575:62:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1089,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"10576:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1091,"indexExpression":{"argumentTypes":null,"id":1090,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10606:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10576:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1092,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"10576:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1126,"nodeType":"Block","src":"10896:127:2","statements":[{"expression":{"argumentTypes":null,"id":1124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1116,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"10914:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1121,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1117,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"10936:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1119,"indexExpression":{"argumentTypes":null,"id":1118,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10966:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10936:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1120,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"10936:54:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10914:77:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1122,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"10914:84:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1123,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"11001:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"10914:94:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1125,"nodeType":"ExpressionStatement","src":"10914:94:2"}]},"id":1127,"nodeType":"IfStatement","src":"10571:452:2","trueBody":{"id":1115,"nodeType":"Block","src":"10639:252:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1098,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10701:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1099,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"10720:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1097,"name":"GlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":351,"src":"10684:16:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraint_$351_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraint storage pointer)"}},"id":1100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10684:44:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory","typeString":"struct Controller.GlobalConstraint memory"}],"expression":{"argumentTypes":null,"id":1094,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"10657:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"push","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10657:26:2","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_struct$_GlobalConstraint_$351_storage_$returns$_t_uint256_$","typeString":"function (struct Controller.GlobalConstraint storage ref) returns (uint256)"}},"id":1101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10657:72:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1102,"nodeType":"ExpressionStatement","src":"10657:72:2"},{"expression":{"argumentTypes":null,"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1103,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"10747:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1105,"indexExpression":{"argumentTypes":null,"id":1104,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"10777:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10747:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"74727565","id":1107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10839:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1108,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"10845:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10845:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10874:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"10845:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1106,"name":"GlobalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"10814:24:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GlobalConstraintRegister_$356_storage_ptr_$","typeString":"type(struct Controller.GlobalConstraintRegister storage pointer)"}},"id":1112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10814:62:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory","typeString":"struct Controller.GlobalConstraintRegister memory"}},"src":"10747:129:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1114,"nodeType":"ExpressionStatement","src":"10747:129:2"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1131,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":998,"src":"11067:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1132,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1000,"src":"11086:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":1133,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1015,"src":"11095:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}],"id":1130,"name":"AddGlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":432,"src":"11047:19:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_enum$_CallPhase_$1879_$returns$__$","typeString":"function (address,bytes32,enum GlobalConstraintInterface.CallPhase)"}},"id":1134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11047:53:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1135,"nodeType":"EmitStatement","src":"11042:58:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11117:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1011,"id":1137,"nodeType":"Return","src":"11110:11:2"}]},"documentation":"@dev add or update Global Constraint\n@param _globalConstraint the address of the global constraint to be added.\n@param _params the constraint parameters hash.\n@return bool which represents a success","id":1139,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1005,"modifierName":{"argumentTypes":null,"id":1004,"name":"onlyGlobalConstraintsScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"9634:27:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"9634:27:2"},{"arguments":[{"argumentTypes":null,"id":1007,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1002,"src":"9680:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1008,"modifierName":{"argumentTypes":null,"id":1006,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"9666:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"9666:22:2"}],"name":"addGlobalConstraint","nodeType":"FunctionDefinition","parameters":{"id":1003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":998,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1139,"src":"9556:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":997,"name":"address","nodeType":"ElementaryTypeName","src":"9556:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1000,"name":"_params","nodeType":"VariableDeclaration","scope":1139,"src":"9583:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9583:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1002,"name":"_avatar","nodeType":"VariableDeclaration","scope":1139,"src":"9600:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1001,"name":"address","nodeType":"ElementaryTypeName","src":"9600:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"9555:61:2"},"returnParameters":{"id":1011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1010,"name":"","nodeType":"VariableDeclaration","scope":1139,"src":"9701:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1009,"name":"bool","nodeType":"ElementaryTypeName","src":"9701:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9700:6:2"},"scope":1797,"src":"9527:1601:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1335,"nodeType":"Block","src":"11538:2234:2","statements":[{"assignments":[1154],"declarations":[{"constant":false,"id":1154,"name":"globalConstraintRegister","nodeType":"VariableDeclaration","scope":1335,"src":"11548:56:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister"},"typeName":{"contractScope":null,"id":1153,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"11548:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}},"value":null,"visibility":"internal"}],"id":1155,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"11548:56:2"},{"assignments":[1157],"declarations":[{"constant":false,"id":1157,"name":"globalConstraint","nodeType":"VariableDeclaration","scope":1335,"src":"11614:40:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint"},"typeName":{"contractScope":null,"id":1156,"name":"GlobalConstraint","nodeType":"UserDefinedTypeName","referencedDeclaration":351,"src":"11614:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage_ptr","typeString":"struct Controller.GlobalConstraint"}},"value":null,"visibility":"internal"}],"id":1158,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"11614:40:2"},{"assignments":[1162],"declarations":[{"constant":false,"id":1162,"name":"when","nodeType":"VariableDeclaration","scope":1335,"src":"11664:40:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":1161,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"11664:35:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"id":1168,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1164,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"11733:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1163,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"11707:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11707:44:2","typeDescriptions":{"typeIdentifier":"t_contract$_GlobalConstraintInterface_$1907","typeString":"contract GlobalConstraintInterface"}},"id":1166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"when","nodeType":"MemberAccess","referencedDeclaration":1906,"src":"11707:49:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_CallPhase_$1879_$","typeString":"function () external returns (enum GlobalConstraintInterface.CallPhase)"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11707:51:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"VariableDeclarationStatement","src":"11664:94:2"},{"assignments":[1170],"declarations":[{"constant":false,"id":1170,"name":"retVal","nodeType":"VariableDeclaration","scope":1335,"src":"11768:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1169,"name":"bool","nodeType":"ElementaryTypeName","src":"11768:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":1172,"initialValue":{"argumentTypes":null,"hexValue":"66616c7365","id":1171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11782:5:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"11768:19:2"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1173,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"11803:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1174,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"11811:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"11811:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11811:39:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"11803:47:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1178,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11802:49:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1179,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"11867:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1180,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"11875:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"11875:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"11875:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"11867:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"11866:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11802:120:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1245,"nodeType":"IfStatement","src":"11798:852:2","trueBody":{"id":1244,"nodeType":"Block","src":"11924:726:2","statements":[{"expression":{"argumentTypes":null,"id":1190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1186,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"11938:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1187,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"11965:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1189,"indexExpression":{"argumentTypes":null,"id":1188,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"11994:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11965:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"src":"11938:74:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1191,"nodeType":"ExpressionStatement","src":"11938:74:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1192,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12030:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"12030:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1243,"nodeType":"IfStatement","src":"12026:614:2","trueBody":{"id":1242,"nodeType":"Block","src":"12069:571:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1194,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12091:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12091:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1196,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12124:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12124:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12152:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12124:29:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12091:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1227,"nodeType":"IfStatement","src":"12087:389:2","trueBody":{"id":1226,"nodeType":"Block","src":"12155:321:2","statements":[{"expression":{"argumentTypes":null,"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1201,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"12177:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1202,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12196:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1207,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1203,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12217:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12217:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12245:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12217:29:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12196:51:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"src":"12177:70:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1209,"nodeType":"ExpressionStatement","src":"12177:70:2"},{"expression":{"argumentTypes":null,"id":1215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1210,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12269:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1213,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1211,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12290:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12290:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12269:52:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1214,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"12324:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"src":"12269:71:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1216,"nodeType":"ExpressionStatement","src":"12269:71:2"},{"expression":{"argumentTypes":null,"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1217,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"12362:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1220,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1218,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"12391:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"12391:26:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12362:56:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12362:62:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1222,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12427:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12427:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12362:95:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1225,"nodeType":"ExpressionStatement","src":"12362:95:2"}]}},{"expression":{"argumentTypes":null,"id":1231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"12493:29:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1228,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"12493:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12493:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1232,"nodeType":"ExpressionStatement","src":"12493:29:2"},{"expression":{"argumentTypes":null,"id":1236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"12540:54:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1233,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"12547:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1235,"indexExpression":{"argumentTypes":null,"id":1234,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"12576:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12547:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1237,"nodeType":"ExpressionStatement","src":"12540:54:2"},{"expression":{"argumentTypes":null,"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1238,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"12612:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":1239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12621:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"12612:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1241,"nodeType":"ExpressionStatement","src":"12612:13:2"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1246,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"12664:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1247,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"12672:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"12672:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12672:40:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"12664:48:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1251,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12663:50:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1252,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"12729:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1253,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"12737:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"12737:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12737:46:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"12729:54:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1257,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12728:56:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12663:121:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1318,"nodeType":"IfStatement","src":"12659:861:2","trueBody":{"id":1317,"nodeType":"Block","src":"12786:734:2","statements":[{"expression":{"argumentTypes":null,"id":1263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1259,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12800:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1260,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"12827:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1262,"indexExpression":{"argumentTypes":null,"id":1261,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"12857:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12827:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"src":"12800:75:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1264,"nodeType":"ExpressionStatement","src":"12800:75:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1265,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12893:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"12893:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1316,"nodeType":"IfStatement","src":"12889:621:2","trueBody":{"id":1315,"nodeType":"Block","src":"12932:578:2","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1267,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"12954:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"12954:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1269,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"12987:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"12987:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13016:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"12987:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12954:63:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1300,"nodeType":"IfStatement","src":"12950:394:2","trueBody":{"id":1299,"nodeType":"Block","src":"13019:325:2","statements":[{"expression":{"argumentTypes":null,"id":1281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1274,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"13041:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1275,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13060:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1280,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1276,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13082:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1277,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13082:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":1278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13111:1:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13082:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13060:53:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"src":"13041:72:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1282,"nodeType":"ExpressionStatement","src":"13041:72:2"},{"expression":{"argumentTypes":null,"id":1288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1283,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13135:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1286,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1284,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13157:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13157:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13135:53:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1287,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"13191:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"src":"13135:72:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1289,"nodeType":"ExpressionStatement","src":"13135:72:2"},{"expression":{"argumentTypes":null,"id":1297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1290,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"13229:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1293,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1291,"name":"globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"13259:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_memory_ptr","typeString":"struct Controller.GlobalConstraint memory"}},"id":1292,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gcAddress","nodeType":"MemberAccess","referencedDeclaration":348,"src":"13259:26:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13229:57:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13229:63:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1295,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13295:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13295:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13229:96:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1298,"nodeType":"ExpressionStatement","src":"13229:96:2"}]}},{"expression":{"argumentTypes":null,"id":1304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"13361:30:2","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1301,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"13361:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13361:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1305,"nodeType":"ExpressionStatement","src":"13361:30:2"},{"expression":{"argumentTypes":null,"id":1309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"13409:55:2","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1306,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"13416:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1308,"indexExpression":{"argumentTypes":null,"id":1307,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"13446:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13416:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1310,"nodeType":"ExpressionStatement","src":"13409:55:2"},{"expression":{"argumentTypes":null,"id":1313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1311,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13482:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":1312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13491:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13482:13:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1314,"nodeType":"ExpressionStatement","src":"13482:13:2"}]}}]}},{"condition":{"argumentTypes":null,"id":1319,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13533:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1332,"nodeType":"IfStatement","src":"13529:214:2","trueBody":{"id":1331,"nodeType":"Block","src":"13541:202:2","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1321,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"13596:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1322,"name":"globalConstraintRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"13627:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"13627:30:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"id":1328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1324,"name":"when","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1162,"src":"13671:4:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1325,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"13679:25:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":1326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"13679:35:2","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":1327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"13679:39:2","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"13671:47:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1320,"name":"RemoveGlobalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":440,"src":"13560:22:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_bool_$returns$__$","typeString":"function (address,uint256,bool)"}},"id":1329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13560:172:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1330,"nodeType":"EmitStatement","src":"13555:177:2"}]}},{"expression":{"argumentTypes":null,"id":1333,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1170,"src":"13759:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1152,"id":1334,"nodeType":"Return","src":"13752:13:2"}]},"documentation":"@dev remove Global Constraint\n@param _globalConstraint the address of the global constraint to be remove.\n@return bool which represents a success","id":1336,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1146,"modifierName":{"argumentTypes":null,"id":1145,"name":"onlyGlobalConstraintsScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":550,"src":"11461:27:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"11461:27:2"},{"arguments":[{"argumentTypes":null,"id":1148,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1143,"src":"11507:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1149,"modifierName":{"argumentTypes":null,"id":1147,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"11493:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"11493:22:2"}],"name":"removeGlobalConstraint","nodeType":"FunctionDefinition","parameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1336,"src":"11400:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1140,"name":"address","nodeType":"ElementaryTypeName","src":"11400:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1143,"name":"_avatar","nodeType":"VariableDeclaration","scope":1336,"src":"11427:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1142,"name":"address","nodeType":"ElementaryTypeName","src":"11427:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"11399:44:2"},"returnParameters":{"id":1152,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1151,"name":"","nodeType":"VariableDeclaration","scope":1336,"src":"11528:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1150,"name":"bool","nodeType":"ElementaryTypeName","src":"11528:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"11527:6:2"},"scope":1797,"src":"11367:2405:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1441,"nodeType":"Block","src":"14164:756:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1353,"name":"newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"14182:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14207:1:2","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":1354,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14199:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14199:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"14182:27:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1352,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14174:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14174:36:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1359,"nodeType":"ExpressionStatement","src":"14174:36:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1361,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14283:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14309:1:2","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":1362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14301:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14301:10:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"14283:28:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1360,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14275:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14275:37:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1367,"nodeType":"ExpressionStatement","src":"14275:37:2"},{"expression":{"argumentTypes":null,"id":1370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1368,"name":"newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"14322:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1369,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14338:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14322:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1371,"nodeType":"ExpressionStatement","src":"14322:30:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1375,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14387:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1372,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"14362:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"14362:24:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14362:40:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1377,"nodeType":"ExpressionStatement","src":"14362:40:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1379,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"14420:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14420:12:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14420:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1382,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14438:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14420:32:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1378,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14412:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14412:41:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1385,"nodeType":"ExpressionStatement","src":"14412:41:2"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1386,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"14467:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":1387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14467:17:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14467:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1390,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"14498:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":1389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14490:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14490:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14467:36:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1408,"nodeType":"IfStatement","src":"14463:172:2","trueBody":{"id":1407,"nodeType":"Block","src":"14505:130:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1396,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14549:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1393,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"14519:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":1395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"14519:29:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14519:45:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1398,"nodeType":"ExpressionStatement","src":"14519:45:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1400,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":364,"src":"14586:11:2","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14586:17:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14586:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1403,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14609:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14586:37:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1399,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14578:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14578:46:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1406,"nodeType":"ExpressionStatement","src":"14578:46:2"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1409,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"14648:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14648:22:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14648:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1413,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"14684:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":1412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14676:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14676:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14648:41:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1431,"nodeType":"IfStatement","src":"14644:187:2","trueBody":{"id":1430,"nodeType":"Block","src":"14691:140:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1419,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14740:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":1416,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"14705:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"14705:34:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":1420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14705:50:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1421,"nodeType":"ExpressionStatement","src":"14705:50:2"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":1423,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"14777:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"14777:22:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14777:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":1426,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1338,"src":"14805:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14777:42:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1422,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"14769:7:2","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14769:51:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1429,"nodeType":"ExpressionStatement","src":"14769:51:2"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1434,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21147,"src":"14871:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":1433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14863:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14863:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1436,"name":"newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":368,"src":"14878:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1432,"name":"UpgradeController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":424,"src":"14845:17:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":1437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14845:47:2","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1438,"nodeType":"EmitStatement","src":"14840:52:2"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14909:4:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1351,"id":1440,"nodeType":"Return","src":"14902:11:2"}]},"documentation":"@dev upgrade the Controller\n The function will trigger an event 'UpgradeController'.\n@param _newController the address of the new controller.\n@return bool which represents a success","id":1442,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1343,"modifierName":{"argumentTypes":null,"id":1342,"name":"onlyUpgradingScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":570,"src":"14086:19:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"14086:19:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1346,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1340,"src":"14132:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14124:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14124:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1348,"modifierName":{"argumentTypes":null,"id":1344,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"14110:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"14110:31:2"}],"name":"upgradeController","nodeType":"FunctionDefinition","parameters":{"id":1341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"name":"_newController","nodeType":"VariableDeclaration","scope":1442,"src":"14029:22:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1337,"name":"address","nodeType":"ElementaryTypeName","src":"14029:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1340,"name":"_avatar","nodeType":"VariableDeclaration","scope":1442,"src":"14053:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1339,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"14053:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"14028:40:2"},"returnParameters":{"id":1351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1350,"name":"","nodeType":"VariableDeclaration","scope":1442,"src":"14154:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1349,"name":"bool","nodeType":"ElementaryTypeName","src":"14154:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"14153:6:2"},"scope":1797,"src":"14002:918:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1474,"nodeType":"Block","src":"15600:68:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1469,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1444,"src":"15636:9:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1470,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1446,"src":"15647:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"argumentTypes":null,"id":1471,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1450,"src":"15654:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1467,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"15617:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":195,"src":"15617:18:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) external returns (bool,bytes memory)"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15617:44:2","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":1466,"id":1473,"nodeType":"Return","src":"15610:51:2"}]},"documentation":"@dev perform a generic call to an arbitrary contract\n@param _contract the contract's address to call\n@param _data ABI-encoded contract call to call `_contract` address.\n@param _avatar the controller's avatar address\n@param _value value (ETH) to transfer with the transaction\n@return bool -success\n bytes - the return value of the called _contract's function.","id":1475,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1453,"modifierName":{"argumentTypes":null,"id":1452,"name":"onlyGenericCallScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":590,"src":"15462:21:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"15462:21:2"},{"arguments":[{"argumentTypes":null,"hexValue":"67656e6572696343616c6c","id":1455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15512:13:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f50c9c0d8078680ea2ffd7664f6b8e067777195c71561a9aa7bb8b53f908fb39","typeString":"literal_string \"genericCall\""},"value":"genericCall"}],"id":1456,"modifierName":{"argumentTypes":null,"id":1454,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"15488:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"15488:38:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1459,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1448,"src":"15553:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1458,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15545:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15545:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1461,"modifierName":{"argumentTypes":null,"id":1457,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"15531:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"15531:31:2"}],"name":"genericCall","nodeType":"FunctionDefinition","parameters":{"id":1451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1444,"name":"_contract","nodeType":"VariableDeclaration","scope":1475,"src":"15372:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1443,"name":"address","nodeType":"ElementaryTypeName","src":"15372:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1446,"name":"_data","nodeType":"VariableDeclaration","scope":1475,"src":"15391:20:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1445,"name":"bytes","nodeType":"ElementaryTypeName","src":"15391:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":1448,"name":"_avatar","nodeType":"VariableDeclaration","scope":1475,"src":"15413:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1447,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"15413:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":1450,"name":"_value","nodeType":"VariableDeclaration","scope":1475,"src":"15429:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1449,"name":"uint256","nodeType":"ElementaryTypeName","src":"15429:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"15371:73:2"},"returnParameters":{"id":1466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1463,"name":"","nodeType":"VariableDeclaration","scope":1475,"src":"15576:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1462,"name":"bool","nodeType":"ElementaryTypeName","src":"15576:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":1465,"name":"","nodeType":"VariableDeclaration","scope":1475,"src":"15582:12:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1464,"name":"bytes","nodeType":"ElementaryTypeName","src":"15582:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"15575:20:2"},"scope":1797,"src":"15351:317:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1502,"nodeType":"Block","src":"16077:59:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1498,"name":"_amountInWei","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1477,"src":"16111:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":1499,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"16125:3:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":1496,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"16094:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sendEther","nodeType":"MemberAccess","referencedDeclaration":220,"src":"16094:16:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_payable_$returns$_t_bool_$","typeString":"function (uint256,address payable) external returns (bool)"}},"id":1500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16094:35:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1495,"id":1501,"nodeType":"Return","src":"16087:42:2"}]},"documentation":"@dev send some ether\n@param _amountInWei the amount of ether (in Wei) to send\n@param _to address of the beneficiary\n@return bool which represents a success","id":1503,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1484,"modifierName":{"argumentTypes":null,"id":1483,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"15957:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"15957:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"73656e644574686572","id":1486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16006:11:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c700fcf825bb96908bcfa40b8d91237381cd207a842fc67195330064c6f87772","typeString":"literal_string \"sendEther\""},"value":"sendEther"}],"id":1487,"modifierName":{"argumentTypes":null,"id":1485,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"15982:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"15982:36:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1490,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"16045:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1489,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16037:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16037:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1492,"modifierName":{"argumentTypes":null,"id":1488,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"16023:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"16023:31:2"}],"name":"sendEther","nodeType":"FunctionDefinition","parameters":{"id":1482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1477,"name":"_amountInWei","nodeType":"VariableDeclaration","scope":1503,"src":"15881:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1476,"name":"uint256","nodeType":"ElementaryTypeName","src":"15881:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1479,"name":"_to","nodeType":"VariableDeclaration","scope":1503,"src":"15903:19:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1478,"name":"address","nodeType":"ElementaryTypeName","src":"15903:15:2","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":1481,"name":"_avatar","nodeType":"VariableDeclaration","scope":1503,"src":"15924:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1480,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"15924:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"15880:59:2"},"returnParameters":{"id":1495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1494,"name":"","nodeType":"VariableDeclaration","scope":1503,"src":"16067:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1493,"name":"bool","nodeType":"ElementaryTypeName","src":"16067:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"16066:6:2"},"scope":1797,"src":"15862:274:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1533,"nodeType":"Block","src":"16668:81:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1528,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1505,"src":"16714:14:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1529,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1507,"src":"16730:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1530,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1509,"src":"16735:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1526,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"16685:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":252,"src":"16685:28:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256) external returns (bool)"}},"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16685:57:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1525,"id":1532,"nodeType":"Return","src":"16678:64:2"}]},"documentation":"@dev send some amount of arbitrary ERC20 Tokens\n@param _externalToken the address of the Token Contract\n@param _to address of the beneficiary\n@param _value the amount of ether (in Wei) to send\n@return bool which represents a success","id":1534,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1514,"modifierName":{"argumentTypes":null,"id":1513,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"16536:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"16536:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"65787465726e616c546f6b656e5472616e73666572","id":1516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16585:23:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7813035546e060c03dbe66bdee1941f9a0ad6551df13f617f14419ad20f4154f","typeString":"literal_string \"externalTokenTransfer\""},"value":"externalTokenTransfer"}],"id":1517,"modifierName":{"argumentTypes":null,"id":1515,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"16561:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"16561:48:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1520,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1511,"src":"16636:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16628:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16628:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1522,"modifierName":{"argumentTypes":null,"id":1518,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"16614:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"16614:31:2"}],"name":"externalTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":1512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1505,"name":"_externalToken","nodeType":"VariableDeclaration","scope":1534,"src":"16451:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1504,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"16451:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1507,"name":"_to","nodeType":"VariableDeclaration","scope":1534,"src":"16474:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1506,"name":"address","nodeType":"ElementaryTypeName","src":"16474:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1509,"name":"_value","nodeType":"VariableDeclaration","scope":1534,"src":"16487:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1508,"name":"uint256","nodeType":"ElementaryTypeName","src":"16487:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1511,"name":"_avatar","nodeType":"VariableDeclaration","scope":1534,"src":"16503:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1510,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"16503:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"16450:68:2"},"returnParameters":{"id":1525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1524,"name":"","nodeType":"VariableDeclaration","scope":1534,"src":"16658:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1523,"name":"bool","nodeType":"ElementaryTypeName","src":"16658:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"16657:6:2"},"scope":1797,"src":"16420:329:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1567,"nodeType":"Block","src":"17531:92:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1561,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"17581:14:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1562,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1538,"src":"17597:5:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1563,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1540,"src":"17604:3:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1564,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"17609:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1559,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"17548:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransferFrom","nodeType":"MemberAccess","referencedDeclaration":288,"src":"17548:32:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,address,uint256) external returns (bool)"}},"id":1565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17548:68:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1558,"id":1566,"nodeType":"Return","src":"17541:75:2"}]},"documentation":"@dev transfer token \"from\" address \"to\" address\n One must to approve the amount of tokens which can be spend from the\n \"from\" account.This can be done using externalTokenApprove.\n@param _externalToken the address of the Token Contract\n@param _from address of the account to send from\n@param _to address of the beneficiary\n@param _value the amount of ether (in Wei) to send\n@return bool which represents a success","id":1568,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1547,"modifierName":{"argumentTypes":null,"id":1546,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"17395:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"17395:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"65787465726e616c546f6b656e5472616e7366657246726f6d","id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17444:27:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ac07667e4f3fe9c6116bdfeed71f93079924e4156b3ee8a0c3180f10145562f3","typeString":"literal_string \"externalTokenTransferFrom\""},"value":"externalTokenTransferFrom"}],"id":1550,"modifierName":{"argumentTypes":null,"id":1548,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"17420:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"17420:52:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1553,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1544,"src":"17499:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1552,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17491:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17491:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1555,"modifierName":{"argumentTypes":null,"id":1551,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"17477:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"17477:31:2"}],"name":"externalTokenTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":1545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1536,"name":"_externalToken","nodeType":"VariableDeclaration","scope":1568,"src":"17279:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1535,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"17279:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1538,"name":"_from","nodeType":"VariableDeclaration","scope":1568,"src":"17306:13:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1537,"name":"address","nodeType":"ElementaryTypeName","src":"17306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1540,"name":"_to","nodeType":"VariableDeclaration","scope":1568,"src":"17325:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1539,"name":"address","nodeType":"ElementaryTypeName","src":"17325:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1542,"name":"_value","nodeType":"VariableDeclaration","scope":1568,"src":"17342:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1541,"name":"uint256","nodeType":"ElementaryTypeName","src":"17342:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1544,"name":"_avatar","nodeType":"VariableDeclaration","scope":1568,"src":"17362:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1543,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"17362:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"17273:104:2"},"returnParameters":{"id":1558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1557,"name":"","nodeType":"VariableDeclaration","scope":1568,"src":"17521:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1556,"name":"bool","nodeType":"ElementaryTypeName","src":"17521:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"17520:6:2"},"scope":1797,"src":"17239:384:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1598,"nodeType":"Block","src":"18263:86:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1593,"name":"_externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1570,"src":"18309:14:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1594,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1572,"src":"18325:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1595,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1574,"src":"18335:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1591,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"18280:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenApproval","nodeType":"MemberAccess","referencedDeclaration":320,"src":"18280:28:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256) external returns (bool)"}},"id":1596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18280:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1590,"id":1597,"nodeType":"Return","src":"18273:69:2"}]},"documentation":"@dev externalTokenApproval approve the spender address to spend a specified amount of tokens\n on behalf of msg.sender.\n@param _externalToken the address of the Token Contract\n@param _spender address\n@param _value the amount of ether (in Wei) which the approval is referring to.\n@return bool which represents a success","id":1599,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1579,"modifierName":{"argumentTypes":null,"id":1578,"name":"onlyRegisteredScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":510,"src":"18123:20:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"18123:20:2"},{"arguments":[{"argumentTypes":null,"hexValue":"65787465726e616c546f6b656e496e637265617365417070726f76616c","id":1581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"18172:31:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a6b5493ce06b69199b7c164b2fe8141dd5ecf7d2d491b28efc85f9c00fdfd15c","typeString":"literal_string \"externalTokenIncreaseApproval\""},"value":"externalTokenIncreaseApproval"}],"id":1582,"modifierName":{"argumentTypes":null,"id":1580,"name":"onlySubjectToConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":683,"src":"18148:23:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"18148:56:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1585,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1576,"src":"18231:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18223:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18223:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1587,"modifierName":{"argumentTypes":null,"id":1583,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"18209:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"18209:31:2"}],"name":"externalTokenApproval","nodeType":"FunctionDefinition","parameters":{"id":1577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1570,"name":"_externalToken","nodeType":"VariableDeclaration","scope":1599,"src":"18033:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1569,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"18033:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1572,"name":"_spender","nodeType":"VariableDeclaration","scope":1599,"src":"18056:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1571,"name":"address","nodeType":"ElementaryTypeName","src":"18056:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1574,"name":"_value","nodeType":"VariableDeclaration","scope":1599,"src":"18074:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1573,"name":"uint256","nodeType":"ElementaryTypeName","src":"18074:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1576,"name":"_avatar","nodeType":"VariableDeclaration","scope":1599,"src":"18090:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1575,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"18090:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"18032:73:2"},"returnParameters":{"id":1590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1589,"name":"","nodeType":"VariableDeclaration","scope":1599,"src":"18253:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1588,"name":"bool","nodeType":"ElementaryTypeName","src":"18253:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"18252:6:2"},"scope":1797,"src":"18002:347:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1620,"nodeType":"Block","src":"18781:50:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1617,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1601,"src":"18814:9:2","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"expression":{"argumentTypes":null,"id":1615,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":362,"src":"18798:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":1616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"metaData","nodeType":"MemberAccess","referencedDeclaration":336,"src":"18798:15:2","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$returns$_t_bool_$","typeString":"function (string memory) external returns (bool)"}},"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18798:26:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1614,"id":1619,"nodeType":"Return","src":"18791:33:2"}]},"documentation":"@dev metaData emits an event with a string, should contain the hash of some meta data.\n@param _metaData a string representing a hash of the meta data\n@param _avatar Avatar\n@return bool which represents a success","id":1621,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1606,"modifierName":{"argumentTypes":null,"id":1605,"name":"onlyMetaDataScheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":610,"src":"18692:18:2","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"18692:18:2"},{"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1609,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1603,"src":"18741:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":1608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18733:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18733:16:2","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":1611,"modifierName":{"argumentTypes":null,"id":1607,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"18719:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"18719:31:2"}],"name":"metaData","nodeType":"FunctionDefinition","parameters":{"id":1604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1601,"name":"_metaData","nodeType":"VariableDeclaration","scope":1621,"src":"18624:25:2","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":1600,"name":"string","nodeType":"ElementaryTypeName","src":"18624:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1603,"name":"_avatar","nodeType":"VariableDeclaration","scope":1621,"src":"18651:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":1602,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"18651:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"18623:43:2"},"returnParameters":{"id":1614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1613,"name":"","nodeType":"VariableDeclaration","scope":1621,"src":"18767:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1612,"name":"bool","nodeType":"ElementaryTypeName","src":"18767:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"18766:6:2"},"scope":1797,"src":"18606:225:2","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":1635,"nodeType":"Block","src":"19078:49:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1632,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":366,"src":"19103:16:2","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":1631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19095:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19095:25:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1630,"id":1634,"nodeType":"Return","src":"19088:32:2"}]},"documentation":"@dev getNativeReputation\n@param _avatar the organization avatar.\n@return organization native reputation","id":1636,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1626,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1623,"src":"19047:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1627,"modifierName":{"argumentTypes":null,"id":1625,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19033:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19033:22:2"}],"name":"getNativeReputation","nodeType":"FunctionDefinition","parameters":{"id":1624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1623,"name":"_avatar","nodeType":"VariableDeclaration","scope":1636,"src":"19007:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1622,"name":"address","nodeType":"ElementaryTypeName","src":"19007:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19006:17:2"},"returnParameters":{"id":1630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1629,"name":"","nodeType":"VariableDeclaration","scope":1636,"src":"19069:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1628,"name":"address","nodeType":"ElementaryTypeName","src":"19069:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19068:9:2"},"scope":1797,"src":"18978:149:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1652,"nodeType":"Block","src":"19246:52:2","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1649,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1638,"src":"19283:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1648,"name":"_isSchemeRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1796,"src":"19263:19:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19263:28:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1647,"id":1651,"nodeType":"Return","src":"19256:35:2"}]},"documentation":null,"id":1653,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1643,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1640,"src":"19218:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1644,"modifierName":{"argumentTypes":null,"id":1642,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19204:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19204:22:2"}],"name":"isSchemeRegistered","nodeType":"FunctionDefinition","parameters":{"id":1641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1638,"name":"_scheme","nodeType":"VariableDeclaration","scope":1653,"src":"19161:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1637,"name":"address","nodeType":"ElementaryTypeName","src":"19161:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1640,"name":"_avatar","nodeType":"VariableDeclaration","scope":1653,"src":"19178:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1639,"name":"address","nodeType":"ElementaryTypeName","src":"19178:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19160:34:2"},"returnParameters":{"id":1647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1646,"name":"","nodeType":"VariableDeclaration","scope":1653,"src":"19240:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1645,"name":"bool","nodeType":"ElementaryTypeName","src":"19240:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"19239:6:2"},"scope":1797,"src":"19133:165:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1670,"nodeType":"Block","src":"19441:51:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1665,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"19458:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":1667,"indexExpression":{"argumentTypes":null,"id":1666,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1655,"src":"19466:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19458:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":1668,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":343,"src":"19458:27:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1664,"id":1669,"nodeType":"Return","src":"19451:34:2"}]},"documentation":null,"id":1671,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1660,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1657,"src":"19398:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1661,"modifierName":{"argumentTypes":null,"id":1659,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19384:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19384:22:2"}],"name":"getSchemeParameters","nodeType":"FunctionDefinition","parameters":{"id":1658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1655,"name":"_scheme","nodeType":"VariableDeclaration","scope":1671,"src":"19333:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1654,"name":"address","nodeType":"ElementaryTypeName","src":"19333:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1657,"name":"_avatar","nodeType":"VariableDeclaration","scope":1671,"src":"19350:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1656,"name":"address","nodeType":"ElementaryTypeName","src":"19350:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19332:34:2"},"returnParameters":{"id":1664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1663,"name":"","nodeType":"VariableDeclaration","scope":1671,"src":"19428:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19428:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"19427:9:2"},"scope":1797,"src":"19304:188:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1688,"nodeType":"Block","src":"19635:52:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1683,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"19652:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":1685,"indexExpression":{"argumentTypes":null,"id":1684,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1673,"src":"19660:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19652:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":1686,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"19652:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"functionReturnParameters":1682,"id":1687,"nodeType":"Return","src":"19645:35:2"}]},"documentation":null,"id":1689,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1678,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1675,"src":"19593:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1679,"modifierName":{"argumentTypes":null,"id":1677,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"19579:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"19579:22:2"}],"name":"getSchemePermissions","nodeType":"FunctionDefinition","parameters":{"id":1676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1673,"name":"_scheme","nodeType":"VariableDeclaration","scope":1689,"src":"19528:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1672,"name":"address","nodeType":"ElementaryTypeName","src":"19528:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1675,"name":"_avatar","nodeType":"VariableDeclaration","scope":1689,"src":"19545:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1674,"name":"address","nodeType":"ElementaryTypeName","src":"19545:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19527:34:2"},"returnParameters":{"id":1682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1681,"name":"","nodeType":"VariableDeclaration","scope":1689,"src":"19623:6:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":1680,"name":"bytes4","nodeType":"ElementaryTypeName","src":"19623:6:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"src":"19622:8:2"},"scope":1797,"src":"19498:189:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1730,"nodeType":"Block","src":"19799:403:2","statements":[{"assignments":[1699],"declarations":[{"constant":false,"id":1699,"name":"register","nodeType":"VariableDeclaration","scope":1730,"src":"19810:40:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister"},"typeName":{"contractScope":null,"id":1698,"name":"GlobalConstraintRegister","nodeType":"UserDefinedTypeName","referencedDeclaration":356,"src":"19810:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage_ptr","typeString":"struct Controller.GlobalConstraintRegister"}},"value":null,"visibility":"internal"}],"id":1703,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1700,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"19853:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1702,"indexExpression":{"argumentTypes":null,"id":1701,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"19882:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19853:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19810:90:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1704,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"19915:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1705,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"19915:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1713,"nodeType":"IfStatement","src":"19911:102:2","trueBody":{"id":1712,"nodeType":"Block","src":"19938:75:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1706,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"19959:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1709,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1707,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"19980:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"19980:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19959:36:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1710,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"19959:43:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1697,"id":1711,"nodeType":"Return","src":"19952:50:2"}]}},{"expression":{"argumentTypes":null,"id":1718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1714,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"20023:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1715,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"20034:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1717,"indexExpression":{"argumentTypes":null,"id":1716,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1691,"src":"20064:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20034:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"src":"20023:59:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1719,"nodeType":"ExpressionStatement","src":"20023:59:2"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1720,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"20097:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"20097:21:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1729,"nodeType":"IfStatement","src":"20093:103:2","trueBody":{"id":1728,"nodeType":"Block","src":"20120:76:2","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1722,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"20141:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1725,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1723,"name":"register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1699,"src":"20163:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_memory_ptr","typeString":"struct Controller.GlobalConstraintRegister memory"}},"id":1724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"index","nodeType":"MemberAccess","referencedDeclaration":355,"src":"20163:14:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20141:37:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraint_$351_storage","typeString":"struct Controller.GlobalConstraint storage ref"}},"id":1726,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":350,"src":"20141:44:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1697,"id":1727,"nodeType":"Return","src":"20134:51:2"}]}}]},"documentation":null,"id":1731,"implemented":true,"kind":"function","modifiers":[],"name":"getGlobalConstraintParameters","nodeType":"FunctionDefinition","parameters":{"id":1694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1691,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1731,"src":"19732:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1690,"name":"address","nodeType":"ElementaryTypeName","src":"19732:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1693,"name":"","nodeType":"VariableDeclaration","scope":1731,"src":"19759:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1692,"name":"address","nodeType":"ElementaryTypeName","src":"19759:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"19731:36:2"},"returnParameters":{"id":1697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1696,"name":"","nodeType":"VariableDeclaration","scope":1731,"src":"19790:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19790:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"19789:9:2"},"scope":1797,"src":"19693:509:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1749,"nodeType":"Block","src":"20551:83:2","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1743,"name":"globalConstraintsPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":371,"src":"20569:20:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20569:27:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1745,"name":"globalConstraintsPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":374,"src":"20598:21:2","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_GlobalConstraint_$351_storage_$dyn_storage","typeString":"struct Controller.GlobalConstraint storage ref[] storage ref"}},"id":1746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"20598:28:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1747,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20568:59:2","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":1742,"id":1748,"nodeType":"Return","src":"20561:66:2"}]},"documentation":"@dev globalConstraintsCount return the global constraint pre and post count\n@return uint256 globalConstraintsPre count.\n@return uint256 globalConstraintsPost count.","id":1750,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1736,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1733,"src":"20493:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1737,"modifierName":{"argumentTypes":null,"id":1735,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"20479:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"20479:22:2"}],"name":"globalConstraintsCount","nodeType":"FunctionDefinition","parameters":{"id":1734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1733,"name":"_avatar","nodeType":"VariableDeclaration","scope":1750,"src":"20437:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1732,"name":"address","nodeType":"ElementaryTypeName","src":"20437:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"20436:17:2"},"returnParameters":{"id":1742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1739,"name":"","nodeType":"VariableDeclaration","scope":1750,"src":"20531:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1738,"name":"uint","nodeType":"ElementaryTypeName","src":"20531:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1741,"name":"","nodeType":"VariableDeclaration","scope":1750,"src":"20537:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1740,"name":"uint","nodeType":"ElementaryTypeName","src":"20537:4:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20530:12:2"},"scope":1797,"src":"20405:229:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1773,"nodeType":"Block","src":"20813:167:2","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1762,"name":"globalConstraintsRegisterPre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"20831:28:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1764,"indexExpression":{"argumentTypes":null,"id":1763,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"20860:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20831:47:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1765,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"20831:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1766,"name":"globalConstraintsRegisterPost","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":382,"src":"20911:29:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_GlobalConstraintRegister_$356_storage_$","typeString":"mapping(address => struct Controller.GlobalConstraintRegister storage ref)"}},"id":1768,"indexExpression":{"argumentTypes":null,"id":1767,"name":"_globalConstraint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1752,"src":"20941:17:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20911:48:2","typeDescriptions":{"typeIdentifier":"t_struct$_GlobalConstraintRegister_$356_storage","typeString":"struct Controller.GlobalConstraintRegister storage ref"}},"id":1769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":353,"src":"20911:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20831:141:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1771,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20830:143:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1761,"id":1772,"nodeType":"Return","src":"20823:150:2"}]},"documentation":null,"id":1774,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":1757,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1754,"src":"20761:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1758,"modifierName":{"argumentTypes":null,"id":1756,"name":"isAvatarValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":697,"src":"20747:13:2","typeDescriptions":{"typeIdentifier":"t_modifier$_t_address_$","typeString":"modifier (address)"}},"nodeType":"ModifierInvocation","src":"20747:22:2"}],"name":"isGlobalConstraintRegistered","nodeType":"FunctionDefinition","parameters":{"id":1755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1752,"name":"_globalConstraint","nodeType":"VariableDeclaration","scope":1774,"src":"20678:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1751,"name":"address","nodeType":"ElementaryTypeName","src":"20678:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1754,"name":"_avatar","nodeType":"VariableDeclaration","scope":1774,"src":"20705:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1753,"name":"address","nodeType":"ElementaryTypeName","src":"20705:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"20677:44:2"},"returnParameters":{"id":1761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1760,"name":"","nodeType":"VariableDeclaration","scope":1774,"src":"20799:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1759,"name":"bool","nodeType":"ElementaryTypeName","src":"20799:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"20798:6:2"},"scope":1797,"src":"20640:340:2","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":1795,"nodeType":"Block","src":"21059:86:2","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":1788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1781,"name":"schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":360,"src":"21077:7:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Scheme_$346_storage_$","typeString":"mapping(address => struct Controller.Scheme storage ref)"}},"id":1783,"indexExpression":{"argumentTypes":null,"id":1782,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1776,"src":"21085:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21077:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Scheme_$346_storage","typeString":"struct Controller.Scheme storage ref"}},"id":1784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":345,"src":"21077:28:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303031","id":1786,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21113:10:2","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x00000001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":1785,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21106:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":1787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21106:18:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21077:47:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":1790,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21135:1:2","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":1789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21128:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":1791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21128:9:2","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"21077:60:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":1793,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"21076:62:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1780,"id":1794,"nodeType":"Return","src":"21069:69:2"}]},"documentation":null,"id":1796,"implemented":true,"kind":"function","modifiers":[],"name":"_isSchemeRegistered","nodeType":"FunctionDefinition","parameters":{"id":1777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1776,"name":"_scheme","nodeType":"VariableDeclaration","scope":1796,"src":"21015:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1775,"name":"address","nodeType":"ElementaryTypeName","src":"21015:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"21014:17:2"},"returnParameters":{"id":1780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1779,"name":"","nodeType":"VariableDeclaration","scope":1796,"src":"21053:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1778,"name":"bool","nodeType":"ElementaryTypeName","src":"21053:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"21052:6:2"},"scope":1797,"src":"20986:159:2","stateMutability":"view","superFunction":null,"visibility":"private"}],"scope":1798,"src":"373:20774:2"}],"src":"0:21148:2"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.050Z","devdoc":{"details":"A controller controls the organizations tokens, reputation and avatar. It is subject to a set of schemes and constraints that determine its behavior. Each scheme has it own parameters and operation permissions.","methods":{"addGlobalConstraint(address,bytes32,address)":{"details":"add or update Global Constraint","params":{"_globalConstraint":"the address of the global constraint to be added.","_params":"the constraint parameters hash."},"return":"bool which represents a success"},"burnReputation(uint256,address,address)":{"details":"Burns `_amount` of reputation from `_from`","params":{"_amount":"amount of reputation to burn","_from":"The address that will lose the reputation"},"return":"bool which represents a success"},"externalTokenApproval(address,address,uint256,address)":{"details":"externalTokenApproval approve the spender address to spend a specified amount of tokens on behalf of msg.sender.","params":{"_externalToken":"the address of the Token Contract","_spender":"address","_value":"the amount of ether (in Wei) which the approval is referring to."},"return":"bool which represents a success"},"externalTokenTransfer(address,address,uint256,address)":{"details":"send some amount of arbitrary ERC20 Tokens","params":{"_externalToken":"the address of the Token Contract","_to":"address of the beneficiary","_value":"the amount of ether (in Wei) to send"},"return":"bool which represents a success"},"externalTokenTransferFrom(address,address,address,uint256,address)":{"details":"transfer token \"from\" address \"to\" address One must to approve the amount of tokens which can be spend from the \"from\" account.This can be done using externalTokenApprove.","params":{"_externalToken":"the address of the Token Contract","_from":"address of the account to send from","_to":"address of the beneficiary","_value":"the amount of ether (in Wei) to send"},"return":"bool which represents a success"},"genericCall(address,bytes,address,uint256)":{"details":"perform a generic call to an arbitrary contract","params":{"_avatar":"the controller's avatar address","_contract":"the contract's address to call","_data":"ABI-encoded contract call to call `_contract` address.","_value":"value (ETH) to transfer with the transaction"},"return":"bool -success bytes - the return value of the called _contract's function."},"getNativeReputation(address)":{"details":"getNativeReputation","params":{"_avatar":"the organization avatar."},"return":"organization native reputation"},"globalConstraintsCount(address)":{"details":"globalConstraintsCount return the global constraint pre and post count","return":"uint256 globalConstraintsPre count.uint256 globalConstraintsPost count."},"metaData(string,address)":{"details":"metaData emits an event with a string, should contain the hash of some meta data.","params":{"_avatar":"Avatar","_metaData":"a string representing a hash of the meta data"},"return":"bool which represents a success"},"mintReputation(uint256,address,address)":{"details":"Mint `_amount` of reputation that are assigned to `_to` .","params":{"_amount":"amount of reputation to mint","_to":"beneficiary address"},"return":"bool which represents a success"},"mintTokens(uint256,address,address)":{"details":"mint tokens .","params":{"_amount":"amount of token to mint","_beneficiary":"beneficiary address"},"return":"bool which represents a success"},"registerScheme(address,bytes32,bytes4,address)":{"details":"register a scheme","params":{"_paramsHash":"a hashed configuration of the usage of the scheme","_permissions":"the permissions the new scheme will have","_scheme":"the address of the scheme"},"return":"bool which represents a success"},"removeGlobalConstraint(address,address)":{"details":"remove Global Constraint","params":{"_globalConstraint":"the address of the global constraint to be remove."},"return":"bool which represents a success"},"sendEther(uint256,address,address)":{"details":"send some ether","params":{"_amountInWei":"the amount of ether (in Wei) to send","_to":"address of the beneficiary"},"return":"bool which represents a success"},"unregisterScheme(address,address)":{"details":"unregister a scheme","params":{"_scheme":"the address of the scheme"},"return":"bool which represents a success"},"unregisterSelf(address)":{"details":"unregister the caller's scheme","return":"bool which represents a success"},"upgradeController(address,address)":{"details":"upgrade the Controller The function will trigger an event 'UpgradeController'.","params":{"_newController":"the address of the new controller."},"return":"bool which represents a success"}},"title":"Controller contract"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ControllerCreator.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ControllerCreator.json new file mode 100644 index 00000000..922e0d8d --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ControllerCreator.json @@ -0,0 +1 @@ +{"contractName":"ControllerCreator","abi":[{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"}],"name":"create","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"create\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{},\"title\":\"ControllerCreator for creating a single controller.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol\":\"ControllerCreator\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol\":{\"keccak256\":\"0xd08a37b916bc4d26ef8196793e76eb761c637f97a68f1f28940d7a51d790506b\",\"urls\":[\"bzz-raw://209f6346bc7e0df1c3c42a563d0354bfdd342dec7238755b2807dce12b154a7f\",\"dweb:/ipfs/QmeweZE6eN5cFKogcdtec2HS1EyUpkMKVnsy5FEpRN4rFz\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol\":{\"keccak256\":\"0x98fdf00f5150a0e5ef98abde36f89c37fb307135ddbfe4e0476771c93782824f\",\"urls\":[\"bzz-raw://ee0f9617d3dca49b10738d188f5b8870f45f5601fbc64b1428aab7e6c13b13c1\",\"dweb:/ipfs/QmVoFTHX3QPb7hjAiSjdVEgQaanXys8mX4i4WTrCcNzcvS\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"202:359:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;202:359:39;;;;;;;","deployedSourceMap":"202:359:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;202:359:39;;;;;;;;;;;;;;;;;;;236:323;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;236:323:39;-1:-1:-1;;;;;236:323:39;;:::i;:::-;;;;-1:-1:-1;;;;;236:323:39;;;;;;;;;;;;;;;283:7;302:21;341:7;326:23;;;;;:::i;:::-;-1:-1:-1;;;;;326:23:39;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;359:87:39;;;-1:-1:-1;;;359:87:39;;385:10;359:87;;;;405:1;359:87;;;;;;-1:-1:-1;;;359:87:39;;;;-1:-1:-1;;;;;359:87:39;;;;;;;;;302:47;;-1:-1:-1;359:25:39;;;;;;:87;;;;;;;;;;;;;;;;;;:25;:87;;;5:2:-1;;;;30:1;27;20:12;5:2;359:87:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;359:87:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;456:60:39;;;-1:-1:-1;;;456:60:39;;492:4;456:60;;;;-1:-1:-1;;;;;456:60:39;;;;;;;;;:27;;;;;;:60;;;;;359:87;;456:60;;;;;;;;-1:-1:-1;456:27:39;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;456:60:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;456:60:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;541:10:39;;236:323;-1:-1:-1;;;236:323:39:o;202:359::-;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"./UniversalScheme.sol\";\nimport \"../controller/Controller.sol\";\nimport \"../utils/DAOTracker.sol\";\n\n\n/**\n * @title ControllerCreator for creating a single controller.\n */\ncontract ControllerCreator {\n\n function create(Avatar _avatar) public returns(address) {\n Controller controller = new Controller(_avatar);\n controller.registerScheme(msg.sender, bytes32(0), bytes4(0x0000001f), address(_avatar));\n controller.unregisterScheme(address(this), address(_avatar));\n return address(controller);\n }\n}\n\n/**\n * @title Genesis Scheme that creates organizations\n */\ncontract DaoCreator {\n\n mapping(address=>address) public locks;\n\n event NewOrg (address _avatar);\n event InitialSchemesSet (address _avatar);\n\n ControllerCreator private controllerCreator;\n DAOTracker private daoTracker;\n\n constructor(ControllerCreator _controllerCreator, DAOTracker _daoTracker) public {\n require(_controllerCreator != ControllerCreator(0));\n require(_daoTracker != DAOTracker(0));\n controllerCreator = _controllerCreator;\n daoTracker = _daoTracker;\n }\n\n /**\n * @dev addFounders add founders to the organization.\n * this function can be called only after forgeOrg and before setSchemes\n * @param _avatar the organization avatar\n * @param _founders An array with the addresses of the founders of the organization\n * @param _foundersTokenAmount An array of amount of tokens that the founders\n * receive in the new organization\n * @param _foundersReputationAmount An array of amount of reputation that the\n * founders receive in the new organization\n * @return bool true or false\n */\n function addFounders (\n Avatar _avatar,\n address[] calldata _founders,\n uint[] calldata _foundersTokenAmount,\n uint[] calldata _foundersReputationAmount\n )\n external\n returns(bool)\n {\n require(_founders.length == _foundersTokenAmount.length);\n require(_founders.length == _foundersReputationAmount.length);\n require(_founders.length > 0);\n require(locks[address(_avatar)] == msg.sender);\n // Mint token and reputation for founders:\n for (uint256 i = 0; i < _founders.length; i++) {\n require(_founders[i] != address(0));\n if (_foundersTokenAmount[i] > 0) {\n Controller(\n _avatar.owner()).mintTokens(_foundersTokenAmount[i], _founders[i], address(_avatar));\n }\n if (_foundersReputationAmount[i] > 0) {\n Controller(\n _avatar.owner()).mintReputation(_foundersReputationAmount[i], _founders[i], address(_avatar));\n }\n }\n return true;\n }\n\n /**\n * @dev Create a new organization\n * @param _orgName The name of the new organization\n * @param _tokenName The name of the token associated with the organization\n * @param _tokenSymbol The symbol of the token\n * @param _founders An array with the addresses of the founders of the organization\n * @param _foundersTokenAmount An array of amount of tokens that the founders\n * receive in the new organization\n * @param _foundersReputationAmount An array of amount of reputation that the\n * founders receive in the new organization\n * @param _cap token cap - 0 for no cap.\n * @return The address of the avatar of the controller\n */\n function forgeOrg (\n string calldata _orgName,\n string calldata _tokenName,\n string calldata _tokenSymbol,\n address[] calldata _founders,\n uint[] calldata _foundersTokenAmount,\n uint[] calldata _foundersReputationAmount,\n uint256 _cap\n )\n external\n returns(address)\n {\n //The call for the private function is needed to bypass a deep stack issues\n return _forgeOrg(\n _orgName,\n _tokenName,\n _tokenSymbol,\n _founders,\n _foundersTokenAmount,\n _foundersReputationAmount,\n _cap);\n }\n\n /**\n * @dev Set initial schemes for the organization.\n * @param _avatar organization avatar (returns from forgeOrg)\n * @param _schemes the schemes to register for the organization\n * @param _params the schemes's params\n * @param _permissions the schemes permissions.\n * @param _metaData dao meta data hash\n */\n function setSchemes (\n Avatar _avatar,\n address[] calldata _schemes,\n bytes32[] calldata _params,\n bytes4[] calldata _permissions,\n string calldata _metaData\n )\n external\n {\n // this action can only be executed by the account that holds the lock\n // for this controller\n require(locks[address(_avatar)] == msg.sender);\n // register initial schemes:\n Controller controller = Controller(_avatar.owner());\n for (uint256 i = 0; i < _schemes.length; i++) {\n controller.registerScheme(_schemes[i], _params[i], _permissions[i], address(_avatar));\n }\n controller.metaData(_metaData, _avatar);\n // Unregister self:\n controller.unregisterScheme(address(this), address(_avatar));\n // Remove lock:\n delete locks[address(_avatar)];\n emit InitialSchemesSet(address(_avatar));\n }\n\n /**\n * @dev Create a new organization\n * @param _orgName The name of the new organization\n * @param _tokenName The name of the token associated with the organization\n * @param _tokenSymbol The symbol of the token\n * @param _founders An array with the addresses of the founders of the organization\n * @param _foundersTokenAmount An array of amount of tokens that the founders\n * receive in the new organization\n * @param _foundersReputationAmount An array of amount of reputation that the\n * founders receive in the new organization\n * @param _cap token cap - 0 for no cap.\n * @return The address of the avatar of the controller\n */\n function _forgeOrg (\n string memory _orgName,\n string memory _tokenName,\n string memory _tokenSymbol,\n address[] memory _founders,\n uint[] memory _foundersTokenAmount,\n uint[] memory _foundersReputationAmount,\n uint256 _cap\n ) private returns(address)\n {\n // Create Token, Reputation and Avatar:\n require(_founders.length == _foundersTokenAmount.length);\n require(_founders.length == _foundersReputationAmount.length);\n require(_founders.length > 0);\n DAOToken nativeToken = new DAOToken(_tokenName, _tokenSymbol, _cap);\n Reputation nativeReputation = new Reputation();\n Avatar avatar = new Avatar(_orgName, nativeToken, nativeReputation);\n\n\n // Mint token and reputation for founders:\n for (uint256 i = 0; i < _founders.length; i++) {\n require(_founders[i] != address(0));\n if (_foundersTokenAmount[i] > 0) {\n nativeToken.mint(_founders[i], _foundersTokenAmount[i]);\n }\n if (_foundersReputationAmount[i] > 0) {\n nativeReputation.mint(_founders[i], _foundersReputationAmount[i]);\n }\n }\n\n Controller controller = Controller(controllerCreator.create(avatar));\n\n // Add the DAO to the tracking registry\n daoTracker.track(avatar, controller, \"\");\n\n // Transfer ownership:\n avatar.transferOwnership(address(controller));\n nativeToken.transferOwnership(address(controller));\n nativeReputation.transferOwnership(address(controller));\n\n locks[address(avatar)] = msg.sender;\n\n emit NewOrg (address(avatar));\n return (address(avatar));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol","exportedSymbols":{"ControllerCreator":[10961],"DaoCreator":[11454]},"id":11455,"nodeType":"SourceUnit","nodes":[{"id":10911,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:39"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":10912,"nodeType":"ImportDirective","scope":11455,"sourceUnit":12635,"src":"25:31:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":10913,"nodeType":"ImportDirective","scope":11455,"sourceUnit":1798,"src":"57:38:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","file":"../utils/DAOTracker.sol","id":10914,"nodeType":"ImportDirective","scope":11455,"sourceUnit":13648,"src":"96:33:39","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[1797],"contractKind":"contract","documentation":"@title ControllerCreator for creating a single controller.","fullyImplemented":true,"id":10961,"linearizedBaseContracts":[10961],"name":"ControllerCreator","nodeType":"ContractDefinition","nodes":[{"body":{"id":10959,"nodeType":"Block","src":"292:267:39","statements":[{"assignments":[10922],"declarations":[{"constant":false,"id":10922,"name":"controller","nodeType":"VariableDeclaration","scope":10959,"src":"302:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":10921,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"302:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":10927,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10925,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"341:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"326:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_contract$_Avatar_$337_$returns$_t_contract$_Controller_$1797_$","typeString":"function (contract Avatar) returns (contract Controller)"},"typeName":{"contractScope":null,"id":10923,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"330:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}},"id":10926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"326:23:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"302:47:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"385:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"385:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"405:1:39","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":10933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"397:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":10935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"397:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":10937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"416:10:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":10936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"409:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":10938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"409:18:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10940,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"437:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"429:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10928,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"359:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"359:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":10942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:87:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10943,"nodeType":"ExpressionStatement","src":"359:87:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10948,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21251,"src":"492:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}],"id":10947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"484:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10951,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"507:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"499:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10944,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"456:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"456:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"456:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10954,"nodeType":"ExpressionStatement","src":"456:60:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10956,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"541:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":10955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"533:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"533:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10920,"id":10958,"nodeType":"Return","src":"526:26:39"}]},"documentation":null,"id":10960,"implemented":true,"kind":"function","modifiers":[],"name":"create","nodeType":"FunctionDefinition","parameters":{"id":10917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10916,"name":"_avatar","nodeType":"VariableDeclaration","scope":10960,"src":"252:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10915,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"252:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"251:16:39"},"returnParameters":{"id":10920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10919,"name":"","nodeType":"VariableDeclaration","scope":10960,"src":"283:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10918,"name":"address","nodeType":"ElementaryTypeName","src":"283:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"282:9:39"},"scope":10961,"src":"236:323:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":11455,"src":"202:359:39"},{"baseContracts":[],"contractDependencies":[337,1873,15082],"contractKind":"contract","documentation":"@title Genesis Scheme that creates organizations","fullyImplemented":true,"id":11454,"linearizedBaseContracts":[11454],"name":"DaoCreator","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10965,"name":"locks","nodeType":"VariableDeclaration","scope":11454,"src":"650:38:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":10964,"keyType":{"id":10962,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"650:25:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":10963,"name":"address","nodeType":"ElementaryTypeName","src":"667:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":10969,"name":"NewOrg","nodeType":"EventDefinition","parameters":{"id":10968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10967,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10969,"src":"709:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10966,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"708:17:39"},"src":"695:31:39"},{"anonymous":false,"documentation":null,"id":10973,"name":"InitialSchemesSet","nodeType":"EventDefinition","parameters":{"id":10972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10971,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10973,"src":"756:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10970,"name":"address","nodeType":"ElementaryTypeName","src":"756:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"755:17:39"},"src":"731:42:39"},{"constant":false,"id":10975,"name":"controllerCreator","nodeType":"VariableDeclaration","scope":11454,"src":"779:43:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10974,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"779:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"private"},{"constant":false,"id":10977,"name":"daoTracker","nodeType":"VariableDeclaration","scope":11454,"src":"828:29:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10976,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"828:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"private"},{"body":{"id":11008,"nodeType":"Block","src":"945:197:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"id":10989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10985,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"963:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:39","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":10986,"name":"ControllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10961,"src":"985:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ControllerCreator_$10961_$","typeString":"type(contract ControllerCreator)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"985:20:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"963:42:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"955:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:51:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10991,"nodeType":"ExpressionStatement","src":"955:51:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"id":10997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10993,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1024:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:39","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":10994,"name":"DAOTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"1039:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DAOTracker_$13647_$","typeString":"type(contract DAOTracker)"}},"id":10996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1039:13:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1024:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10992,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1016:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1016:37:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10999,"nodeType":"ExpressionStatement","src":"1016:37:39"},{"expression":{"argumentTypes":null,"id":11002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11000,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"1063:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11001,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"1083:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"1063:38:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11003,"nodeType":"ExpressionStatement","src":"1063:38:39"},{"expression":{"argumentTypes":null,"id":11006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11004,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"1111:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11005,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1124:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1111:24:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11007,"nodeType":"ExpressionStatement","src":"1111:24:39"}]},"documentation":null,"id":11009,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":10982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10979,"name":"_controllerCreator","nodeType":"VariableDeclaration","scope":11009,"src":"876:36:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10978,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"876:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"internal"},{"constant":false,"id":10981,"name":"_daoTracker","nodeType":"VariableDeclaration","scope":11009,"src":"914:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10980,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"914:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"internal"}],"src":"875:62:39"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[],"src":"945:0:39"},"scope":11454,"src":"864:278:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11132,"nodeType":"Block","src":"1958:823:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11026,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"1976:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1976:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11028,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"1996:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1996:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1976:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1968:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1968:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11032,"nodeType":"ExpressionStatement","src":"1968:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11034,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2042:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2042:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11036,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2062:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2062:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2034:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2034:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11040,"nodeType":"ExpressionStatement","src":"2034:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11042,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2113:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2113:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2113:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11041,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2105:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2105:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11047,"nodeType":"ExpressionStatement","src":"2105:29:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11049,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"2152:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11053,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11051,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2166:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2158:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2158:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2152:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2179:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2179:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2152:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2144:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2144:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11058,"nodeType":"ExpressionStatement","src":"2144:46:39"},{"body":{"id":11128,"nodeType":"Block","src":"2298:456:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11071,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2320:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11073,"indexExpression":{"argumentTypes":null,"id":11072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2330:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2320:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2344:1:39","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":11074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2336:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2320:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2312:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2312:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11079,"nodeType":"ExpressionStatement","src":"2312:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11080,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2365:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11082,"indexExpression":{"argumentTypes":null,"id":11081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2386:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2365:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2365:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11103,"nodeType":"IfStatement","src":"2361:178:39","trueBody":{"id":11102,"nodeType":"Block","src":"2394:145:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11091,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2468:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11093,"indexExpression":{"argumentTypes":null,"id":11092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2489:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11094,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2493:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11096,"indexExpression":{"argumentTypes":null,"id":11095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2503:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2493:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11098,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2515:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2507:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11086,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2440:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2440:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11085,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2412:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"2412:55:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:112:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11101,"nodeType":"ExpressionStatement","src":"2412:112:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11104,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2556:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11106,"indexExpression":{"argumentTypes":null,"id":11105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2582:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2556:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2587:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2556:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11127,"nodeType":"IfStatement","src":"2552:192:39","trueBody":{"id":11126,"nodeType":"Block","src":"2590:154:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11115,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2668:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11117,"indexExpression":{"argumentTypes":null,"id":11116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2694:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2668:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11118,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2698:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11120,"indexExpression":{"argumentTypes":null,"id":11119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2708:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2698:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11122,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2720:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2712:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2712:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11110,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2636:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2636:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2636:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11109,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2608:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"2608:59:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:121:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11125,"nodeType":"ExpressionStatement","src":"2608:121:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2271:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11064,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2275:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2275:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2271:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11129,"initializationExpression":{"assignments":[11060],"declarations":[{"constant":false,"id":11060,"name":"i","nodeType":"VariableDeclaration","scope":11129,"src":"2256:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11062,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2268:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2256:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2293:3:39","subExpression":{"argumentTypes":null,"id":11067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2293:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11069,"nodeType":"ExpressionStatement","src":"2293:3:39"},"nodeType":"ForStatement","src":"2251:503:39"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":11130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2770:4:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11024,"id":11131,"nodeType":"Return","src":"2763:11:39"}]},"documentation":"@dev addFounders add founders to the organization.\n this function can be called only after forgeOrg and before setSchemes\n@param _avatar the organization avatar\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@return bool true or false","id":11133,"implemented":true,"kind":"function","modifiers":[],"name":"addFounders","nodeType":"FunctionDefinition","parameters":{"id":11021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11011,"name":"_avatar","nodeType":"VariableDeclaration","scope":11133,"src":"1767:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11010,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1767:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11014,"name":"_founders","nodeType":"VariableDeclaration","scope":11133,"src":"1791:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11012,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11013,"length":null,"nodeType":"ArrayTypeName","src":"1791:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11017,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1829:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11015,"name":"uint","nodeType":"ElementaryTypeName","src":"1829:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11016,"length":null,"nodeType":"ArrayTypeName","src":"1829:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11020,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1875:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11018,"name":"uint","nodeType":"ElementaryTypeName","src":"1875:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11019,"length":null,"nodeType":"ArrayTypeName","src":"1875:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1757:165:39"},"returnParameters":{"id":11024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11023,"name":"","nodeType":"VariableDeclaration","scope":11133,"src":"1948:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11022,"name":"bool","nodeType":"ElementaryTypeName","src":"1948:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1947:6:39"},"scope":11454,"src":"1736:1045:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11165,"nodeType":"Block","src":"3789:304:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11156,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11135,"src":"3913:8:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11157,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"3935:10:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11158,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"3959:12:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11159,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"3985:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":11160,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11145,"src":"4008:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11161,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11148,"src":"4042:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11162,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"4081:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11155,"name":"_forgeOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11453,"src":"3890:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (string memory,string memory,string memory,address[] memory,uint256[] memory,uint256[] memory,uint256) returns (address)"}},"id":11163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3890:196:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11154,"id":11164,"nodeType":"Return","src":"3883:203:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11166,"implemented":true,"kind":"function","modifiers":[],"name":"forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11135,"name":"_orgName","nodeType":"VariableDeclaration","scope":11166,"src":"3489:24:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11134,"name":"string","nodeType":"ElementaryTypeName","src":"3489:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11137,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11166,"src":"3523:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11136,"name":"string","nodeType":"ElementaryTypeName","src":"3523:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11139,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11166,"src":"3559:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11138,"name":"string","nodeType":"ElementaryTypeName","src":"3559:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11142,"name":"_founders","nodeType":"VariableDeclaration","scope":11166,"src":"3597:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11140,"name":"address","nodeType":"ElementaryTypeName","src":"3597:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11141,"length":null,"nodeType":"ArrayTypeName","src":"3597:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11145,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3635:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11143,"name":"uint","nodeType":"ElementaryTypeName","src":"3635:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11144,"length":null,"nodeType":"ArrayTypeName","src":"3635:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11148,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3681:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11146,"name":"uint","nodeType":"ElementaryTypeName","src":"3681:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11147,"length":null,"nodeType":"ArrayTypeName","src":"3681:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11150,"name":"_cap","nodeType":"VariableDeclaration","scope":11166,"src":"3732:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11149,"name":"uint256","nodeType":"ElementaryTypeName","src":"3732:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3479:271:39"},"returnParameters":{"id":11154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11153,"name":"","nodeType":"VariableDeclaration","scope":11166,"src":"3776:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11152,"name":"address","nodeType":"ElementaryTypeName","src":"3776:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3775:9:39"},"scope":11454,"src":"3461:632:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11262,"nodeType":"Block","src":"4669:697:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11183,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"4797:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11187,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11185,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4811:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4803:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4803:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4797:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11188,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4824:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4824:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4797:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4789:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4789:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11192,"nodeType":"ExpressionStatement","src":"4789:46:39"},{"assignments":[11194],"declarations":[{"constant":false,"id":11194,"name":"controller","nodeType":"VariableDeclaration","scope":11262,"src":"4882:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11193,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"4882:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11200,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11196,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4917:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4917:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4917:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11195,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4906:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4906:27:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"4882:51:39"},{"body":{"id":11229,"nodeType":"Block","src":"4989:110:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11215,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"5029:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11217,"indexExpression":{"argumentTypes":null,"id":11216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5038:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5029:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11218,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"5042:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":11220,"indexExpression":{"argumentTypes":null,"id":11219,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5050:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5042:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11221,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11177,"src":"5054:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"id":11223,"indexExpression":{"argumentTypes":null,"id":11222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5067:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5054:15:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11225,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5079:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5071:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5071:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11212,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5003:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"5003:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5003:85:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11228,"nodeType":"ExpressionStatement","src":"5003:85:39"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4963:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11206,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"4967:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4967:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4963:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11230,"initializationExpression":{"assignments":[11202],"declarations":[{"constant":false,"id":11202,"name":"i","nodeType":"VariableDeclaration","scope":11230,"src":"4948:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11204,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4960:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4948:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4984:3:39","subExpression":{"argumentTypes":null,"id":11209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4984:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11211,"nodeType":"ExpressionStatement","src":"4984:3:39"},"nodeType":"ForStatement","src":"4943:156:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11234,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"5128:9:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11235,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5139:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11231,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5108:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"metaData","nodeType":"MemberAccess","referencedDeclaration":1621,"src":"5108:19:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (string memory,contract Avatar) external returns (bool)"}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5108:39:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11237,"nodeType":"ExpressionStatement","src":"5108:39:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11242,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21253,"src":"5221:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}],"id":11241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5213:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11245,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5236:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5228:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11238,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5185:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"5185:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":11247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11248,"nodeType":"ExpressionStatement","src":"5185:60:39"},{"expression":{"argumentTypes":null,"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5279:30:39","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11249,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"5286:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11253,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11251,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5300:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5292:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5286:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"5279:30:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11258,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5350:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5342:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5342:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11256,"name":"InitialSchemesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"5324:17:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5324:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11261,"nodeType":"EmitStatement","src":"5319:40:39"}]},"documentation":"@dev Set initial schemes for the organization.\n@param _avatar organization avatar (returns from forgeOrg)\n@param _schemes the schemes to register for the organization\n@param _params the schemes's params\n@param _permissions the schemes permissions.\n@param _metaData dao meta data hash","id":11263,"implemented":true,"kind":"function","modifiers":[],"name":"setSchemes","nodeType":"FunctionDefinition","parameters":{"id":11180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11168,"name":"_avatar","nodeType":"VariableDeclaration","scope":11263,"src":"4479:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11167,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4479:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11171,"name":"_schemes","nodeType":"VariableDeclaration","scope":11263,"src":"4503:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"4503:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11170,"length":null,"nodeType":"ArrayTypeName","src":"4503:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11174,"name":"_params","nodeType":"VariableDeclaration","scope":11263,"src":"4540:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4540:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11173,"length":null,"nodeType":"ArrayTypeName","src":"4540:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11177,"name":"_permissions","nodeType":"VariableDeclaration","scope":11263,"src":"4576:30:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":11175,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4576:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":11176,"length":null,"nodeType":"ArrayTypeName","src":"4576:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11179,"name":"_metaData","nodeType":"VariableDeclaration","scope":11263,"src":"4616:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11178,"name":"string","nodeType":"ElementaryTypeName","src":"4616:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4469:178:39"},"returnParameters":{"id":11181,"nodeType":"ParameterList","parameters":[],"src":"4669:0:39"},"scope":11454,"src":"4449:917:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11452,"nodeType":"Block","src":"6368:1403:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11286,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6434:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6434:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11288,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6454:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6454:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6434:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6426:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6426:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11292,"nodeType":"ExpressionStatement","src":"6426:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11294,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6500:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6500:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11296,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"6520:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6520:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6500:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11293,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6492:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6492:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11300,"nodeType":"ExpressionStatement","src":"6492:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11302,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6571:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6571:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6571:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6563:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6563:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11307,"nodeType":"ExpressionStatement","src":"6563:29:39"},{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"name":"nativeToken","nodeType":"VariableDeclaration","scope":11452,"src":"6602:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":11308,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6602:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"internal"}],"id":11316,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11312,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"6638:10:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11313,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"6650:12:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11314,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"6664:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6625:12:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_DAOToken_$1873_$","typeString":"function (string memory,string memory,uint256) returns (contract DAOToken)"},"typeName":{"contractScope":null,"id":11310,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6629:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6625:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"VariableDeclarationStatement","src":"6602:67:39"},{"assignments":[11318],"declarations":[{"constant":false,"id":11318,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":11452,"src":"6679:27:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":11317,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6679:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"}],"id":11322,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":11320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6709:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () returns (contract Reputation)"},"typeName":{"contractScope":null,"id":11319,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6713:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}},"id":11321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6709:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"VariableDeclarationStatement","src":"6679:46:39"},{"assignments":[11324],"declarations":[{"constant":false,"id":11324,"name":"avatar","nodeType":"VariableDeclaration","scope":11452,"src":"6735:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11323,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6735:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":11331,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11327,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"6762:8:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11328,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"6772:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},{"argumentTypes":null,"id":11329,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"6785:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6751:10:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_contract$_DAOToken_$1873_$_t_contract$_Reputation_$15082_$returns$_t_contract$_Avatar_$337_$","typeString":"function (string memory,contract DAOToken,contract Reputation) returns (contract Avatar)"},"typeName":{"contractScope":null,"id":11325,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6755:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}},"id":11330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6751:51:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"6735:67:39"},{"body":{"id":11389,"nodeType":"Block","src":"6912:343:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11344,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6934:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11346,"indexExpression":{"argumentTypes":null,"id":11345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6944:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6934:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6958:1:39","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":11347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6950:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6950:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6934:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6926:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11352,"nodeType":"ExpressionStatement","src":"6926:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11353,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6979:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11355,"indexExpression":{"argumentTypes":null,"id":11354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7000:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6979:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7005:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6979:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11370,"nodeType":"IfStatement","src":"6975:121:39","trueBody":{"id":11369,"nodeType":"Block","src":"7008:88:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11361,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7043:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11363,"indexExpression":{"argumentTypes":null,"id":11362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7053:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7043:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11364,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"7057:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11366,"indexExpression":{"argumentTypes":null,"id":11365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7078:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7057:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11358,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7026:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":1872,"src":"7026:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7026:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11368,"nodeType":"ExpressionStatement","src":"7026:55:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11371,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7113:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11373,"indexExpression":{"argumentTypes":null,"id":11372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7139:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7144:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7113:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11388,"nodeType":"IfStatement","src":"7109:136:39","trueBody":{"id":11387,"nodeType":"Block","src":"7147:98:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11379,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7187:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11381,"indexExpression":{"argumentTypes":null,"id":11380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7197:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7187:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11382,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7201:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11384,"indexExpression":{"argumentTypes":null,"id":11383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7227:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11376,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7165:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"7165:21:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7165:65:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11386,"nodeType":"ExpressionStatement","src":"7165:65:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6885:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11337,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6889:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6889:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6885:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11390,"initializationExpression":{"assignments":[11333],"declarations":[{"constant":false,"id":11333,"name":"i","nodeType":"VariableDeclaration","scope":11390,"src":"6870:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11332,"name":"uint256","nodeType":"ElementaryTypeName","src":"6870:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11335,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6870:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6907:3:39","subExpression":{"argumentTypes":null,"id":11340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6907:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11342,"nodeType":"ExpressionStatement","src":"6907:3:39"},"nodeType":"ForStatement","src":"6865:390:39"},{"assignments":[11392],"declarations":[{"constant":false,"id":11392,"name":"controller","nodeType":"VariableDeclaration","scope":11452,"src":"7265:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11391,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"7265:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11399,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11396,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7325:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11394,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"7300:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"create","nodeType":"MemberAccess","referencedDeclaration":10960,"src":"7300:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$returns$_t_address_$","typeString":"function (contract Avatar) external returns (address)"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7300:32:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11393,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7289:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7289:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"7265:68:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11403,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7409:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":11404,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7417:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},{"argumentTypes":null,"hexValue":"","id":11405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:2:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":null,"id":11400,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"7392:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"track","nodeType":"MemberAccess","referencedDeclaration":13580,"src":"7392:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$_t_contract$_Controller_$1797_$_t_string_memory_ptr_$returns$__$","typeString":"function (contract Avatar,contract Controller,string memory) external"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7392:40:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11407,"nodeType":"ExpressionStatement","src":"7392:40:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11412,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7507:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7499:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11408,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7474:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7474:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7474:45:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11415,"nodeType":"ExpressionStatement","src":"7474:45:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11420,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7567:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7559:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7559:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11416,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7529:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7529:29:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7529:50:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11423,"nodeType":"ExpressionStatement","src":"7529:50:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11428,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7632:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7624:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7624:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11424,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7589:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7589:34:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:55:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11431,"nodeType":"ExpressionStatement","src":"7589:55:39"},{"expression":{"argumentTypes":null,"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11432,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"7655:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11436,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11434,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7669:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7661:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7661:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7655:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11437,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7680:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7680:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7655:35:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11440,"nodeType":"ExpressionStatement","src":"7655:35:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11443,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7722:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7714:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7714:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11441,"name":"NewOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"7706:6:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7706:24:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11446,"nodeType":"EmitStatement","src":"7701:29:39"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11448,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7756:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7748:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7748:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":11450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7747:17:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11284,"id":11451,"nodeType":"Return","src":"7740:24:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11453,"implemented":true,"kind":"function","modifiers":[],"name":"_forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11265,"name":"_orgName","nodeType":"VariableDeclaration","scope":11453,"src":"6089:22:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11264,"name":"string","nodeType":"ElementaryTypeName","src":"6089:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11267,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11453,"src":"6121:24:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11266,"name":"string","nodeType":"ElementaryTypeName","src":"6121:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11269,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11453,"src":"6155:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11268,"name":"string","nodeType":"ElementaryTypeName","src":"6155:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11272,"name":"_founders","nodeType":"VariableDeclaration","scope":11453,"src":"6191:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11270,"name":"address","nodeType":"ElementaryTypeName","src":"6191:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11271,"length":null,"nodeType":"ArrayTypeName","src":"6191:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11275,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6227:34:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11273,"name":"uint","nodeType":"ElementaryTypeName","src":"6227:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11274,"length":null,"nodeType":"ArrayTypeName","src":"6227:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11278,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6271:39:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11276,"name":"uint","nodeType":"ElementaryTypeName","src":"6271:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11277,"length":null,"nodeType":"ArrayTypeName","src":"6271:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11280,"name":"_cap","nodeType":"VariableDeclaration","scope":11453,"src":"6320:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11279,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6079:259:39"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"name":"","nodeType":"VariableDeclaration","scope":11453,"src":"6355:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11282,"name":"address","nodeType":"ElementaryTypeName","src":"6355:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6354:9:39"},"scope":11454,"src":"6060:1711:39","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":11455,"src":"623:7150:39"}],"src":"0:7774:39"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol","exportedSymbols":{"ControllerCreator":[10961],"DaoCreator":[11454]},"id":11455,"nodeType":"SourceUnit","nodes":[{"id":10911,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:39"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":10912,"nodeType":"ImportDirective","scope":11455,"sourceUnit":12635,"src":"25:31:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":10913,"nodeType":"ImportDirective","scope":11455,"sourceUnit":1798,"src":"57:38:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","file":"../utils/DAOTracker.sol","id":10914,"nodeType":"ImportDirective","scope":11455,"sourceUnit":13648,"src":"96:33:39","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[1797],"contractKind":"contract","documentation":"@title ControllerCreator for creating a single controller.","fullyImplemented":true,"id":10961,"linearizedBaseContracts":[10961],"name":"ControllerCreator","nodeType":"ContractDefinition","nodes":[{"body":{"id":10959,"nodeType":"Block","src":"292:267:39","statements":[{"assignments":[10922],"declarations":[{"constant":false,"id":10922,"name":"controller","nodeType":"VariableDeclaration","scope":10959,"src":"302:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":10921,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"302:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":10927,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10925,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"341:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"326:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_contract$_Avatar_$337_$returns$_t_contract$_Controller_$1797_$","typeString":"function (contract Avatar) returns (contract Controller)"},"typeName":{"contractScope":null,"id":10923,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"330:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}},"id":10926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"326:23:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"302:47:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"385:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"385:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"405:1:39","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":10933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"397:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":10935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"397:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":10937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"416:10:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":10936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"409:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":10938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"409:18:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10940,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"437:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"429:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10928,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"359:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"359:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":10942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:87:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10943,"nodeType":"ExpressionStatement","src":"359:87:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10948,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21251,"src":"492:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}],"id":10947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"484:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10951,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"507:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"499:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10944,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"456:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"456:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"456:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10954,"nodeType":"ExpressionStatement","src":"456:60:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10956,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"541:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":10955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"533:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"533:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10920,"id":10958,"nodeType":"Return","src":"526:26:39"}]},"documentation":null,"id":10960,"implemented":true,"kind":"function","modifiers":[],"name":"create","nodeType":"FunctionDefinition","parameters":{"id":10917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10916,"name":"_avatar","nodeType":"VariableDeclaration","scope":10960,"src":"252:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10915,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"252:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"251:16:39"},"returnParameters":{"id":10920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10919,"name":"","nodeType":"VariableDeclaration","scope":10960,"src":"283:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10918,"name":"address","nodeType":"ElementaryTypeName","src":"283:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"282:9:39"},"scope":10961,"src":"236:323:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":11455,"src":"202:359:39"},{"baseContracts":[],"contractDependencies":[337,1873,15082],"contractKind":"contract","documentation":"@title Genesis Scheme that creates organizations","fullyImplemented":true,"id":11454,"linearizedBaseContracts":[11454],"name":"DaoCreator","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10965,"name":"locks","nodeType":"VariableDeclaration","scope":11454,"src":"650:38:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":10964,"keyType":{"id":10962,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"650:25:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":10963,"name":"address","nodeType":"ElementaryTypeName","src":"667:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":10969,"name":"NewOrg","nodeType":"EventDefinition","parameters":{"id":10968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10967,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10969,"src":"709:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10966,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"708:17:39"},"src":"695:31:39"},{"anonymous":false,"documentation":null,"id":10973,"name":"InitialSchemesSet","nodeType":"EventDefinition","parameters":{"id":10972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10971,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10973,"src":"756:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10970,"name":"address","nodeType":"ElementaryTypeName","src":"756:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"755:17:39"},"src":"731:42:39"},{"constant":false,"id":10975,"name":"controllerCreator","nodeType":"VariableDeclaration","scope":11454,"src":"779:43:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10974,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"779:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"private"},{"constant":false,"id":10977,"name":"daoTracker","nodeType":"VariableDeclaration","scope":11454,"src":"828:29:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10976,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"828:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"private"},{"body":{"id":11008,"nodeType":"Block","src":"945:197:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"id":10989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10985,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"963:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:39","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":10986,"name":"ControllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10961,"src":"985:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ControllerCreator_$10961_$","typeString":"type(contract ControllerCreator)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"985:20:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"963:42:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"955:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:51:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10991,"nodeType":"ExpressionStatement","src":"955:51:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"id":10997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10993,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1024:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:39","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":10994,"name":"DAOTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"1039:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DAOTracker_$13647_$","typeString":"type(contract DAOTracker)"}},"id":10996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1039:13:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1024:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10992,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1016:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1016:37:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10999,"nodeType":"ExpressionStatement","src":"1016:37:39"},{"expression":{"argumentTypes":null,"id":11002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11000,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"1063:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11001,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"1083:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"1063:38:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11003,"nodeType":"ExpressionStatement","src":"1063:38:39"},{"expression":{"argumentTypes":null,"id":11006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11004,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"1111:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11005,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1124:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1111:24:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11007,"nodeType":"ExpressionStatement","src":"1111:24:39"}]},"documentation":null,"id":11009,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":10982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10979,"name":"_controllerCreator","nodeType":"VariableDeclaration","scope":11009,"src":"876:36:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10978,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"876:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"internal"},{"constant":false,"id":10981,"name":"_daoTracker","nodeType":"VariableDeclaration","scope":11009,"src":"914:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10980,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"914:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"internal"}],"src":"875:62:39"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[],"src":"945:0:39"},"scope":11454,"src":"864:278:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11132,"nodeType":"Block","src":"1958:823:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11026,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"1976:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1976:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11028,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"1996:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1996:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1976:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1968:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1968:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11032,"nodeType":"ExpressionStatement","src":"1968:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11034,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2042:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2042:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11036,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2062:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2062:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2034:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2034:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11040,"nodeType":"ExpressionStatement","src":"2034:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11042,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2113:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2113:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2113:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11041,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2105:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2105:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11047,"nodeType":"ExpressionStatement","src":"2105:29:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11049,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"2152:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11053,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11051,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2166:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2158:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2158:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2152:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2179:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2179:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2152:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2144:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2144:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11058,"nodeType":"ExpressionStatement","src":"2144:46:39"},{"body":{"id":11128,"nodeType":"Block","src":"2298:456:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11071,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2320:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11073,"indexExpression":{"argumentTypes":null,"id":11072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2330:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2320:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2344:1:39","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":11074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2336:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2320:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2312:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2312:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11079,"nodeType":"ExpressionStatement","src":"2312:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11080,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2365:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11082,"indexExpression":{"argumentTypes":null,"id":11081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2386:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2365:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2365:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11103,"nodeType":"IfStatement","src":"2361:178:39","trueBody":{"id":11102,"nodeType":"Block","src":"2394:145:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11091,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2468:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11093,"indexExpression":{"argumentTypes":null,"id":11092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2489:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11094,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2493:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11096,"indexExpression":{"argumentTypes":null,"id":11095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2503:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2493:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11098,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2515:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2507:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11086,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2440:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2440:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11085,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2412:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"2412:55:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:112:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11101,"nodeType":"ExpressionStatement","src":"2412:112:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11104,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2556:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11106,"indexExpression":{"argumentTypes":null,"id":11105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2582:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2556:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2587:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2556:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11127,"nodeType":"IfStatement","src":"2552:192:39","trueBody":{"id":11126,"nodeType":"Block","src":"2590:154:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11115,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2668:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11117,"indexExpression":{"argumentTypes":null,"id":11116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2694:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2668:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11118,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2698:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11120,"indexExpression":{"argumentTypes":null,"id":11119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2708:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2698:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11122,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2720:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2712:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2712:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11110,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2636:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2636:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2636:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11109,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2608:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"2608:59:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:121:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11125,"nodeType":"ExpressionStatement","src":"2608:121:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2271:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11064,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2275:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2275:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2271:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11129,"initializationExpression":{"assignments":[11060],"declarations":[{"constant":false,"id":11060,"name":"i","nodeType":"VariableDeclaration","scope":11129,"src":"2256:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11062,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2268:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2256:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2293:3:39","subExpression":{"argumentTypes":null,"id":11067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2293:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11069,"nodeType":"ExpressionStatement","src":"2293:3:39"},"nodeType":"ForStatement","src":"2251:503:39"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":11130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2770:4:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11024,"id":11131,"nodeType":"Return","src":"2763:11:39"}]},"documentation":"@dev addFounders add founders to the organization.\n this function can be called only after forgeOrg and before setSchemes\n@param _avatar the organization avatar\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@return bool true or false","id":11133,"implemented":true,"kind":"function","modifiers":[],"name":"addFounders","nodeType":"FunctionDefinition","parameters":{"id":11021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11011,"name":"_avatar","nodeType":"VariableDeclaration","scope":11133,"src":"1767:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11010,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1767:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11014,"name":"_founders","nodeType":"VariableDeclaration","scope":11133,"src":"1791:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11012,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11013,"length":null,"nodeType":"ArrayTypeName","src":"1791:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11017,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1829:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11015,"name":"uint","nodeType":"ElementaryTypeName","src":"1829:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11016,"length":null,"nodeType":"ArrayTypeName","src":"1829:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11020,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1875:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11018,"name":"uint","nodeType":"ElementaryTypeName","src":"1875:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11019,"length":null,"nodeType":"ArrayTypeName","src":"1875:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1757:165:39"},"returnParameters":{"id":11024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11023,"name":"","nodeType":"VariableDeclaration","scope":11133,"src":"1948:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11022,"name":"bool","nodeType":"ElementaryTypeName","src":"1948:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1947:6:39"},"scope":11454,"src":"1736:1045:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11165,"nodeType":"Block","src":"3789:304:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11156,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11135,"src":"3913:8:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11157,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"3935:10:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11158,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"3959:12:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11159,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"3985:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":11160,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11145,"src":"4008:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11161,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11148,"src":"4042:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11162,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"4081:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11155,"name":"_forgeOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11453,"src":"3890:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (string memory,string memory,string memory,address[] memory,uint256[] memory,uint256[] memory,uint256) returns (address)"}},"id":11163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3890:196:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11154,"id":11164,"nodeType":"Return","src":"3883:203:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11166,"implemented":true,"kind":"function","modifiers":[],"name":"forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11135,"name":"_orgName","nodeType":"VariableDeclaration","scope":11166,"src":"3489:24:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11134,"name":"string","nodeType":"ElementaryTypeName","src":"3489:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11137,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11166,"src":"3523:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11136,"name":"string","nodeType":"ElementaryTypeName","src":"3523:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11139,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11166,"src":"3559:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11138,"name":"string","nodeType":"ElementaryTypeName","src":"3559:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11142,"name":"_founders","nodeType":"VariableDeclaration","scope":11166,"src":"3597:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11140,"name":"address","nodeType":"ElementaryTypeName","src":"3597:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11141,"length":null,"nodeType":"ArrayTypeName","src":"3597:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11145,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3635:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11143,"name":"uint","nodeType":"ElementaryTypeName","src":"3635:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11144,"length":null,"nodeType":"ArrayTypeName","src":"3635:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11148,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3681:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11146,"name":"uint","nodeType":"ElementaryTypeName","src":"3681:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11147,"length":null,"nodeType":"ArrayTypeName","src":"3681:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11150,"name":"_cap","nodeType":"VariableDeclaration","scope":11166,"src":"3732:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11149,"name":"uint256","nodeType":"ElementaryTypeName","src":"3732:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3479:271:39"},"returnParameters":{"id":11154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11153,"name":"","nodeType":"VariableDeclaration","scope":11166,"src":"3776:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11152,"name":"address","nodeType":"ElementaryTypeName","src":"3776:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3775:9:39"},"scope":11454,"src":"3461:632:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11262,"nodeType":"Block","src":"4669:697:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11183,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"4797:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11187,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11185,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4811:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4803:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4803:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4797:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11188,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4824:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4824:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4797:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4789:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4789:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11192,"nodeType":"ExpressionStatement","src":"4789:46:39"},{"assignments":[11194],"declarations":[{"constant":false,"id":11194,"name":"controller","nodeType":"VariableDeclaration","scope":11262,"src":"4882:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11193,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"4882:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11200,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11196,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4917:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4917:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4917:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11195,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4906:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4906:27:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"4882:51:39"},{"body":{"id":11229,"nodeType":"Block","src":"4989:110:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11215,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"5029:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11217,"indexExpression":{"argumentTypes":null,"id":11216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5038:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5029:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11218,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"5042:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":11220,"indexExpression":{"argumentTypes":null,"id":11219,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5050:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5042:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11221,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11177,"src":"5054:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"id":11223,"indexExpression":{"argumentTypes":null,"id":11222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5067:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5054:15:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11225,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5079:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5071:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5071:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11212,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5003:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"5003:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5003:85:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11228,"nodeType":"ExpressionStatement","src":"5003:85:39"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4963:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11206,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"4967:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4967:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4963:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11230,"initializationExpression":{"assignments":[11202],"declarations":[{"constant":false,"id":11202,"name":"i","nodeType":"VariableDeclaration","scope":11230,"src":"4948:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11204,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4960:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4948:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4984:3:39","subExpression":{"argumentTypes":null,"id":11209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4984:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11211,"nodeType":"ExpressionStatement","src":"4984:3:39"},"nodeType":"ForStatement","src":"4943:156:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11234,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"5128:9:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11235,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5139:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11231,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5108:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"metaData","nodeType":"MemberAccess","referencedDeclaration":1621,"src":"5108:19:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (string memory,contract Avatar) external returns (bool)"}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5108:39:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11237,"nodeType":"ExpressionStatement","src":"5108:39:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11242,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21253,"src":"5221:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}],"id":11241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5213:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11245,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5236:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5228:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11238,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5185:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"5185:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":11247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11248,"nodeType":"ExpressionStatement","src":"5185:60:39"},{"expression":{"argumentTypes":null,"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5279:30:39","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11249,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"5286:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11253,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11251,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5300:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5292:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5286:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"5279:30:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11258,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5350:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5342:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5342:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11256,"name":"InitialSchemesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"5324:17:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5324:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11261,"nodeType":"EmitStatement","src":"5319:40:39"}]},"documentation":"@dev Set initial schemes for the organization.\n@param _avatar organization avatar (returns from forgeOrg)\n@param _schemes the schemes to register for the organization\n@param _params the schemes's params\n@param _permissions the schemes permissions.\n@param _metaData dao meta data hash","id":11263,"implemented":true,"kind":"function","modifiers":[],"name":"setSchemes","nodeType":"FunctionDefinition","parameters":{"id":11180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11168,"name":"_avatar","nodeType":"VariableDeclaration","scope":11263,"src":"4479:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11167,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4479:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11171,"name":"_schemes","nodeType":"VariableDeclaration","scope":11263,"src":"4503:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"4503:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11170,"length":null,"nodeType":"ArrayTypeName","src":"4503:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11174,"name":"_params","nodeType":"VariableDeclaration","scope":11263,"src":"4540:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4540:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11173,"length":null,"nodeType":"ArrayTypeName","src":"4540:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11177,"name":"_permissions","nodeType":"VariableDeclaration","scope":11263,"src":"4576:30:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":11175,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4576:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":11176,"length":null,"nodeType":"ArrayTypeName","src":"4576:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11179,"name":"_metaData","nodeType":"VariableDeclaration","scope":11263,"src":"4616:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11178,"name":"string","nodeType":"ElementaryTypeName","src":"4616:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4469:178:39"},"returnParameters":{"id":11181,"nodeType":"ParameterList","parameters":[],"src":"4669:0:39"},"scope":11454,"src":"4449:917:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11452,"nodeType":"Block","src":"6368:1403:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11286,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6434:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6434:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11288,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6454:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6454:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6434:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6426:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6426:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11292,"nodeType":"ExpressionStatement","src":"6426:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11294,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6500:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6500:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11296,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"6520:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6520:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6500:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11293,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6492:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6492:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11300,"nodeType":"ExpressionStatement","src":"6492:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11302,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6571:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6571:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6571:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6563:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6563:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11307,"nodeType":"ExpressionStatement","src":"6563:29:39"},{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"name":"nativeToken","nodeType":"VariableDeclaration","scope":11452,"src":"6602:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":11308,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6602:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"internal"}],"id":11316,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11312,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"6638:10:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11313,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"6650:12:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11314,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"6664:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6625:12:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_DAOToken_$1873_$","typeString":"function (string memory,string memory,uint256) returns (contract DAOToken)"},"typeName":{"contractScope":null,"id":11310,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6629:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6625:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"VariableDeclarationStatement","src":"6602:67:39"},{"assignments":[11318],"declarations":[{"constant":false,"id":11318,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":11452,"src":"6679:27:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":11317,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6679:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"}],"id":11322,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":11320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6709:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () returns (contract Reputation)"},"typeName":{"contractScope":null,"id":11319,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6713:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}},"id":11321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6709:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"VariableDeclarationStatement","src":"6679:46:39"},{"assignments":[11324],"declarations":[{"constant":false,"id":11324,"name":"avatar","nodeType":"VariableDeclaration","scope":11452,"src":"6735:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11323,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6735:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":11331,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11327,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"6762:8:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11328,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"6772:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},{"argumentTypes":null,"id":11329,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"6785:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6751:10:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_contract$_DAOToken_$1873_$_t_contract$_Reputation_$15082_$returns$_t_contract$_Avatar_$337_$","typeString":"function (string memory,contract DAOToken,contract Reputation) returns (contract Avatar)"},"typeName":{"contractScope":null,"id":11325,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6755:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}},"id":11330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6751:51:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"6735:67:39"},{"body":{"id":11389,"nodeType":"Block","src":"6912:343:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11344,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6934:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11346,"indexExpression":{"argumentTypes":null,"id":11345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6944:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6934:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6958:1:39","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":11347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6950:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6950:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6934:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6926:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11352,"nodeType":"ExpressionStatement","src":"6926:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11353,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6979:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11355,"indexExpression":{"argumentTypes":null,"id":11354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7000:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6979:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7005:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6979:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11370,"nodeType":"IfStatement","src":"6975:121:39","trueBody":{"id":11369,"nodeType":"Block","src":"7008:88:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11361,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7043:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11363,"indexExpression":{"argumentTypes":null,"id":11362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7053:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7043:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11364,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"7057:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11366,"indexExpression":{"argumentTypes":null,"id":11365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7078:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7057:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11358,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7026:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":1872,"src":"7026:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7026:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11368,"nodeType":"ExpressionStatement","src":"7026:55:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11371,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7113:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11373,"indexExpression":{"argumentTypes":null,"id":11372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7139:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7144:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7113:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11388,"nodeType":"IfStatement","src":"7109:136:39","trueBody":{"id":11387,"nodeType":"Block","src":"7147:98:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11379,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7187:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11381,"indexExpression":{"argumentTypes":null,"id":11380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7197:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7187:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11382,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7201:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11384,"indexExpression":{"argumentTypes":null,"id":11383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7227:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11376,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7165:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"7165:21:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7165:65:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11386,"nodeType":"ExpressionStatement","src":"7165:65:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6885:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11337,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6889:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6889:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6885:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11390,"initializationExpression":{"assignments":[11333],"declarations":[{"constant":false,"id":11333,"name":"i","nodeType":"VariableDeclaration","scope":11390,"src":"6870:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11332,"name":"uint256","nodeType":"ElementaryTypeName","src":"6870:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11335,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6870:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6907:3:39","subExpression":{"argumentTypes":null,"id":11340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6907:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11342,"nodeType":"ExpressionStatement","src":"6907:3:39"},"nodeType":"ForStatement","src":"6865:390:39"},{"assignments":[11392],"declarations":[{"constant":false,"id":11392,"name":"controller","nodeType":"VariableDeclaration","scope":11452,"src":"7265:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11391,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"7265:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11399,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11396,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7325:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11394,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"7300:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"create","nodeType":"MemberAccess","referencedDeclaration":10960,"src":"7300:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$returns$_t_address_$","typeString":"function (contract Avatar) external returns (address)"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7300:32:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11393,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7289:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7289:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"7265:68:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11403,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7409:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":11404,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7417:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},{"argumentTypes":null,"hexValue":"","id":11405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:2:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":null,"id":11400,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"7392:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"track","nodeType":"MemberAccess","referencedDeclaration":13580,"src":"7392:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$_t_contract$_Controller_$1797_$_t_string_memory_ptr_$returns$__$","typeString":"function (contract Avatar,contract Controller,string memory) external"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7392:40:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11407,"nodeType":"ExpressionStatement","src":"7392:40:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11412,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7507:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7499:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11408,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7474:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7474:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7474:45:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11415,"nodeType":"ExpressionStatement","src":"7474:45:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11420,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7567:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7559:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7559:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11416,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7529:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7529:29:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7529:50:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11423,"nodeType":"ExpressionStatement","src":"7529:50:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11428,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7632:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7624:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7624:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11424,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7589:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7589:34:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:55:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11431,"nodeType":"ExpressionStatement","src":"7589:55:39"},{"expression":{"argumentTypes":null,"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11432,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"7655:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11436,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11434,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7669:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7661:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7661:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7655:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11437,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7680:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7680:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7655:35:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11440,"nodeType":"ExpressionStatement","src":"7655:35:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11443,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7722:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7714:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7714:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11441,"name":"NewOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"7706:6:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7706:24:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11446,"nodeType":"EmitStatement","src":"7701:29:39"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11448,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7756:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7748:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7748:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":11450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7747:17:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11284,"id":11451,"nodeType":"Return","src":"7740:24:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11453,"implemented":true,"kind":"function","modifiers":[],"name":"_forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11265,"name":"_orgName","nodeType":"VariableDeclaration","scope":11453,"src":"6089:22:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11264,"name":"string","nodeType":"ElementaryTypeName","src":"6089:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11267,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11453,"src":"6121:24:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11266,"name":"string","nodeType":"ElementaryTypeName","src":"6121:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11269,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11453,"src":"6155:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11268,"name":"string","nodeType":"ElementaryTypeName","src":"6155:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11272,"name":"_founders","nodeType":"VariableDeclaration","scope":11453,"src":"6191:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11270,"name":"address","nodeType":"ElementaryTypeName","src":"6191:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11271,"length":null,"nodeType":"ArrayTypeName","src":"6191:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11275,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6227:34:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11273,"name":"uint","nodeType":"ElementaryTypeName","src":"6227:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11274,"length":null,"nodeType":"ArrayTypeName","src":"6227:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11278,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6271:39:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11276,"name":"uint","nodeType":"ElementaryTypeName","src":"6271:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11277,"length":null,"nodeType":"ArrayTypeName","src":"6271:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11280,"name":"_cap","nodeType":"VariableDeclaration","scope":11453,"src":"6320:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11279,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6079:259:39"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"name":"","nodeType":"VariableDeclaration","scope":11453,"src":"6355:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11282,"name":"address","nodeType":"ElementaryTypeName","src":"6355:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6354:9:39"},"scope":11454,"src":"6060:1711:39","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":11455,"src":"623:7150:39"}],"src":"0:7774:39"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.172Z","devdoc":{"methods":{},"title":"ControllerCreator for creating a single controller."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/CurveInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/CurveInterface.json new file mode 100644 index 00000000..62a837dc --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/CurveInterface.json @@ -0,0 +1 @@ +{"contractName":"CurveInterface","abi":[{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"calc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"calc\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol\":\"CurveInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol\":{\"keccak256\":\"0x4e67086c005d04579132bf539abcf0f698a9db496a3478ce9cda6c54a379ee4c\",\"urls\":[\"bzz-raw://514910f66b7de63fa2d556211ce91550e0ab3337c8010a5b5a5e2598243a2107\",\"dweb:/ipfs/QmYycJYmPLrh5r3Uv65pACXM3Z28jSSKESFCfFqALdBi3j\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity 0.5.13;\n\ninterface CurveInterface {\n\n function calc(uint) external pure returns (uint);\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","exportedSymbols":{"CurveInterface":[6303]},"id":6304,"nodeType":"SourceUnit","nodes":[{"id":6295,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:12"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":6303,"linearizedBaseContracts":[6303],"name":"CurveInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":6302,"implemented":false,"kind":"function","modifiers":[],"name":"calc","nodeType":"FunctionDefinition","parameters":{"id":6298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6297,"name":"","nodeType":"VariableDeclaration","scope":6302,"src":"71:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6296,"name":"uint","nodeType":"ElementaryTypeName","src":"71:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"70:6:12"},"returnParameters":{"id":6301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6300,"name":"","nodeType":"VariableDeclaration","scope":6302,"src":"100:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6299,"name":"uint","nodeType":"ElementaryTypeName","src":"100:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"99:6:12"},"scope":6303,"src":"57:49:12","stateMutability":"pure","superFunction":null,"visibility":"external"}],"scope":6304,"src":"25:84:12"}],"src":"0:110:12"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","exportedSymbols":{"CurveInterface":[6303]},"id":6304,"nodeType":"SourceUnit","nodes":[{"id":6295,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:12"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":6303,"linearizedBaseContracts":[6303],"name":"CurveInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":6302,"implemented":false,"kind":"function","modifiers":[],"name":"calc","nodeType":"FunctionDefinition","parameters":{"id":6298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6297,"name":"","nodeType":"VariableDeclaration","scope":6302,"src":"71:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6296,"name":"uint","nodeType":"ElementaryTypeName","src":"71:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"70:6:12"},"returnParameters":{"id":6301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6300,"name":"","nodeType":"VariableDeclaration","scope":6302,"src":"100:4:12","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6299,"name":"uint","nodeType":"ElementaryTypeName","src":"100:4:12","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"99:6:12"},"scope":6303,"src":"57:49:12","stateMutability":"pure","superFunction":null,"visibility":"external"}],"scope":6304,"src":"25:84:12"}],"src":"0:110:12"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.112Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAORegistry.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAORegistry.json new file mode 100644 index 00000000..6e7e14ec --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAORegistry.json @@ -0,0 +1 @@ +{"contractName":"DAORegistry","abi":[{"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":"isOwner","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"},{"inputs":[{"name":"_owner","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_avatar","type":"address"}],"name":"Propose","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_avatar","type":"address"},{"indexed":false,"name":"_name","type":"string"}],"name":"Register","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_avatar","type":"address"}],"name":"UnRegister","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":"_avatar","type":"address"}],"name":"propose","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_avatar","type":"address"},{"name":"_name","type":"string"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_avatar","type":"address"}],"name":"unRegister","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_name","type":"string"}],"name":"isRegister","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}],"sourceMap":"90:903:0:-;;;325:77;8:9:-1;5:2;;;30:1;27;20:12;5:2;325:77:0;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;325:77:0;515:6:2;:19;;-1:-1:-1;;;;;;515:19:2;524:10;515:19;;;;549:40;;-1:-1:-1;;;;;582:6:2;;;;;515;-1:-1:-1;;;;;;;;;;;549:40:2;515:6;;549:40;370:25:0;388:6;370:17;;;;:25;:::i;:::-;325:77;90:903;;1731:107:2;863:9;:7;;;;:9;:::i;:::-;855:18;;;;;;;;1803:28;1822:8;1803:18;;;;:28;:::i;:::-;1731:107;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:2;1042:10;:20;;979:90::o;1982:183::-;-1:-1:-1;;;;;2055:22:2;;;;2047:31;;;;;;2114:6;;;2093:38;;-1:-1:-1;;;;;2093:38:2;;;;2114:6;;;-1:-1:-1;;;;;;;;;;;2093:38:2;;2141:6;:17;;-1:-1:-1;;;;;;2141:17:2;-1:-1:-1;;;;;2141:17:2;;;;;;;;;;1982:183::o;90:903:0:-;;;;;;;","deployedSourceMap":"90:903:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;90:903:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:79;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;408:79:0;-1:-1:-1;;;;;408:79:0;;:::i;:::-;;884:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;884:106:0;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;884:106:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;884:106:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;884:106:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;884:106:0;;-1:-1:-1;884:106:0;;-1:-1:-1;;;;;884:106:0:i;:::-;;;;;;;;;;;;;;;;;;685:95;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;685:95:0;-1:-1:-1;;;;;685:95:0;;:::i;493:186::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;493:186:0;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;493:186:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;493:186:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;493:186:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;493:186:0;;-1:-1:-1;493:186:0;;-1:-1:-1;;;;;493:186:0:i;1423:137:2:-;;;:::i;659:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;659:77:2;;;;;;;;;;;;;;979:90;;;:::i;1731:107::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1731:107:2;-1:-1:-1;;;;;1731:107:2;;:::i;408:79:0:-;464:16;;-1:-1:-1;;;;;464:16:0;;;;;;;;408:79;:::o;884:106::-;945:4;968:8;977:5;968:15;;;;;;;;;;;;;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;;968:15:0;;;;;-1:-1:-1;968:15:0;;;;;;;;;;;;;;884:106;-1:-1:-1;;;;884:106:0:o;685:95::-;863:9:2;:7;:9::i;:::-;855:18;;;;;;;;754:19:0;;-1:-1:-1;;;;;754:19:0;;;;;;;;685:95;:::o;493:186::-;863:9:2;:7;:9::i;:::-;855:18;;;;;;;;585:8:0;594:5;585:15;;;;;;;;;;;;;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;;585:15:0;;;;;-1:-1:-1;585:15:0;;;;;;;;;;;;;584:16;;-1:-1:-1;576:25:0;;-1:-1:-1;576:25:0;;;;;629:4;611:8;620:5;611:15;;;;;;;;;;;;;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;;611:15:0;;;;;-1:-1:-1;611:15:0;;;;;;;;;;;:22;;-1:-1:-1;;611:22:0;;;;;;;;;;;648:24;;;;;;;;;;;-1:-1:-1;;;;;648:24:0;;;;;;;-1:-1:-1;611:15:0;-1:-1:-1;611:15:0;;648:24;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;648:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;493:186;;:::o;1423:137:2:-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1521:1;1505:6;;1484:40;;-1:-1:-1;;;;;1505:6:2;;;;1484:40;;1521:1;;1484:40;1551:1;1534:19;;-1:-1:-1;;1534:19:2;;;1423:137::o;659:77::-;697:7;723:6;-1:-1:-1;;;;;723:6:2;659:77;:::o;979:90::-;1019:4;1056:6;-1:-1:-1;;;;;1056:6:2;1042:10;:20;;979:90::o;1731:107::-;863:9;:7;:9::i;:::-;855:18;;;;;;;;1803:28;1822:8;1803:18;:28::i;:::-;1731:107;:::o;1982:183::-;-1:-1:-1;;;;;2055:22:2;;;;2047:31;;;;;;2114:6;;;2093:38;;-1:-1:-1;;;;;2093:38:2;;;;2114:6;;;2093:38;;;2141:6;:17;;-1:-1:-1;;2141:17:2;-1:-1:-1;;;;;2141:17:2;;;;;;;;;;1982:183::o","source":"pragma solidity ^0.5.4;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract DAORegistry is Ownable {\n\n event Propose(address indexed _avatar);\n event Register(address indexed _avatar, string _name);\n event UnRegister(address indexed _avatar);\n\n mapping(string=>bool) private registry;\n\n constructor(address _owner) public {\n transferOwnership(_owner);\n }\n\n function propose(address _avatar) public {\n emit Propose(_avatar);\n }\n\n function register(address _avatar, string memory _name) public onlyOwner {\n require(!registry[_name]);\n registry[_name] = true;\n emit Register(_avatar, _name);\n }\n\n function unRegister(address _avatar) public onlyOwner {\n emit UnRegister(_avatar);\n }\n\n //This getter is needed because Dynamically-sized keys for public mappings are not supported.\n function isRegister(string memory _name) public view returns(bool) {\n return registry[_name];\n }\n\n}\n","sourcePath":"/Users/oren/daostack/daostack2/arc-hive/contracts/DAORegistry.sol","ast":{"absolutePath":"/Users/oren/daostack/daostack2/arc-hive/contracts/DAORegistry.sol","exportedSymbols":{"DAORegistry":[95]},"id":96,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.5",".4"],"nodeType":"PragmaDirective","src":"0:23:0"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":2,"nodeType":"ImportDirective","scope":96,"sourceUnit":263,"src":"25:63:0","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":3,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":262,"src":"114:7:0","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$262","typeString":"contract Ownable"}},"id":4,"nodeType":"InheritanceSpecifier","src":"114:7:0"}],"contractDependencies":[262],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":95,"linearizedBaseContracts":[95,262],"name":"DAORegistry","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8,"name":"Propose","nodeType":"EventDefinition","parameters":{"id":7,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":8,"src":"143:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5,"name":"address","nodeType":"ElementaryTypeName","src":"143:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"142:25:0"},"src":"129:39:0"},{"anonymous":false,"documentation":null,"id":14,"name":"Register","nodeType":"EventDefinition","parameters":{"id":13,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":14,"src":"188:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9,"name":"address","nodeType":"ElementaryTypeName","src":"188:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12,"indexed":false,"name":"_name","nodeType":"VariableDeclaration","scope":14,"src":"213:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11,"name":"string","nodeType":"ElementaryTypeName","src":"213:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"187:39:0"},"src":"173:54:0"},{"anonymous":false,"documentation":null,"id":18,"name":"UnRegister","nodeType":"EventDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":18,"src":"249:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"248:25:0"},"src":"232:42:0"},{"constant":false,"id":22,"name":"registry","nodeType":"VariableDeclaration","scope":95,"src":"280:38:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string => bool)"},"typeName":{"id":21,"keyType":{"id":19,"name":"string","nodeType":"ElementaryTypeName","src":"288:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"280:21:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string => bool)"},"valueType":{"id":20,"name":"bool","nodeType":"ElementaryTypeName","src":"296:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"private"},{"body":{"id":31,"nodeType":"Block","src":"360:42:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":28,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"388:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":238,"src":"370:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":29,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"370:25:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30,"nodeType":"ExpressionStatement","src":"370:25:0"}]},"documentation":null,"id":32,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"name":"_owner","nodeType":"VariableDeclaration","scope":32,"src":"337:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"336:16:0"},"returnParameters":{"id":26,"nodeType":"ParameterList","parameters":[],"src":"360:0:0"},"scope":95,"src":"325:77:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":41,"nodeType":"Block","src":"449:38:0","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":38,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"472:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37,"name":"Propose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"464:7:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"464:16:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40,"nodeType":"EmitStatement","src":"459:21:0"}]},"documentation":null,"id":42,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":35,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"name":"_avatar","nodeType":"VariableDeclaration","scope":42,"src":"425:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"424:17:0"},"returnParameters":{"id":36,"nodeType":"ParameterList","parameters":[],"src":"449:0:0"},"scope":95,"src":"408:79:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"566:113:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":55,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"584:16:0","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":52,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"585:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string memory => bool)"}},"id":54,"indexExpression":{"argumentTypes":null,"id":53,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"594:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"585:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":51,"name":"require","nodeType":"Identifier","overloadedDeclarations":[280,281],"referencedDeclaration":280,"src":"576:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"576:25:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57,"nodeType":"ExpressionStatement","src":"576:25:0"},{"expression":{"argumentTypes":null,"id":62,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":58,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"611:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string memory => bool)"}},"id":60,"indexExpression":{"argumentTypes":null,"id":59,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"620:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"611:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":61,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"629:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"611:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":63,"nodeType":"ExpressionStatement","src":"611:22:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":65,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"657:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":66,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"666:5:0","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":64,"name":"Register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"648:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":67,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"648:24:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68,"nodeType":"EmitStatement","src":"643:29:0"}]},"documentation":null,"id":70,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":49,"modifierName":{"argumentTypes":null,"id":48,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":196,"src":"556:9:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"556:9:0"}],"name":"register","nodeType":"FunctionDefinition","parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"name":"_avatar","nodeType":"VariableDeclaration","scope":70,"src":"511:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43,"name":"address","nodeType":"ElementaryTypeName","src":"511:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":46,"name":"_name","nodeType":"VariableDeclaration","scope":70,"src":"528:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45,"name":"string","nodeType":"ElementaryTypeName","src":"528:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"510:38:0"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[],"src":"566:0:0"},"scope":95,"src":"493:186:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":81,"nodeType":"Block","src":"739:41:0","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":78,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"765:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77,"name":"UnRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"754:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"754:19:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"EmitStatement","src":"749:24:0"}]},"documentation":null,"id":82,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":75,"modifierName":{"argumentTypes":null,"id":74,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":196,"src":"729:9:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"729:9:0"}],"name":"unRegister","nodeType":"FunctionDefinition","parameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"name":"_avatar","nodeType":"VariableDeclaration","scope":82,"src":"705:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":71,"name":"address","nodeType":"ElementaryTypeName","src":"705:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"704:17:0"},"returnParameters":{"id":76,"nodeType":"ParameterList","parameters":[],"src":"739:0:0"},"scope":95,"src":"685:95:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":93,"nodeType":"Block","src":"951:39:0","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":89,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"968:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string memory => bool)"}},"id":91,"indexExpression":{"argumentTypes":null,"id":90,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"977:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"968:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":88,"id":92,"nodeType":"Return","src":"961:22:0"}]},"documentation":null,"id":94,"implemented":true,"kind":"function","modifiers":[],"name":"isRegister","nodeType":"FunctionDefinition","parameters":{"id":85,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84,"name":"_name","nodeType":"VariableDeclaration","scope":94,"src":"904:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":83,"name":"string","nodeType":"ElementaryTypeName","src":"904:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"903:21:0"},"returnParameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"name":"","nodeType":"VariableDeclaration","scope":94,"src":"945:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86,"name":"bool","nodeType":"ElementaryTypeName","src":"945:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"944:6:0"},"scope":95,"src":"884:106:0","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":96,"src":"90:903:0"}],"src":"0:994:0"},"legacyAST":{"absolutePath":"/Users/oren/daostack/daostack2/arc-hive/contracts/DAORegistry.sol","exportedSymbols":{"DAORegistry":[95]},"id":96,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","^","0.5",".4"],"nodeType":"PragmaDirective","src":"0:23:0"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":2,"nodeType":"ImportDirective","scope":96,"sourceUnit":263,"src":"25:63:0","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":3,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":262,"src":"114:7:0","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$262","typeString":"contract Ownable"}},"id":4,"nodeType":"InheritanceSpecifier","src":"114:7:0"}],"contractDependencies":[262],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":95,"linearizedBaseContracts":[95,262],"name":"DAORegistry","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8,"name":"Propose","nodeType":"EventDefinition","parameters":{"id":7,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":8,"src":"143:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5,"name":"address","nodeType":"ElementaryTypeName","src":"143:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"142:25:0"},"src":"129:39:0"},{"anonymous":false,"documentation":null,"id":14,"name":"Register","nodeType":"EventDefinition","parameters":{"id":13,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":14,"src":"188:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9,"name":"address","nodeType":"ElementaryTypeName","src":"188:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12,"indexed":false,"name":"_name","nodeType":"VariableDeclaration","scope":14,"src":"213:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11,"name":"string","nodeType":"ElementaryTypeName","src":"213:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"187:39:0"},"src":"173:54:0"},{"anonymous":false,"documentation":null,"id":18,"name":"UnRegister","nodeType":"EventDefinition","parameters":{"id":17,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":18,"src":"249:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"249:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"248:25:0"},"src":"232:42:0"},{"constant":false,"id":22,"name":"registry","nodeType":"VariableDeclaration","scope":95,"src":"280:38:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string => bool)"},"typeName":{"id":21,"keyType":{"id":19,"name":"string","nodeType":"ElementaryTypeName","src":"288:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"nodeType":"Mapping","src":"280:21:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string => bool)"},"valueType":{"id":20,"name":"bool","nodeType":"ElementaryTypeName","src":"296:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"private"},{"body":{"id":31,"nodeType":"Block","src":"360:42:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":28,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":24,"src":"388:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":27,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":238,"src":"370:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":29,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"370:25:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":30,"nodeType":"ExpressionStatement","src":"370:25:0"}]},"documentation":null,"id":32,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":25,"nodeType":"ParameterList","parameters":[{"constant":false,"id":24,"name":"_owner","nodeType":"VariableDeclaration","scope":32,"src":"337:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":23,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"336:16:0"},"returnParameters":{"id":26,"nodeType":"ParameterList","parameters":[],"src":"360:0:0"},"scope":95,"src":"325:77:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":41,"nodeType":"Block","src":"449:38:0","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":38,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"472:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":37,"name":"Propose","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8,"src":"464:7:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":39,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"464:16:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":40,"nodeType":"EmitStatement","src":"459:21:0"}]},"documentation":null,"id":42,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":35,"nodeType":"ParameterList","parameters":[{"constant":false,"id":34,"name":"_avatar","nodeType":"VariableDeclaration","scope":42,"src":"425:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"424:17:0"},"returnParameters":{"id":36,"nodeType":"ParameterList","parameters":[],"src":"449:0:0"},"scope":95,"src":"408:79:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":69,"nodeType":"Block","src":"566:113:0","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":55,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"584:16:0","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":52,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"585:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string memory => bool)"}},"id":54,"indexExpression":{"argumentTypes":null,"id":53,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"594:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"585:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":51,"name":"require","nodeType":"Identifier","overloadedDeclarations":[280,281],"referencedDeclaration":280,"src":"576:7:0","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":56,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"576:25:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57,"nodeType":"ExpressionStatement","src":"576:25:0"},{"expression":{"argumentTypes":null,"id":62,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":58,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"611:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string memory => bool)"}},"id":60,"indexExpression":{"argumentTypes":null,"id":59,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"620:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"611:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":61,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"629:4:0","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"611:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":63,"nodeType":"ExpressionStatement","src":"611:22:0"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":65,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"657:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":66,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46,"src":"666:5:0","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":64,"name":"Register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"648:8:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":67,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"648:24:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":68,"nodeType":"EmitStatement","src":"643:29:0"}]},"documentation":null,"id":70,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":49,"modifierName":{"argumentTypes":null,"id":48,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":196,"src":"556:9:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"556:9:0"}],"name":"register","nodeType":"FunctionDefinition","parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":44,"name":"_avatar","nodeType":"VariableDeclaration","scope":70,"src":"511:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":43,"name":"address","nodeType":"ElementaryTypeName","src":"511:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":46,"name":"_name","nodeType":"VariableDeclaration","scope":70,"src":"528:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":45,"name":"string","nodeType":"ElementaryTypeName","src":"528:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"510:38:0"},"returnParameters":{"id":50,"nodeType":"ParameterList","parameters":[],"src":"566:0:0"},"scope":95,"src":"493:186:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":81,"nodeType":"Block","src":"739:41:0","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":78,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"765:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77,"name":"UnRegister","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18,"src":"754:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"754:19:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80,"nodeType":"EmitStatement","src":"749:24:0"}]},"documentation":null,"id":82,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":75,"modifierName":{"argumentTypes":null,"id":74,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":196,"src":"729:9:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"729:9:0"}],"name":"unRegister","nodeType":"FunctionDefinition","parameters":{"id":73,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72,"name":"_avatar","nodeType":"VariableDeclaration","scope":82,"src":"705:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":71,"name":"address","nodeType":"ElementaryTypeName","src":"705:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"704:17:0"},"returnParameters":{"id":76,"nodeType":"ParameterList","parameters":[],"src":"739:0:0"},"scope":95,"src":"685:95:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":93,"nodeType":"Block","src":"951:39:0","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":89,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":22,"src":"968:8:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_string_memory_$_t_bool_$","typeString":"mapping(string memory => bool)"}},"id":91,"indexExpression":{"argumentTypes":null,"id":90,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":84,"src":"977:5:0","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"968:15:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":88,"id":92,"nodeType":"Return","src":"961:22:0"}]},"documentation":null,"id":94,"implemented":true,"kind":"function","modifiers":[],"name":"isRegister","nodeType":"FunctionDefinition","parameters":{"id":85,"nodeType":"ParameterList","parameters":[{"constant":false,"id":84,"name":"_name","nodeType":"VariableDeclaration","scope":94,"src":"904:19:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":83,"name":"string","nodeType":"ElementaryTypeName","src":"904:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"903:21:0"},"returnParameters":{"id":88,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"name":"","nodeType":"VariableDeclaration","scope":94,"src":"945:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":86,"name":"bool","nodeType":"ElementaryTypeName","src":"945:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"944:6:0"},"scope":95,"src":"884:106:0","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":96,"src":"90:903:0"}],"src":"0:994:0"},"compiler":{"name":"solc","version":"0.5.4+commit.9549d8ff.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.2","updatedAt":"2019-03-28T13:02:44.899Z","devdoc":{"methods":{"isOwner()":{"return":"true if `msg.sender` is the owner of the contract."},"owner()":{"return":"the address of the owner."},"renounceOwnership()":{"details":"Allows the current owner to relinquish control of the contract. It will not be possible to call the functions with the `onlyOwner` modifier anymore."},"transferOwnership(address)":{"details":"Allows the current owner to transfer control of the contract to a newOwner.","params":{"newOwner":"The address to transfer ownership to."}}}},"userdoc":{"methods":{"renounceOwnership()":{"notice":"Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."}}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAOToken.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAOToken.json new file mode 100644 index 00000000..7f1c31e5 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAOToken.json @@ -0,0 +1 @@ +{"contractName":"DAOToken","abi":[{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"cap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"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\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC20 compatible token. It is a mintable, burnable token.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. * See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"See {ERC20-_burnFrom}.\"},\"constructor\":{\"details\":\"Constructor\",\"params\":{\"_cap\":\"- token cap - 0 value means no cap\",\"_name\":\"- token name\",\"_symbol\":\"- token symbol\"}},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"mint(address,uint256)\":{\"details\":\"Function to mint tokens\",\"params\":{\"_amount\":\"The amount of tokens to mint.\",\"_to\":\"The address that will receive the minted tokens.\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"DAOToken, base on zeppelin contract.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":\"DAOToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"350:932:3:-;;;737:156;8:9:-1;5:2;;;30:1;27;20:12;5:2;737:156:3;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;737:156:3;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;737:156:3;;420:4:-1;411:14;;;;737:156:3;;;;;411:14:-1;737:156:3;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;737:156:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;737:156:3;;420:4:-1;411:14;;;;737:156:3;;;;;411:14:-1;737:156:3;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;737:156:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;737:156:3;;;;;;-1:-1:-1;707:12:67;;-1:-1:-1;707:10:67;:12::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;;734:40;;767:6;;;-1:-1:-1;;734:40:67;;-1:-1:-1;;734:40:67;828:12:3;;;;:4;;:12;;;;;:::i;:::-;-1:-1:-1;850:16:3;;;;:6;;:16;;;;;:::i;:::-;-1:-1:-1;876:3:3;:10;-1:-1:-1;350:932:3;;-1:-1:-1;350:932:3;788:96:63;867:10;788:96;;:::o;350:932:3:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;350:932:3;;;-1:-1:-1;350:932:3;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;","deployedSourceMap":"350:932:3:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;350:932:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;408:18;;;:::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;408:18:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2500:149:68;;-1:-1:-1;;;;;2500:149:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3107:300:68;;;;;;;;;;;;;;;;;:::i;512:35:3:-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;553:18;;;:::i;3802:207:68:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3802:207:68;;-1:-1:-1;;;;;3802:207:68;;;;;;:::i;1070:210:3:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1070:210:3;;-1:-1:-1;;;;;1070:210:3;;;;;;:::i;439:81:69:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;439:81:69;;:::i;:::-;;1706:108:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1706:108:68;-1:-1:-1;;;;;1706:108:68;;:::i;1642:137:67:-;;;:::i;577:101:69:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;577:101:69;;-1:-1:-1;;;;;577:101:69;;;;;;:::i;857:77:67:-;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;;:::i;432:20:3:-;;;:::i;4496:258:68:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4496:258:68;;-1:-1:-1;;;;;4496:258:68;;;;;;:::i;2017:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2017:155:68;;-1:-1:-1;;;;;2017:155:68;;;;;;:::i;2230:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2230:132:68;;;;;;;;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;408:18:3:-;;;;;;;;;;;;;;;-1:-1:-1;;408:18:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2500:149:68:-;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;-1:-1:-1;2638:4:68;2500:149;;;;:::o;1559:89::-;1629:12;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3289:19:68;;;;;;-1:-1:-1;3289:19:68;;;;;;3309:12;:10;:12::i;:::-;-1:-1:-1;;;;;3289:33:68;;;;;;;;;;;;-1:-1:-1;3289:33:68;;;;:37;:89::i;:::-;3258:8;:121::i;:::-;-1:-1:-1;3396:4:68;3107:300;;;;;:::o;512:35:3:-;545:2;512:35;:::o;553:18::-;;;;:::o;3802:207:68:-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;-1:-1:-1;;;;;3930:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;3930:25:68;;;:34;;;;;;;;;;;:38;:50::i;1070:210:3:-;1140:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1160:3:3;;:7;1156:67;;1219:3;;1189:26;1207:7;1189:13;:11;:13::i;:::-;:17;:26;:17;:26;:::i;:::-;:33;;1181:42;;;;;;1233:19;1239:3;1244:7;1233:5;:19::i;439:81:69:-;486:27;492:12;:10;:12::i;:::-;506:6;486:5;:27::i;:::-;439:81;:::o;1706:108:68:-;-1:-1:-1;;;;;1789:18:68;1763:7;1789:18;;;;;;;;;;;;1706:108::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1724:6;;1703:40;;1740:1;;-1:-1:-1;;;;;1724:6:67;;1703:40;;1740:1;;1703:40;1753:6;:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;577:101:69:-;645:26;655:7;664:6;645:9;:26::i;:::-;577:101;;:::o;857:77:67:-;921:6;;-1:-1:-1;;;;;921:6:67;;857:77::o;1208:92::-;1287:6;;1248:4;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;;1208:92;-1:-1:-1;1208:92:67:o;432:20:3:-;;;;;;;;;;;;;;;-1:-1:-1;;432:20:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4496:258:68;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;-1:-1:-1;;;;;4629:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;4629:25:68;;;:34;;;;;;;;;;;;:38;:96::i;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;2230:132::-;-1:-1:-1;;;;;2328:18:68;;;2302:7;2328:18;;;-1:-1:-1;2328:18:68;;;;;;;;:27;;;;;;;;;;;;;2230:132::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;788:96:63:-;867:10;788:96;:::o;7351:332:68:-;-1:-1:-1;;;;;7444:19:68;;7436:68;;;;-1:-1:-1;;;7436:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7522:21:68;;7514:68;;;;-1:-1:-1;;;7514:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7593:18:68;;;;;;;-1:-1:-1;7593:18:68;;;;;;;;:27;;;;;;;;;;;;;:36;;;7644:32;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;-1:-1:-1;;;;;5325:20:68;;5317:70;;;;-1:-1:-1;;;5317:70:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5405:23:68;;5397:71;;;;-1:-1:-1;;;5397:71:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5499:17:68;;:9;:17;;;;;;;;;;;;;:21;:71::i;:::-;-1:-1:-1;;;;;5479:17:68;;;:9;:17;;;;;;;;;;;:91;;;;5603:20;;;;;;;:32;;5628:6;5603:24;:32::i;:::-;-1:-1:-1;;;;;5580:20:68;;;:9;:20;;;;;;;;;;;;:55;;;;5650:35;;;;;;;5580:20;;5650:35;;;;;;;;;;;;;5228:464;;;:::o;1732:187:66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;5962:302:68:-;-1:-1:-1;;;;;6037:21:68;;6029:65;;;;;-1:-1:-1;;;6029:65:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:12;;:24;;6137:6;6120:24;:16;:24;:::i;:::-;6105:12;:39;-1:-1:-1;;;;;6175:18:68;;:9;:18;;;;;;;;;;;:30;;6198:6;6175:22;:30::i;:::-;-1:-1:-1;;;;;6154:18:68;;:9;:18;;;;;;;;;;;:51;;;;6220:37;;;;;;;6154:18;;:9;;6220:37;;;;;;;;;;5962:302;;:::o;6584:342::-;-1:-1:-1;;;;;6659:21:68;;6651:67;;;;-1:-1:-1;;;6651:67:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6750:68;6773:6;6750:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6750:18:68;;:9;:18;;;;;;;;;;;;;:22;:68::i;:::-;-1:-1:-1;;;;;6729:18:68;;:9;:18;;;;;;;;;;:89;6843:12;;:24;;6860:6;6843:16;:24::i;:::-;6828:12;:39;6882:37;;;;;;;;6908:1;;-1:-1:-1;;;;;6882:37:68;;;;;;;;;;;;6584:342;;:::o;7861:229::-;7932:22;7938:7;7947:6;7932:5;:22::i;:::-;7964:119;7973:7;7982:12;:10;:12::i;:::-;7996:86;8035:6;7996:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7996:20:68;;;;;;-1:-1:-1;7996:20:68;;;;;;8017:12;:10;:12::i;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;2289:38;;2310:6;;2289:38;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;1274:134:66:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title DAOToken, base on zeppelin contract.\n * @dev ERC20 compatible token. It is a mintable, burnable token.\n */\n\ncontract DAOToken is ERC20, ERC20Burnable, Ownable {\n\n string public name;\n string public symbol;\n // solhint-disable-next-line const-name-snakecase\n uint8 public constant decimals = 18;\n uint256 public cap;\n\n /**\n * @dev Constructor\n * @param _name - token name\n * @param _symbol - token symbol\n * @param _cap - token cap - 0 value means no cap\n */\n constructor(string memory _name, string memory _symbol, uint256 _cap)\n public {\n name = _name;\n symbol = _symbol;\n cap = _cap;\n }\n\n /**\n * @dev Function to mint tokens\n * @param _to The address that will receive the minted tokens.\n * @param _amount The amount of tokens to mint.\n */\n function mint(address _to, uint256 _amount) public onlyOwner returns (bool) {\n if (cap > 0)\n require(totalSupply().add(_amount) <= cap);\n _mint(_to, _amount);\n return true;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","exportedSymbols":{"DAOToken":[1873]},"id":1874,"nodeType":"SourceUnit","nodes":[{"id":1799,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:3"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","id":1800,"nodeType":"ImportDirective","scope":1874,"sourceUnit":20949,"src":"25:71:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":1801,"nodeType":"ImportDirective","scope":1874,"sourceUnit":21018,"src":"97:64:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":1802,"nodeType":"ImportDirective","scope":1874,"sourceUnit":20510,"src":"162:63:3","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1803,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":20914,"src":"371:5:3","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"id":1804,"nodeType":"InheritanceSpecifier","src":"371:5:3"},{"arguments":null,"baseName":{"contractScope":null,"id":1805,"name":"ERC20Burnable","nodeType":"UserDefinedTypeName","referencedDeclaration":20948,"src":"378:13:3","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Burnable_$20948","typeString":"contract ERC20Burnable"}},"id":1806,"nodeType":"InheritanceSpecifier","src":"378:13:3"},{"arguments":null,"baseName":{"contractScope":null,"id":1807,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"393:7:3","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":1808,"nodeType":"InheritanceSpecifier","src":"393:7:3"}],"contractDependencies":[20058,20509,20914,20948,21017],"contractKind":"contract","documentation":"@title DAOToken, base on zeppelin contract.\n@dev ERC20 compatible token. It is a mintable, burnable token.","fullyImplemented":true,"id":1873,"linearizedBaseContracts":[1873,20509,20948,20914,21017,20058],"name":"DAOToken","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1810,"name":"name","nodeType":"VariableDeclaration","scope":1873,"src":"408:18:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1809,"name":"string","nodeType":"ElementaryTypeName","src":"408:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":false,"id":1812,"name":"symbol","nodeType":"VariableDeclaration","scope":1873,"src":"432:20:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1811,"name":"string","nodeType":"ElementaryTypeName","src":"432:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":true,"id":1815,"name":"decimals","nodeType":"VariableDeclaration","scope":1873,"src":"512:35:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1813,"name":"uint8","nodeType":"ElementaryTypeName","src":"512:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":1814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"545:2:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"constant":false,"id":1817,"name":"cap","nodeType":"VariableDeclaration","scope":1873,"src":"553:18:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1816,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":1838,"nodeType":"Block","src":"818:75:3","statements":[{"expression":{"argumentTypes":null,"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1826,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1810,"src":"828:4:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1827,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"835:5:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"828:12:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1829,"nodeType":"ExpressionStatement","src":"828:12:3"},{"expression":{"argumentTypes":null,"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1830,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1812,"src":"850:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1831,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"859:7:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"850:16:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1833,"nodeType":"ExpressionStatement","src":"850:16:3"},{"expression":{"argumentTypes":null,"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1834,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"876:3:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1835,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"882:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"876:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1837,"nodeType":"ExpressionStatement","src":"876:10:3"}]},"documentation":"@dev Constructor\n@param _name - token name\n@param _symbol - token symbol\n@param _cap - token cap - 0 value means no cap","id":1839,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1819,"name":"_name","nodeType":"VariableDeclaration","scope":1839,"src":"749:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1818,"name":"string","nodeType":"ElementaryTypeName","src":"749:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1821,"name":"_symbol","nodeType":"VariableDeclaration","scope":1839,"src":"770:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1820,"name":"string","nodeType":"ElementaryTypeName","src":"770:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1823,"name":"_cap","nodeType":"VariableDeclaration","scope":1839,"src":"793:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1822,"name":"uint256","nodeType":"ElementaryTypeName","src":"793:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"748:58:3"},"returnParameters":{"id":1825,"nodeType":"ParameterList","parameters":[],"src":"818:0:3"},"scope":1873,"src":"737:156:3","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1871,"nodeType":"Block","src":"1146:134:3","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1850,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"1160:3:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1166:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1160:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1863,"nodeType":"IfStatement","src":"1156:67:3","trueBody":{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1857,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"1207:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1854,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20541,"src":"1189:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1189:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"1189:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1189:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":1859,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"1219:3:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1189:33:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1181:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1181:42:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1862,"nodeType":"ExpressionStatement","src":"1181:42:3"}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1865,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"1239:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1866,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"1244:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1864,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20798,"src":"1233:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1233:19:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1868,"nodeType":"ExpressionStatement","src":"1233:19:3"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1269:4:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1849,"id":1870,"nodeType":"Return","src":"1262:11:3"}]},"documentation":"@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.","id":1872,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1846,"modifierName":{"argumentTypes":null,"id":1845,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1121:9:3","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1121:9:3"}],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":1844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1841,"name":"_to","nodeType":"VariableDeclaration","scope":1872,"src":"1084:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1840,"name":"address","nodeType":"ElementaryTypeName","src":"1084:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1843,"name":"_amount","nodeType":"VariableDeclaration","scope":1872,"src":"1097:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1097:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1083:30:3"},"returnParameters":{"id":1849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"name":"","nodeType":"VariableDeclaration","scope":1872,"src":"1140:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1847,"name":"bool","nodeType":"ElementaryTypeName","src":"1140:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1139:6:3"},"scope":1873,"src":"1070:210:3","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":1874,"src":"350:932:3"}],"src":"0:1283:3"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","exportedSymbols":{"DAOToken":[1873]},"id":1874,"nodeType":"SourceUnit","nodes":[{"id":1799,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:3"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","id":1800,"nodeType":"ImportDirective","scope":1874,"sourceUnit":20949,"src":"25:71:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":1801,"nodeType":"ImportDirective","scope":1874,"sourceUnit":21018,"src":"97:64:3","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":1802,"nodeType":"ImportDirective","scope":1874,"sourceUnit":20510,"src":"162:63:3","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1803,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":20914,"src":"371:5:3","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"id":1804,"nodeType":"InheritanceSpecifier","src":"371:5:3"},{"arguments":null,"baseName":{"contractScope":null,"id":1805,"name":"ERC20Burnable","nodeType":"UserDefinedTypeName","referencedDeclaration":20948,"src":"378:13:3","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20Burnable_$20948","typeString":"contract ERC20Burnable"}},"id":1806,"nodeType":"InheritanceSpecifier","src":"378:13:3"},{"arguments":null,"baseName":{"contractScope":null,"id":1807,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"393:7:3","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":1808,"nodeType":"InheritanceSpecifier","src":"393:7:3"}],"contractDependencies":[20058,20509,20914,20948,21017],"contractKind":"contract","documentation":"@title DAOToken, base on zeppelin contract.\n@dev ERC20 compatible token. It is a mintable, burnable token.","fullyImplemented":true,"id":1873,"linearizedBaseContracts":[1873,20509,20948,20914,21017,20058],"name":"DAOToken","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":1810,"name":"name","nodeType":"VariableDeclaration","scope":1873,"src":"408:18:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1809,"name":"string","nodeType":"ElementaryTypeName","src":"408:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":false,"id":1812,"name":"symbol","nodeType":"VariableDeclaration","scope":1873,"src":"432:20:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":1811,"name":"string","nodeType":"ElementaryTypeName","src":"432:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":true,"id":1815,"name":"decimals","nodeType":"VariableDeclaration","scope":1873,"src":"512:35:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":1813,"name":"uint8","nodeType":"ElementaryTypeName","src":"512:5:3","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":1814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"545:2:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"constant":false,"id":1817,"name":"cap","nodeType":"VariableDeclaration","scope":1873,"src":"553:18:3","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1816,"name":"uint256","nodeType":"ElementaryTypeName","src":"553:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":1838,"nodeType":"Block","src":"818:75:3","statements":[{"expression":{"argumentTypes":null,"id":1828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1826,"name":"name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1810,"src":"828:4:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1827,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1819,"src":"835:5:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"828:12:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1829,"nodeType":"ExpressionStatement","src":"828:12:3"},{"expression":{"argumentTypes":null,"id":1832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1830,"name":"symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1812,"src":"850:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1831,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1821,"src":"859:7:3","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"850:16:3","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1833,"nodeType":"ExpressionStatement","src":"850:16:3"},{"expression":{"argumentTypes":null,"id":1836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":1834,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"876:3:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1835,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"882:4:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"876:10:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1837,"nodeType":"ExpressionStatement","src":"876:10:3"}]},"documentation":"@dev Constructor\n@param _name - token name\n@param _symbol - token symbol\n@param _cap - token cap - 0 value means no cap","id":1839,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":1824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1819,"name":"_name","nodeType":"VariableDeclaration","scope":1839,"src":"749:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1818,"name":"string","nodeType":"ElementaryTypeName","src":"749:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1821,"name":"_symbol","nodeType":"VariableDeclaration","scope":1839,"src":"770:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1820,"name":"string","nodeType":"ElementaryTypeName","src":"770:6:3","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":1823,"name":"_cap","nodeType":"VariableDeclaration","scope":1839,"src":"793:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1822,"name":"uint256","nodeType":"ElementaryTypeName","src":"793:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"748:58:3"},"returnParameters":{"id":1825,"nodeType":"ParameterList","parameters":[],"src":"818:0:3"},"scope":1873,"src":"737:156:3","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1871,"nodeType":"Block","src":"1146:134:3","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1852,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1850,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"1160:3:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":1851,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1166:1:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1160:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":1863,"nodeType":"IfStatement","src":"1156:67:3","trueBody":{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1857,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"1207:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":1854,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20541,"src":"1189:11:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":1855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1189:13:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"1189:17:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1189:26:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":1859,"name":"cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1817,"src":"1219:3:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1189:33:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1853,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1181:7:3","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1181:42:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1862,"nodeType":"ExpressionStatement","src":"1181:42:3"}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1865,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1841,"src":"1239:3:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1866,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1843,"src":"1244:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1864,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20798,"src":"1233:5:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":1867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1233:19:3","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1868,"nodeType":"ExpressionStatement","src":"1233:19:3"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1269:4:3","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1849,"id":1870,"nodeType":"Return","src":"1262:11:3"}]},"documentation":"@dev Function to mint tokens\n@param _to The address that will receive the minted tokens.\n@param _amount The amount of tokens to mint.","id":1872,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":1846,"modifierName":{"argumentTypes":null,"id":1845,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1121:9:3","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1121:9:3"}],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":1844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1841,"name":"_to","nodeType":"VariableDeclaration","scope":1872,"src":"1084:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1840,"name":"address","nodeType":"ElementaryTypeName","src":"1084:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1843,"name":"_amount","nodeType":"VariableDeclaration","scope":1872,"src":"1097:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1097:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1083:30:3"},"returnParameters":{"id":1849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"name":"","nodeType":"VariableDeclaration","scope":1872,"src":"1140:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1847,"name":"bool","nodeType":"ElementaryTypeName","src":"1140:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1139:6:3"},"scope":1873,"src":"1070:210:3","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":1874,"src":"350:932:3"}],"src":"0:1283:3"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.062Z","devdoc":{"details":"ERC20 compatible token. It is a mintable, burnable token.","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. * See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"See {ERC20-_burnFrom}."},"constructor":{"details":"Constructor","params":{"_cap":"- token cap - 0 value means no cap","_name":"- token name","_symbol":"- token symbol"}},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."},"isOwner()":{"details":"Returns true if the caller is the current owner."},"mint(address,uint256)":{"details":"Function to mint tokens","params":{"_amount":"The amount of tokens to mint.","_to":"The address that will receive the minted tokens."}},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"DAOToken, base on zeppelin contract."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAOTracker.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAOTracker.json new file mode 100644 index 00000000..91a349db --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DAOTracker.json @@ -0,0 +1 @@ +{"contractName":"DAOTracker","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":false,"internalType":"string","name":"_explanationHash","type":"string"}],"name":"BlacklistDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":false,"internalType":"string","name":"_explanationHash","type":"string"}],"name":"ResetDAO","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":false,"internalType":"address","name":"_controller","type":"address"},{"indexed":false,"internalType":"address","name":"_reputation","type":"address"},{"indexed":false,"internalType":"address","name":"_daoToken","type":"address"},{"indexed":false,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"string","name":"_arcVersion","type":"string"}],"name":"TrackDAO","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"blacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"contract Controller","name":"_controller","type":"address"},{"internalType":"string","name":"_arcVersion","type":"string"}],"name":"track","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"string","name":"_explanationHash","type":"string"}],"name":"blacklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"string","name":"_explanationHash","type":"string"}],"name":"reset","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_explanationHash\",\"type\":\"string\"}],\"name\":\"BlacklistDAO\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_explanationHash\",\"type\":\"string\"}],\"name\":\"ResetDAO\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_controller\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_reputation\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_daoToken\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_arcVersion\",\"type\":\"string\"}],\"name\":\"TrackDAO\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_explanationHash\",\"type\":\"string\"}],\"name\":\"blacklist\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"blacklisted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_explanationHash\",\"type\":\"string\"}],\"name\":\"reset\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"contract Controller\",\"name\":\"_controller\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_arcVersion\",\"type\":\"string\"}],\"name\":\"track\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"blacklist(address,string)\":{\"details\":\"blacklist a DAO from the cache. This should be callable by maintainer of the cache. Blacklisting can be used to defend against DoS attacks, or to remove spam. In order for this blacklisting to take affect within the cache, it would need to be rebuilt.\",\"params\":{\"_avatar\":\"the organization avatar\",\"_explanationHash\":\"A hash of a document explaining why this DAO was blacklisted\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"reset(address,string)\":{\"details\":\"reset a DAO in the cache. This should be callable by the maintainer of the cache.\",\"params\":{\"_avatar\":\"the organization avatar\",\"_explanationHash\":\"A hash of a document explaining why this DAO was reset\"}},\"track(address,address,string)\":{\"details\":\"track a new organization. This function will tell the subgraph to start ingesting events from the DAO's contracts. NOTE: This function should be called as early as possible in the DAO deployment process. **Smart Contract Events that are emitted from blocks prior to this function's event being emitted WILL NOT be ingested into the subgraph**, leading to an incorrect cache. If this happens to you, please contact the subgraph maintainer. Your DAO will need to be added to the subgraph's startup config, and the cache will need to be rebuilt.\",\"params\":{\"_avatar\":\"the organization avatar\",\"_controller\":\"the organization controller\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"An on-chain \\\"source of truth\\\" for what DAOs should be index into DAOstack's subgraph.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol\":\"DAOTracker\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol\":{\"keccak256\":\"0x98fdf00f5150a0e5ef98abde36f89c37fb307135ddbfe4e0476771c93782824f\",\"urls\":[\"bzz-raw://ee0f9617d3dca49b10738d188f5b8870f45f5601fbc64b1428aab7e6c13b13c1\",\"dweb:/ipfs/QmVoFTHX3QPb7hjAiSjdVEgQaanXys8mX4i4WTrCcNzcvS\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"366:3488:47:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;366:3488:47;;788:96:63;867:10;788:96;:::o;366:3488:47:-;;;;;;;","deployedSourceMap":"366:3488:47:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;366:3488:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1642:137:67;;;:::i;:::-;;857:77;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;3612:240:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3612:240:47;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3612:240:47;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3612:240:47;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3612:240:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3612:240:47;;-1:-1:-1;3612:240:47;;-1:-1:-1;;;;;3612:240:47:i;2031:648::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2031:648:47;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2031:648:47;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2031:648:47;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2031:648:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2031:648:47;;-1:-1:-1;2031:648:47;;-1:-1:-1;;;;;2031:648:47:i;517:41::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;517:41:47;-1:-1:-1;;;;;517:41:47;;:::i;3121:247::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3121:247:47;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3121:247:47;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3121:247:47;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3121:247:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3121:247:47;;-1:-1:-1;3121:247:47;;-1:-1:-1;;;;;3121:247:47:i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;1642:137::-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;3612:240:47:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;-1:-1:-1;;;;;3718:20:47;;3710:29;;;;;;-1:-1:-1;;;;;3749:29:47;;3781:5;3749:29;;;:11;:29;;;;;;;;:37;;-1:-1:-1;;3749:37:47;;;3801:44;;;;;;;;;;;;;;;3828:16;;3801:44;;;;;;;;;;;;;;;;;;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;3801:44:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3612:240;;:::o;2031:648::-;2144:7;1029:10;-1:-1:-1;;;;;1011:28:47;:6;-1:-1:-1;;;;;1011:12:47;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1011:14:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1011:14:47;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1011:14:47;-1:-1:-1;;;;;1011:28:47;;1003:100;;;;-1:-1:-1;;;1003:100:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1184:28:47;;;;;;:11;:28;;;;;;2172:7;;1184:28;;:37;1176:98;;;;;-1:-1:-1;;;1176:98:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2364:20:47;;2356:29;;;;;;-1:-1:-1;;;;;2403:28:47;;2395:37;;;;;;2478:7;-1:-1:-1;;;;;2448:224:47;;2508:11;2542:7;-1:-1:-1;;;;;2542:24:47;;:26;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2542:26:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2542:26:47;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2542:26:47;2591:21;;;-1:-1:-1;;;2591:21:47;;;;-1:-1:-1;;;;;2591:19:47;;;;;:21;;;;;2542:26;;2591:21;;;;;;;:19;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;2591:21:47;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2591:21:47;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2591:21:47;2448:224;;;-1:-1:-1;;;;;2448:224:47;;;;;;;;2591:21;2448:224;;;;;;;;;;;;;;;;;2627:10;2448:224;;;;;;;;;;;;;;;;;;;;;;;;2627:10;;2651:11;;2448:224;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2448:224:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1113:1;2031:648;;;;:::o;517:41::-;;;;;;;;;;;;;;;:::o;3121:247::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;-1:-1:-1;;;;;3231:20:47;;3223:29;;;;;;-1:-1:-1;;;;;3262:29:47;;;;;;3294:4;3262:29;;;;;;;;:36;;-1:-1:-1;;3262:36:47;;;;;;;3313:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1928:107:67;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/Reputation.sol\";\nimport \"../controller/DAOToken.sol\";\nimport \"../controller/Avatar.sol\";\nimport \"../controller/Controller.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n/**\n * @title An on-chain \"source of truth\" for what DAOs\n * should be index into DAOstack's subgraph.\n */\ncontract DAOTracker is Ownable {\n\n // `blacklist` the DAO from the subgraph's cache.\n // Only able to be set by the owner of the DAOTracker.\n mapping(address=>bool) public blacklisted;\n\n event TrackDAO(\n address indexed _avatar,\n address _controller,\n address _reputation,\n address _daoToken,\n address _sender,\n string _arcVersion\n );\n\n event BlacklistDAO(\n address indexed _avatar,\n string _explanationHash\n );\n\n event ResetDAO(\n address indexed _avatar,\n string _explanationHash\n );\n\n modifier onlyAvatarOwner(Avatar avatar) {\n require(avatar.owner() == msg.sender,\n \"The caller must be the owner of the Avatar.\");\n _;\n }\n\n modifier notBlacklisted(Avatar avatar) {\n require(blacklisted[address(avatar)] == false,\n \"The avatar has been blacklisted.\");\n _;\n }\n\n /**\n * @dev track a new organization. This function will tell the subgraph\n * to start ingesting events from the DAO's contracts.\n * NOTE: This function should be called as early as possible in the DAO deployment\n * process. **Smart Contract Events that are emitted from blocks prior to this function's\n * event being emitted WILL NOT be ingested into the subgraph**, leading to an incorrect\n * cache. If this happens to you, please contact the subgraph maintainer. Your DAO will\n * need to be added to the subgraph's startup config, and the cache will need to be rebuilt.\n * @param _avatar the organization avatar\n * @param _controller the organization controller\n */\n function track(Avatar _avatar, Controller _controller, string memory _arcVersion)\n public\n onlyAvatarOwner(_avatar)\n notBlacklisted(_avatar) {\n // Only allow the information to be set once. In the case of a controller upgrades,\n // the subgraph will be updated via the UpgradeController event.\n require(_avatar != Avatar(0));\n require(_controller != Controller(0));\n\n emit TrackDAO(\n address(_avatar),\n address(_controller),\n address(_avatar.nativeReputation()),\n address(_avatar.nativeToken()),\n msg.sender,\n _arcVersion\n );\n }\n\n /**\n * @dev blacklist a DAO from the cache. This should be callable by maintainer of the cache.\n * Blacklisting can be used to defend against DoS attacks, or to remove spam. In order\n * for this blacklisting to take affect within the cache, it would need to be rebuilt.\n * @param _avatar the organization avatar\n * @param _explanationHash A hash of a document explaining why this DAO was blacklisted\n */\n function blacklist(Avatar _avatar, string memory _explanationHash)\n public\n onlyOwner {\n require(_avatar != Avatar(0));\n blacklisted[address(_avatar)] = true;\n emit BlacklistDAO(address(_avatar), _explanationHash);\n }\n\n /**\n * @dev reset a DAO in the cache. This should be callable by the maintainer of the cache.\n * @param _avatar the organization avatar\n * @param _explanationHash A hash of a document explaining why this DAO was reset\n */\n function reset(Avatar _avatar, string memory _explanationHash)\n public\n onlyOwner {\n require(_avatar != Avatar(0));\n blacklisted[address(_avatar)] = false;\n emit ResetDAO(address(_avatar), _explanationHash);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","exportedSymbols":{"DAOTracker":[13647]},"id":13648,"nodeType":"SourceUnit","nodes":[{"id":13456,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:47"},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"@daostack/infra/contracts/Reputation.sol","id":13457,"nodeType":"ImportDirective","scope":13648,"sourceUnit":15083,"src":"25:50:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","file":"../controller/DAOToken.sol","id":13458,"nodeType":"ImportDirective","scope":13648,"sourceUnit":1874,"src":"76:36:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":13459,"nodeType":"ImportDirective","scope":13648,"sourceUnit":338,"src":"113:34:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":13460,"nodeType":"ImportDirective","scope":13648,"sourceUnit":1798,"src":"148:38:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":13461,"nodeType":"ImportDirective","scope":13648,"sourceUnit":20510,"src":"187:63:47","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":13462,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"389:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":13463,"nodeType":"InheritanceSpecifier","src":"389:7:47"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title An on-chain \"source of truth\" for what DAOs\n should be index into DAOstack's subgraph.","fullyImplemented":true,"id":13647,"linearizedBaseContracts":[13647,20509,20058],"name":"DAOTracker","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":13467,"name":"blacklisted","nodeType":"VariableDeclaration","scope":13647,"src":"517:41:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13466,"keyType":{"id":13464,"name":"address","nodeType":"ElementaryTypeName","src":"525:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"517:22:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":13465,"name":"bool","nodeType":"ElementaryTypeName","src":"534:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":13481,"name":"TrackDAO","nodeType":"EventDefinition","parameters":{"id":13480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13469,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13481,"src":"589:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13468,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13471,"indexed":false,"name":"_controller","nodeType":"VariableDeclaration","scope":13481,"src":"622:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13470,"name":"address","nodeType":"ElementaryTypeName","src":"622:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13473,"indexed":false,"name":"_reputation","nodeType":"VariableDeclaration","scope":13481,"src":"651:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13472,"name":"address","nodeType":"ElementaryTypeName","src":"651:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13475,"indexed":false,"name":"_daoToken","nodeType":"VariableDeclaration","scope":13481,"src":"680:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13474,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13477,"indexed":false,"name":"_sender","nodeType":"VariableDeclaration","scope":13481,"src":"707:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13476,"name":"address","nodeType":"ElementaryTypeName","src":"707:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13479,"indexed":false,"name":"_arcVersion","nodeType":"VariableDeclaration","scope":13481,"src":"732:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13478,"name":"string","nodeType":"ElementaryTypeName","src":"732:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"579:177:47"},"src":"565:192:47"},{"anonymous":false,"documentation":null,"id":13487,"name":"BlacklistDAO","nodeType":"EventDefinition","parameters":{"id":13486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13483,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13487,"src":"791:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13482,"name":"address","nodeType":"ElementaryTypeName","src":"791:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13485,"indexed":false,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13487,"src":"824:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13484,"name":"string","nodeType":"ElementaryTypeName","src":"824:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"781:72:47"},"src":"763:91:47"},{"anonymous":false,"documentation":null,"id":13493,"name":"ResetDAO","nodeType":"EventDefinition","parameters":{"id":13492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13489,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13493,"src":"884:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13488,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13491,"indexed":false,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13493,"src":"917:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13490,"name":"string","nodeType":"ElementaryTypeName","src":"917:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"874:72:47"},"src":"860:87:47"},{"body":{"id":13508,"nodeType":"Block","src":"993:128:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13498,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13495,"src":"1011:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1011:12:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":13500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1011:14:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1029:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1029:10:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1011:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5468652063616c6c6572206d75737420626520746865206f776e6572206f6620746865204176617461722e","id":13504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1057:45:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f48c3acb770ed118f5d85b899c2e6645fe2d3d90381283f1025a8059338f4339","typeString":"literal_string \"The caller must be the owner of the Avatar.\""},"value":"The caller must be the owner of the Avatar."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f48c3acb770ed118f5d85b899c2e6645fe2d3d90381283f1025a8059338f4339","typeString":"literal_string \"The caller must be the owner of the Avatar.\""}],"id":13497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1003:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1003:100:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13506,"nodeType":"ExpressionStatement","src":"1003:100:47"},{"id":13507,"nodeType":"PlaceholderStatement","src":"1113:1:47"}]},"documentation":null,"id":13509,"name":"onlyAvatarOwner","nodeType":"ModifierDefinition","parameters":{"id":13496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13495,"name":"avatar","nodeType":"VariableDeclaration","scope":13509,"src":"978:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13494,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"978:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"977:15:47"},"src":"953:168:47","visibility":"internal"},{"body":{"id":13525,"nodeType":"Block","src":"1166:126:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13514,"name":"blacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"1184:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13518,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13516,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13511,"src":"1204:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1196:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1196:15:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1184:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":13519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1216:5:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1184:37:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5468652061766174617220686173206265656e20626c61636b6c69737465642e","id":13521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1239:34:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fe2e50bf4eef83b8116bf88b7bf0f07a1afb5ec9944138ad75ec1d4a181e2fc1","typeString":"literal_string \"The avatar has been blacklisted.\""},"value":"The avatar has been blacklisted."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe2e50bf4eef83b8116bf88b7bf0f07a1afb5ec9944138ad75ec1d4a181e2fc1","typeString":"literal_string \"The avatar has been blacklisted.\""}],"id":13513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1176:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1176:98:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13523,"nodeType":"ExpressionStatement","src":"1176:98:47"},{"id":13524,"nodeType":"PlaceholderStatement","src":"1284:1:47"}]},"documentation":null,"id":13526,"name":"notBlacklisted","nodeType":"ModifierDefinition","parameters":{"id":13512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13511,"name":"avatar","nodeType":"VariableDeclaration","scope":13526,"src":"1151:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13510,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1151:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"1150:15:47"},"src":"1127:165:47","visibility":"internal"},{"body":{"id":13579,"nodeType":"Block","src":"2181:498:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":13546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13542,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2364:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2382:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13543,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2375:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":13545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2375:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2364:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2356:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2356:29:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13548,"nodeType":"ExpressionStatement","src":"2356:29:47"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"id":13554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13550,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"2403:11:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13551,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2418:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":13553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2418:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"src":"2403:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2395:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2395:37:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13556,"nodeType":"ExpressionStatement","src":"2395:37:47"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13559,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2478:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2470:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2470:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13562,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"2508:11:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":13561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2500:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2500:20:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13565,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2542:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"2542:24:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":13567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2542:26:47","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":13564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2534:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2534:35:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13570,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2591:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeToken","nodeType":"MemberAccess","referencedDeclaration":73,"src":"2591:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_DAOToken_$1873_$","typeString":"function () view external returns (contract DAOToken)"}},"id":13572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:21:47","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}],"id":13569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2583:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:30:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2627:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2627:10:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13576,"name":"_arcVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"2651:11:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13557,"name":"TrackDAO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13481,"src":"2448:8:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,address,string memory)"}},"id":13577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2448:224:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13578,"nodeType":"EmitStatement","src":"2443:229:47"}]},"documentation":"@dev track a new organization. This function will tell the subgraph\n to start ingesting events from the DAO's contracts.\n NOTE: This function should be called as early as possible in the DAO deployment\n process. **Smart Contract Events that are emitted from blocks prior to this function's\n event being emitted WILL NOT be ingested into the subgraph**, leading to an incorrect\n cache. If this happens to you, please contact the subgraph maintainer. Your DAO will\n need to be added to the subgraph's startup config, and the cache will need to be rebuilt.\n@param _avatar the organization avatar\n@param _controller the organization controller","id":13580,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":13535,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2144:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"id":13536,"modifierName":{"argumentTypes":null,"id":13534,"name":"onlyAvatarOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"2128:15:47","typeDescriptions":{"typeIdentifier":"t_modifier$_t_contract$_Avatar_$337_$","typeString":"modifier (contract Avatar)"}},"nodeType":"ModifierInvocation","src":"2128:24:47"},{"arguments":[{"argumentTypes":null,"id":13538,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2172:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"id":13539,"modifierName":{"argumentTypes":null,"id":13537,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"2157:14:47","typeDescriptions":{"typeIdentifier":"t_modifier$_t_contract$_Avatar_$337_$","typeString":"modifier (contract Avatar)"}},"nodeType":"ModifierInvocation","src":"2157:23:47"}],"name":"track","nodeType":"FunctionDefinition","parameters":{"id":13533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13528,"name":"_avatar","nodeType":"VariableDeclaration","scope":13580,"src":"2046:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13527,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2046:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13530,"name":"_controller","nodeType":"VariableDeclaration","scope":13580,"src":"2062:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":13529,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2062:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"},{"constant":false,"id":13532,"name":"_arcVersion","nodeType":"VariableDeclaration","scope":13580,"src":"2086:25:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13531,"name":"string","nodeType":"ElementaryTypeName","src":"2086:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"2045:67:47"},"returnParameters":{"id":13540,"nodeType":"ParameterList","parameters":[],"src":"2181:0:47"},"scope":13647,"src":"2031:648:47","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13612,"nodeType":"Block","src":"3213:155:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":13594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13590,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"3231:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3249:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13591,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3242:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":13593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3242:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3231:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3223:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3223:29:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13596,"nodeType":"ExpressionStatement","src":"3223:29:47"},{"expression":{"argumentTypes":null,"id":13603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13597,"name":"blacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"3262:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13601,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13599,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"3282:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3274:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3262:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3294:4:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3262:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13604,"nodeType":"ExpressionStatement","src":"3262:36:47"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13607,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"3334:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3326:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3326:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13609,"name":"_explanationHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"3344:16:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13605,"name":"BlacklistDAO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13487,"src":"3313:12:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":13610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3313:48:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13611,"nodeType":"EmitStatement","src":"3308:53:47"}]},"documentation":"@dev blacklist a DAO from the cache. This should be callable by maintainer of the cache.\n Blacklisting can be used to defend against DoS attacks, or to remove spam. In order\n for this blacklisting to take affect within the cache, it would need to be rebuilt.\n@param _avatar the organization avatar\n@param _explanationHash A hash of a document explaining why this DAO was blacklisted","id":13613,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":13587,"modifierName":{"argumentTypes":null,"id":13586,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3203:9:47","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3203:9:47"}],"name":"blacklist","nodeType":"FunctionDefinition","parameters":{"id":13585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13582,"name":"_avatar","nodeType":"VariableDeclaration","scope":13613,"src":"3140:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13581,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3140:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13584,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13613,"src":"3156:30:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13583,"name":"string","nodeType":"ElementaryTypeName","src":"3156:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3139:48:47"},"returnParameters":{"id":13588,"nodeType":"ParameterList","parameters":[],"src":"3213:0:47"},"scope":13647,"src":"3121:247:47","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13645,"nodeType":"Block","src":"3700:152:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":13627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13623,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"3718:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3736:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13624,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3729:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":13626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3729:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3718:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13622,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3710:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3710:29:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13629,"nodeType":"ExpressionStatement","src":"3710:29:47"},{"expression":{"argumentTypes":null,"id":13636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13630,"name":"blacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"3749:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13634,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13632,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"3769:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3761:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3761:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3749:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":13635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3781:5:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3749:37:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13637,"nodeType":"ExpressionStatement","src":"3749:37:47"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13640,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"3818:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3810:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3810:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13642,"name":"_explanationHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13617,"src":"3828:16:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13638,"name":"ResetDAO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13493,"src":"3801:8:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":13643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3801:44:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13644,"nodeType":"EmitStatement","src":"3796:49:47"}]},"documentation":"@dev reset a DAO in the cache. This should be callable by the maintainer of the cache.\n@param _avatar the organization avatar\n@param _explanationHash A hash of a document explaining why this DAO was reset","id":13646,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":13620,"modifierName":{"argumentTypes":null,"id":13619,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3690:9:47","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3690:9:47"}],"name":"reset","nodeType":"FunctionDefinition","parameters":{"id":13618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13615,"name":"_avatar","nodeType":"VariableDeclaration","scope":13646,"src":"3627:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13614,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3627:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13617,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13646,"src":"3643:30:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13616,"name":"string","nodeType":"ElementaryTypeName","src":"3643:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3626:48:47"},"returnParameters":{"id":13621,"nodeType":"ParameterList","parameters":[],"src":"3700:0:47"},"scope":13647,"src":"3612:240:47","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":13648,"src":"366:3488:47"}],"src":"0:3855:47"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","exportedSymbols":{"DAOTracker":[13647]},"id":13648,"nodeType":"SourceUnit","nodes":[{"id":13456,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:47"},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"@daostack/infra/contracts/Reputation.sol","id":13457,"nodeType":"ImportDirective","scope":13648,"sourceUnit":15083,"src":"25:50:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol","file":"../controller/DAOToken.sol","id":13458,"nodeType":"ImportDirective","scope":13648,"sourceUnit":1874,"src":"76:36:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":13459,"nodeType":"ImportDirective","scope":13648,"sourceUnit":338,"src":"113:34:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":13460,"nodeType":"ImportDirective","scope":13648,"sourceUnit":1798,"src":"148:38:47","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":13461,"nodeType":"ImportDirective","scope":13648,"sourceUnit":20510,"src":"187:63:47","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":13462,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"389:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":13463,"nodeType":"InheritanceSpecifier","src":"389:7:47"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title An on-chain \"source of truth\" for what DAOs\n should be index into DAOstack's subgraph.","fullyImplemented":true,"id":13647,"linearizedBaseContracts":[13647,20509,20058],"name":"DAOTracker","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":13467,"name":"blacklisted","nodeType":"VariableDeclaration","scope":13647,"src":"517:41:47","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":13466,"keyType":{"id":13464,"name":"address","nodeType":"ElementaryTypeName","src":"525:7:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"517:22:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":13465,"name":"bool","nodeType":"ElementaryTypeName","src":"534:4:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":13481,"name":"TrackDAO","nodeType":"EventDefinition","parameters":{"id":13480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13469,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13481,"src":"589:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13468,"name":"address","nodeType":"ElementaryTypeName","src":"589:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13471,"indexed":false,"name":"_controller","nodeType":"VariableDeclaration","scope":13481,"src":"622:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13470,"name":"address","nodeType":"ElementaryTypeName","src":"622:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13473,"indexed":false,"name":"_reputation","nodeType":"VariableDeclaration","scope":13481,"src":"651:19:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13472,"name":"address","nodeType":"ElementaryTypeName","src":"651:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13475,"indexed":false,"name":"_daoToken","nodeType":"VariableDeclaration","scope":13481,"src":"680:17:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13474,"name":"address","nodeType":"ElementaryTypeName","src":"680:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13477,"indexed":false,"name":"_sender","nodeType":"VariableDeclaration","scope":13481,"src":"707:15:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13476,"name":"address","nodeType":"ElementaryTypeName","src":"707:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13479,"indexed":false,"name":"_arcVersion","nodeType":"VariableDeclaration","scope":13481,"src":"732:18:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13478,"name":"string","nodeType":"ElementaryTypeName","src":"732:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"579:177:47"},"src":"565:192:47"},{"anonymous":false,"documentation":null,"id":13487,"name":"BlacklistDAO","nodeType":"EventDefinition","parameters":{"id":13486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13483,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13487,"src":"791:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13482,"name":"address","nodeType":"ElementaryTypeName","src":"791:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13485,"indexed":false,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13487,"src":"824:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13484,"name":"string","nodeType":"ElementaryTypeName","src":"824:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"781:72:47"},"src":"763:91:47"},{"anonymous":false,"documentation":null,"id":13493,"name":"ResetDAO","nodeType":"EventDefinition","parameters":{"id":13492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13489,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13493,"src":"884:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13488,"name":"address","nodeType":"ElementaryTypeName","src":"884:7:47","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13491,"indexed":false,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13493,"src":"917:23:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13490,"name":"string","nodeType":"ElementaryTypeName","src":"917:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"874:72:47"},"src":"860:87:47"},{"body":{"id":13508,"nodeType":"Block","src":"993:128:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":13503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13498,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13495,"src":"1011:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1011:12:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":13500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1011:14:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1029:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1029:10:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1011:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5468652063616c6c6572206d75737420626520746865206f776e6572206f6620746865204176617461722e","id":13504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1057:45:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f48c3acb770ed118f5d85b899c2e6645fe2d3d90381283f1025a8059338f4339","typeString":"literal_string \"The caller must be the owner of the Avatar.\""},"value":"The caller must be the owner of the Avatar."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f48c3acb770ed118f5d85b899c2e6645fe2d3d90381283f1025a8059338f4339","typeString":"literal_string \"The caller must be the owner of the Avatar.\""}],"id":13497,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1003:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1003:100:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13506,"nodeType":"ExpressionStatement","src":"1003:100:47"},{"id":13507,"nodeType":"PlaceholderStatement","src":"1113:1:47"}]},"documentation":null,"id":13509,"name":"onlyAvatarOwner","nodeType":"ModifierDefinition","parameters":{"id":13496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13495,"name":"avatar","nodeType":"VariableDeclaration","scope":13509,"src":"978:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13494,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"978:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"977:15:47"},"src":"953:168:47","visibility":"internal"},{"body":{"id":13525,"nodeType":"Block","src":"1166:126:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13514,"name":"blacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"1184:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13518,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13516,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13511,"src":"1204:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13515,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1196:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1196:15:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1184:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":13519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1216:5:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1184:37:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5468652061766174617220686173206265656e20626c61636b6c69737465642e","id":13521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1239:34:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fe2e50bf4eef83b8116bf88b7bf0f07a1afb5ec9944138ad75ec1d4a181e2fc1","typeString":"literal_string \"The avatar has been blacklisted.\""},"value":"The avatar has been blacklisted."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fe2e50bf4eef83b8116bf88b7bf0f07a1afb5ec9944138ad75ec1d4a181e2fc1","typeString":"literal_string \"The avatar has been blacklisted.\""}],"id":13513,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1176:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1176:98:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13523,"nodeType":"ExpressionStatement","src":"1176:98:47"},{"id":13524,"nodeType":"PlaceholderStatement","src":"1284:1:47"}]},"documentation":null,"id":13526,"name":"notBlacklisted","nodeType":"ModifierDefinition","parameters":{"id":13512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13511,"name":"avatar","nodeType":"VariableDeclaration","scope":13526,"src":"1151:13:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13510,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1151:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"1150:15:47"},"src":"1127:165:47","visibility":"internal"},{"body":{"id":13579,"nodeType":"Block","src":"2181:498:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":13546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13542,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2364:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2382:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13543,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2375:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":13545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2375:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2364:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2356:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2356:29:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13548,"nodeType":"ExpressionStatement","src":"2356:29:47"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"id":13554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13550,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"2403:11:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2429:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13551,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2418:10:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":13553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2418:13:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"src":"2403:28:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13549,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2395:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2395:37:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13556,"nodeType":"ExpressionStatement","src":"2395:37:47"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13559,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2478:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13558,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2470:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2470:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13562,"name":"_controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13530,"src":"2508:11:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":13561,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2500:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2500:20:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13565,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2542:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"2542:24:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":13567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2542:26:47","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":13564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2534:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2534:35:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13570,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2591:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeToken","nodeType":"MemberAccess","referencedDeclaration":73,"src":"2591:19:47","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_DAOToken_$1873_$","typeString":"function () view external returns (contract DAOToken)"}},"id":13572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:21:47","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}],"id":13569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2583:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:30:47","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13574,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2627:3:47","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2627:10:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13576,"name":"_arcVersion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13532,"src":"2651:11:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13557,"name":"TrackDAO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13481,"src":"2448:8:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,address,address,address,address,string memory)"}},"id":13577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2448:224:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13578,"nodeType":"EmitStatement","src":"2443:229:47"}]},"documentation":"@dev track a new organization. This function will tell the subgraph\n to start ingesting events from the DAO's contracts.\n NOTE: This function should be called as early as possible in the DAO deployment\n process. **Smart Contract Events that are emitted from blocks prior to this function's\n event being emitted WILL NOT be ingested into the subgraph**, leading to an incorrect\n cache. If this happens to you, please contact the subgraph maintainer. Your DAO will\n need to be added to the subgraph's startup config, and the cache will need to be rebuilt.\n@param _avatar the organization avatar\n@param _controller the organization controller","id":13580,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":13535,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2144:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"id":13536,"modifierName":{"argumentTypes":null,"id":13534,"name":"onlyAvatarOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13509,"src":"2128:15:47","typeDescriptions":{"typeIdentifier":"t_modifier$_t_contract$_Avatar_$337_$","typeString":"modifier (contract Avatar)"}},"nodeType":"ModifierInvocation","src":"2128:24:47"},{"arguments":[{"argumentTypes":null,"id":13538,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13528,"src":"2172:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"id":13539,"modifierName":{"argumentTypes":null,"id":13537,"name":"notBlacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13526,"src":"2157:14:47","typeDescriptions":{"typeIdentifier":"t_modifier$_t_contract$_Avatar_$337_$","typeString":"modifier (contract Avatar)"}},"nodeType":"ModifierInvocation","src":"2157:23:47"}],"name":"track","nodeType":"FunctionDefinition","parameters":{"id":13533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13528,"name":"_avatar","nodeType":"VariableDeclaration","scope":13580,"src":"2046:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13527,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2046:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13530,"name":"_controller","nodeType":"VariableDeclaration","scope":13580,"src":"2062:22:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":13529,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2062:10:47","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"},{"constant":false,"id":13532,"name":"_arcVersion","nodeType":"VariableDeclaration","scope":13580,"src":"2086:25:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13531,"name":"string","nodeType":"ElementaryTypeName","src":"2086:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"2045:67:47"},"returnParameters":{"id":13540,"nodeType":"ParameterList","parameters":[],"src":"2181:0:47"},"scope":13647,"src":"2031:648:47","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13612,"nodeType":"Block","src":"3213:155:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":13594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13590,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"3231:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3249:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13591,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3242:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":13593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3242:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3231:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13589,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3223:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3223:29:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13596,"nodeType":"ExpressionStatement","src":"3223:29:47"},{"expression":{"argumentTypes":null,"id":13603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13597,"name":"blacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"3262:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13601,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13599,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"3282:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13598,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3274:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3274:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3262:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3294:4:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3262:36:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13604,"nodeType":"ExpressionStatement","src":"3262:36:47"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13607,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13582,"src":"3334:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3326:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3326:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13609,"name":"_explanationHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13584,"src":"3344:16:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13605,"name":"BlacklistDAO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13487,"src":"3313:12:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":13610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3313:48:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13611,"nodeType":"EmitStatement","src":"3308:53:47"}]},"documentation":"@dev blacklist a DAO from the cache. This should be callable by maintainer of the cache.\n Blacklisting can be used to defend against DoS attacks, or to remove spam. In order\n for this blacklisting to take affect within the cache, it would need to be rebuilt.\n@param _avatar the organization avatar\n@param _explanationHash A hash of a document explaining why this DAO was blacklisted","id":13613,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":13587,"modifierName":{"argumentTypes":null,"id":13586,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3203:9:47","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3203:9:47"}],"name":"blacklist","nodeType":"FunctionDefinition","parameters":{"id":13585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13582,"name":"_avatar","nodeType":"VariableDeclaration","scope":13613,"src":"3140:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13581,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3140:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13584,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13613,"src":"3156:30:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13583,"name":"string","nodeType":"ElementaryTypeName","src":"3156:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3139:48:47"},"returnParameters":{"id":13588,"nodeType":"ParameterList","parameters":[],"src":"3213:0:47"},"scope":13647,"src":"3121:247:47","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13645,"nodeType":"Block","src":"3700:152:47","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":13627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13623,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"3718:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":13625,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3736:1:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":13624,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"3729:6:47","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":13626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3729:9:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"3718:20:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13622,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3710:7:47","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3710:29:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13629,"nodeType":"ExpressionStatement","src":"3710:29:47"},{"expression":{"argumentTypes":null,"id":13636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13630,"name":"blacklisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13467,"src":"3749:11:47","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":13634,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13632,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"3769:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3761:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13633,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3761:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3749:29:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":13635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3781:5:47","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3749:37:47","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13637,"nodeType":"ExpressionStatement","src":"3749:37:47"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13640,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13615,"src":"3818:7:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13639,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3810:7:47","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3810:16:47","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13642,"name":"_explanationHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13617,"src":"3828:16:47","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13638,"name":"ResetDAO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13493,"src":"3801:8:47","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,string memory)"}},"id":13643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3801:44:47","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13644,"nodeType":"EmitStatement","src":"3796:49:47"}]},"documentation":"@dev reset a DAO in the cache. This should be callable by the maintainer of the cache.\n@param _avatar the organization avatar\n@param _explanationHash A hash of a document explaining why this DAO was reset","id":13646,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":13620,"modifierName":{"argumentTypes":null,"id":13619,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"3690:9:47","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"3690:9:47"}],"name":"reset","nodeType":"FunctionDefinition","parameters":{"id":13618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13615,"name":"_avatar","nodeType":"VariableDeclaration","scope":13646,"src":"3627:14:47","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13614,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"3627:6:47","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13617,"name":"_explanationHash","nodeType":"VariableDeclaration","scope":13646,"src":"3643:30:47","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13616,"name":"string","nodeType":"ElementaryTypeName","src":"3643:6:47","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3626:48:47"},"returnParameters":{"id":13621,"nodeType":"ParameterList","parameters":[],"src":"3700:0:47"},"scope":13647,"src":"3612:240:47","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":13648,"src":"366:3488:47"}],"src":"0:3855:47"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.220Z","devdoc":{"methods":{"blacklist(address,string)":{"details":"blacklist a DAO from the cache. This should be callable by maintainer of the cache. Blacklisting can be used to defend against DoS attacks, or to remove spam. In order for this blacklisting to take affect within the cache, it would need to be rebuilt.","params":{"_avatar":"the organization avatar","_explanationHash":"A hash of a document explaining why this DAO was blacklisted"}},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"reset(address,string)":{"details":"reset a DAO in the cache. This should be callable by the maintainer of the cache.","params":{"_avatar":"the organization avatar","_explanationHash":"A hash of a document explaining why this DAO was reset"}},"track(address,address,string)":{"details":"track a new organization. This function will tell the subgraph to start ingesting events from the DAO's contracts. NOTE: This function should be called as early as possible in the DAO deployment process. **Smart Contract Events that are emitted from blocks prior to this function's event being emitted WILL NOT be ingested into the subgraph**, leading to an incorrect cache. If this happens to you, please contact the subgraph maintainer. Your DAO will need to be added to the subgraph's startup config, and the cache will need to be rebuilt.","params":{"_avatar":"the organization avatar","_controller":"the organization controller"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"An on-chain \"source of truth\" for what DAOs should be index into DAOstack's subgraph."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DaoCreator.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DaoCreator.json new file mode 100644 index 00000000..03651e9a --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/DaoCreator.json @@ -0,0 +1 @@ +{"contractName":"DaoCreator","abi":[{"inputs":[{"internalType":"contract ControllerCreator","name":"_controllerCreator","type":"address"},{"internalType":"contract DAOTracker","name":"_daoTracker","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_avatar","type":"address"}],"name":"InitialSchemesSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_avatar","type":"address"}],"name":"NewOrg","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"locks","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address[]","name":"_founders","type":"address[]"},{"internalType":"uint256[]","name":"_foundersTokenAmount","type":"uint256[]"},{"internalType":"uint256[]","name":"_foundersReputationAmount","type":"uint256[]"}],"name":"addFounders","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_orgName","type":"string"},{"internalType":"string","name":"_tokenName","type":"string"},{"internalType":"string","name":"_tokenSymbol","type":"string"},{"internalType":"address[]","name":"_founders","type":"address[]"},{"internalType":"uint256[]","name":"_foundersTokenAmount","type":"uint256[]"},{"internalType":"uint256[]","name":"_foundersReputationAmount","type":"uint256[]"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"name":"forgeOrg","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address[]","name":"_schemes","type":"address[]"},{"internalType":"bytes32[]","name":"_params","type":"bytes32[]"},{"internalType":"bytes4[]","name":"_permissions","type":"bytes4[]"},{"internalType":"string","name":"_metaData","type":"string"}],"name":"setSchemes","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract ControllerCreator\",\"name\":\"_controllerCreator\",\"type\":\"address\"},{\"internalType\":\"contract DAOTracker\",\"name\":\"_daoTracker\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"InitialSchemesSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"}],\"name\":\"NewOrg\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_founders\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_foundersTokenAmount\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_foundersReputationAmount\",\"type\":\"uint256[]\"}],\"name\":\"addFounders\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_orgName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_tokenSymbol\",\"type\":\"string\"},{\"internalType\":\"address[]\",\"name\":\"_founders\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_foundersTokenAmount\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_foundersReputationAmount\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"forgeOrg\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"locks\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_schemes\",\"type\":\"address[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"_params\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"_permissions\",\"type\":\"bytes4[]\"},{\"internalType\":\"string\",\"name\":\"_metaData\",\"type\":\"string\"}],\"name\":\"setSchemes\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addFounders(address,address[],uint256[],uint256[])\":{\"details\":\"addFounders add founders to the organization. this function can be called only after forgeOrg and before setSchemes\",\"params\":{\"_avatar\":\"the organization avatar\",\"_founders\":\"An array with the addresses of the founders of the organization\",\"_foundersReputationAmount\":\"An array of amount of reputation that the founders receive in the new organization\",\"_foundersTokenAmount\":\"An array of amount of tokens that the founders receive in the new organization\"},\"return\":\"bool true or false\"},\"forgeOrg(string,string,string,address[],uint256[],uint256[],uint256)\":{\"details\":\"Create a new organization\",\"params\":{\"_cap\":\"token cap - 0 for no cap.\",\"_founders\":\"An array with the addresses of the founders of the organization\",\"_foundersReputationAmount\":\"An array of amount of reputation that the founders receive in the new organization\",\"_foundersTokenAmount\":\"An array of amount of tokens that the founders receive in the new organization\",\"_orgName\":\"The name of the new organization\",\"_tokenName\":\"The name of the token associated with the organization\",\"_tokenSymbol\":\"The symbol of the token\"},\"return\":\"The address of the avatar of the controller\"},\"setSchemes(address,address[],bytes32[],bytes4[],string)\":{\"details\":\"Set initial schemes for the organization.\",\"params\":{\"_avatar\":\"organization avatar (returns from forgeOrg)\",\"_metaData\":\"dao meta data hash\",\"_params\":\"the schemes's params\",\"_permissions\":\"the schemes permissions.\",\"_schemes\":\"the schemes to register for the organization\"}}},\"title\":\"Genesis Scheme that creates organizations\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol\":\"DaoCreator\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol\":{\"keccak256\":\"0xd08a37b916bc4d26ef8196793e76eb761c637f97a68f1f28940d7a51d790506b\",\"urls\":[\"bzz-raw://209f6346bc7e0df1c3c42a563d0354bfdd342dec7238755b2807dce12b154a7f\",\"dweb:/ipfs/QmeweZE6eN5cFKogcdtec2HS1EyUpkMKVnsy5FEpRN4rFz\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol\":{\"keccak256\":\"0x98fdf00f5150a0e5ef98abde36f89c37fb307135ddbfe4e0476771c93782824f\",\"urls\":[\"bzz-raw://ee0f9617d3dca49b10738d188f5b8870f45f5601fbc64b1428aab7e6c13b13c1\",\"dweb:/ipfs/QmVoFTHX3QPb7hjAiSjdVEgQaanXys8mX4i4WTrCcNzcvS\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"623:7150:39:-;;;864:278;8:9:-1;5:2;;;30:1;27;20:12;5:2;864:278:39;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;864:278:39;;;;;;;-1:-1:-1;;;;;963:42:39;;955:51;;;;;;-1:-1:-1;;;;;1024:28:39;;1016:37;;;;;;1063:17;:38;;-1:-1:-1;;;;;1063:38:39;;;-1:-1:-1;;;;;;1063:38:39;;;;;;;1111:10;:24;;;;;;;;;;;623:7150;;;;;;","deployedSourceMap":"623:7150:39:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;623:7150:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4449:917;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;4449:917:39;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4449:917:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4449:917:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4449:917:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4449:917:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4449:917:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4449:917:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4449:917:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4449:917:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;4449:917:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4449:917:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4449:917:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;4449:917:39;;-1:-1:-1;4449:917:39;-1:-1:-1;4449:917:39;:::i;:::-;;3461:632;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3461:632:39;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3461:632:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3461:632:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3461:632:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3461:632:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3461:632:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3461:632:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3461:632:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3461:632:39;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3461:632:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3461:632:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3461:632:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3461:632:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3461:632:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3461:632:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3461:632:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3461:632:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3461:632:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3461:632:39;;-1:-1:-1;3461:632:39;-1:-1:-1;3461:632:39;;:::i;:::-;;;;-1:-1:-1;;;;;3461:632:39;;;;;;;;;;;;;;1736:1045;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;1736:1045:39;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1736:1045:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1736:1045:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1736:1045:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1736:1045:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1736:1045:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1736:1045:39;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1736:1045:39;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1736:1045:39;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;1736:1045:39;;-1:-1:-1;1736:1045:39;-1:-1:-1;1736:1045:39;:::i;:::-;;;;;;;;;;;;;;;;;;650:38;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;650:38:39;-1:-1:-1;;;;;650:38:39;;:::i;4449:917::-;-1:-1:-1;;;;;4797:23:39;;;:5;:23;;;;;;;;;;;;4824:10;4797:37;4789:46;;;;;;4882:21;4917:7;-1:-1:-1;;;;;4917:13:39;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4917:15:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4917:15:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4917:15:39;;-1:-1:-1;4948:9:39;4943:156;4963:19;;;4943:156;;;5003:10;-1:-1:-1;;;;;5003:25:39;;5029:8;;5038:1;5029:11;;;;;;;;;;;;;-1:-1:-1;;;;;5029:11:39;5042:7;;5050:1;5042:10;;;;;;;;;;;;;5054:12;;5067:1;5054:15;;;;;;;;;;;;;-1:-1:-1;;;;;5054:15:39;;5079:7;5003:85;;;;;;;;;;;;;-1:-1:-1;;;;;5003:85:39;-1:-1:-1;;;;;5003:85:39;;;;;;;;;;;-1:-1:-1;;;;;5003:85:39;;-1:-1:-1;;;;;5003:85:39;;;;;;;-1:-1:-1;;;;;5003:85:39;-1:-1:-1;;;;;5003:85:39;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5003:85:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5003:85:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;4984:3:39;;4943:156;;;-1:-1:-1;5108:39:39;;;-1:-1:-1;;;5108:39:39;;-1:-1:-1;;;;;5108:39:39;;;;;;;;;;;;;;;;;;;:19;;;;;5128:9;;;;5139:7;;5108:39;;;;;5128:9;;;;5108:39;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;5108:39:39;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5108:39:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5108:39:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;5185:60:39;;;-1:-1:-1;;;5185:60:39;;5221:4;5185:60;;;;-1:-1:-1;;;;;5185:60:39;;;;;;;;;:27;;;;;;:60;;;;;5108:39;;5185:60;;;;;;;;-1:-1:-1;5185:27:39;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;5185:60:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5185:60:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;5286:23:39;;:5;:23;;;5185:60;5286:23;;;;;;;;5279:30;;-1:-1:-1;;;;;;5279:30:39;;;5324:35;;;;;;;;;;;;;;;;;4449:917;;;;;;;;;;:::o;3461:632::-;3776:7;3890:196;3913:8;;3890:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3890:196:39;;;;;;3935:10;;3890:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3890:196:39;;;;;;3959:12;;3890:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;3890:196:39;;;;;;3985:9;;3890:196;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;;3890:196:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4008:20:39;;-1:-1:-1;4008:20:39;;;;3890:196;;;4008:20;;3890:196;4008:20;3890:196;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;;3890:196:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4042:25:39;;-1:-1:-1;4042:25:39;;;;3890:196;;;4042:25;;3890:196;4042:25;3890:196;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;4081:4:39;;-1:-1:-1;3890:9:39;;-1:-1:-1;;3890:196:39:i;:::-;3883:203;3461:632;-1:-1:-1;;;;;;;;;;;;;;3461:632:39:o;1736:1045::-;1948:4;1976:47;;;1968:56;;;;;;2042:52;;;2034:61;;;;;;2113:20;2105:29;;;;;;-1:-1:-1;;;;;2152:23:39;;;:5;:23;;;;;;;;;;;;2179:10;2152:37;2144:46;;;;;;2256:9;2251:503;2271:20;;;2251:503;;;2344:1;2320:9;;2330:1;2320:12;;;;;;;;;;;;;-1:-1:-1;;;;;2320:12:39;-1:-1:-1;;;;;2320:26:39;;;2312:35;;;;;;2391:1;2365:20;;2386:1;2365:23;;;;;;;;;;;;;:27;2361:178;;;2440:7;-1:-1:-1;;;;;2440:13:39;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2440:15:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2440:15:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2440:15:39;-1:-1:-1;;;;;2412:55:39;;2468:20;;2489:1;2468:23;;;;;;;;;;;;;2493:9;;2503:1;2493:12;;;;;;;;;;;;;-1:-1:-1;;;;;2493:12:39;2515:7;2412:112;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2412:112:39;-1:-1:-1;;;;;2412:112:39;;;;;;-1:-1:-1;;;;;2412:112:39;-1:-1:-1;;;;;2412:112:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2412:112:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2412:112:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;2361:178:39;2587:1;2556:25;;2582:1;2556:28;;;;;;;;;;;;;:32;2552:192;;;2636:7;-1:-1:-1;;;;;2636:13:39;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2636:15:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2636:15:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2636:15:39;-1:-1:-1;;;;;2608:59:39;;2668:25;;2694:1;2668:28;;;;;;;;;;;;;2698:9;;2708:1;2698:12;;;;;;;;;;;;;-1:-1:-1;;;;;2698:12:39;2720:7;2608:121;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2608:121:39;-1:-1:-1;;;;;2608:121:39;;;;;;-1:-1:-1;;;;;2608:121:39;-1:-1:-1;;;;;2608:121:39;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2608:121:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2608:121:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;2552:192:39;2293:3;;2251:503;;;-1:-1:-1;2770:4:39;;1736:1045;-1:-1:-1;;;;;;;;1736:1045:39:o;650:38::-;;;;;;;;;;;;;-1:-1:-1;;;;;650:38:39;;:::o;6060:1711::-;6355:7;6454:20;:27;6434:9;:16;:47;6426:56;;;;;;6520:25;:32;6500:9;:16;:52;6492:61;;;;;;6590:1;6571:9;:16;:20;6563:29;;;;;;6602:20;6638:10;6650:12;6664:4;6625:44;;;;;:::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;6625:44:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6625:44:39;;;;;;;;;;;;;;;;;;;;;;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;6625:44:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6625:44:39;6602:67;;6679:27;6709:16;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6709:16:39;6679:46;;6735:13;6762:8;6772:11;6785:16;6751:51;;;;;:::i;:::-;-1:-1:-1;;;;;6751:51:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6751:51:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;6735:67:39;-1:-1:-1;6870:9:39;6865:390;6889:9;:16;6885:1;:20;6865:390;;;6958:1;-1:-1:-1;;;;;6934:26:39;:9;6944:1;6934:12;;;;;;;;;;;;;;-1:-1:-1;;;;;6934:26:39;;;6926:35;;;;;;7005:1;6979:20;7000:1;6979:23;;;;;;;;;;;;;;:27;6975:121;;;7026:11;-1:-1:-1;;;;;7026:16:39;;7043:9;7053:1;7043:12;;;;;;;;;;;;;;7057:20;7078:1;7057:23;;;;;;;;;;;;;;7026:55;;;;;;;;;;;;;-1:-1:-1;;;;;7026:55:39;-1:-1:-1;;;;;7026:55:39;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7026:55:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7026:55:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;6975:121:39;7144:1;7113:25;7139:1;7113:28;;;;;;;;;;;;;;:32;7109:136;;;7165:16;-1:-1:-1;;;;;7165:21:39;;7187:9;7197:1;7187:12;;;;;;;;;;;;;;7201:25;7227:1;7201:28;;;;;;;;;;;;;;7165:65;;;;;;;;;;;;;-1:-1:-1;;;;;7165:65:39;-1:-1:-1;;;;;7165:65:39;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7165:65:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7165:65:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;7109:136:39;6907:3;;6865:390;;;-1:-1:-1;7300:17:39;;:32;;;-1:-1:-1;;;7300:32:39;;-1:-1:-1;;;;;7300:32:39;;;;;;;;;7265:21;;7300:17;;;;;:24;;:32;;;;;;;;;;;;;;;7265:21;7300:17;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;7300:32:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7300:32:39;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7300:32:39;7392:10;;:40;;;-1:-1:-1;;;7392:40:39;;-1:-1:-1;;;;;7392:40:39;;;;;;;;;;;;;;;;;;;:10;:40;;;;;;;;7300:32;;-1:-1:-1;7392:10:39;;;;:16;;:40;;;;;:10;:40;;;;;;:10;;:40;;;5:2:-1;;;;30:1;27;20:12;5:2;7392:40:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7392:40:39;;;;7474:6;-1:-1:-1;;;;;7474:24:39;;7507:10;7474:45;;;;;;;;;;;;;-1:-1:-1;;;;;7474:45:39;-1:-1:-1;;;;;7474:45:39;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7474:45:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7474:45:39;;;;7529:11;-1:-1:-1;;;;;7529:29:39;;7567:10;7529:50;;;;;;;;;;;;;-1:-1:-1;;;;;7529:50:39;-1:-1:-1;;;;;7529:50:39;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7529:50:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7529:50:39;;;;7589:16;-1:-1:-1;;;;;7589:34:39;;7632:10;7589:55;;;;;;;;;;;;;-1:-1:-1;;;;;7589:55:39;-1:-1:-1;;;;;7589:55:39;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7589:55:39;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;;;;;;7655:22:39;;:5;:22;;;;;;;;;;;;:35;;-1:-1:-1;;;;;;7655:35:39;7680:10;7655:35;;;7706:24;;;;;;;;;-1:-1:-1;7706:24:39;;;;;;;-1:-1:-1;7756:6:39;6060:1711;-1:-1:-1;;;;;;;;;;6060:1711:39:o;623:7150::-;;;;;;;;:::o;:::-;;;;;;;;:::o;:::-;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"./UniversalScheme.sol\";\nimport \"../controller/Controller.sol\";\nimport \"../utils/DAOTracker.sol\";\n\n\n/**\n * @title ControllerCreator for creating a single controller.\n */\ncontract ControllerCreator {\n\n function create(Avatar _avatar) public returns(address) {\n Controller controller = new Controller(_avatar);\n controller.registerScheme(msg.sender, bytes32(0), bytes4(0x0000001f), address(_avatar));\n controller.unregisterScheme(address(this), address(_avatar));\n return address(controller);\n }\n}\n\n/**\n * @title Genesis Scheme that creates organizations\n */\ncontract DaoCreator {\n\n mapping(address=>address) public locks;\n\n event NewOrg (address _avatar);\n event InitialSchemesSet (address _avatar);\n\n ControllerCreator private controllerCreator;\n DAOTracker private daoTracker;\n\n constructor(ControllerCreator _controllerCreator, DAOTracker _daoTracker) public {\n require(_controllerCreator != ControllerCreator(0));\n require(_daoTracker != DAOTracker(0));\n controllerCreator = _controllerCreator;\n daoTracker = _daoTracker;\n }\n\n /**\n * @dev addFounders add founders to the organization.\n * this function can be called only after forgeOrg and before setSchemes\n * @param _avatar the organization avatar\n * @param _founders An array with the addresses of the founders of the organization\n * @param _foundersTokenAmount An array of amount of tokens that the founders\n * receive in the new organization\n * @param _foundersReputationAmount An array of amount of reputation that the\n * founders receive in the new organization\n * @return bool true or false\n */\n function addFounders (\n Avatar _avatar,\n address[] calldata _founders,\n uint[] calldata _foundersTokenAmount,\n uint[] calldata _foundersReputationAmount\n )\n external\n returns(bool)\n {\n require(_founders.length == _foundersTokenAmount.length);\n require(_founders.length == _foundersReputationAmount.length);\n require(_founders.length > 0);\n require(locks[address(_avatar)] == msg.sender);\n // Mint token and reputation for founders:\n for (uint256 i = 0; i < _founders.length; i++) {\n require(_founders[i] != address(0));\n if (_foundersTokenAmount[i] > 0) {\n Controller(\n _avatar.owner()).mintTokens(_foundersTokenAmount[i], _founders[i], address(_avatar));\n }\n if (_foundersReputationAmount[i] > 0) {\n Controller(\n _avatar.owner()).mintReputation(_foundersReputationAmount[i], _founders[i], address(_avatar));\n }\n }\n return true;\n }\n\n /**\n * @dev Create a new organization\n * @param _orgName The name of the new organization\n * @param _tokenName The name of the token associated with the organization\n * @param _tokenSymbol The symbol of the token\n * @param _founders An array with the addresses of the founders of the organization\n * @param _foundersTokenAmount An array of amount of tokens that the founders\n * receive in the new organization\n * @param _foundersReputationAmount An array of amount of reputation that the\n * founders receive in the new organization\n * @param _cap token cap - 0 for no cap.\n * @return The address of the avatar of the controller\n */\n function forgeOrg (\n string calldata _orgName,\n string calldata _tokenName,\n string calldata _tokenSymbol,\n address[] calldata _founders,\n uint[] calldata _foundersTokenAmount,\n uint[] calldata _foundersReputationAmount,\n uint256 _cap\n )\n external\n returns(address)\n {\n //The call for the private function is needed to bypass a deep stack issues\n return _forgeOrg(\n _orgName,\n _tokenName,\n _tokenSymbol,\n _founders,\n _foundersTokenAmount,\n _foundersReputationAmount,\n _cap);\n }\n\n /**\n * @dev Set initial schemes for the organization.\n * @param _avatar organization avatar (returns from forgeOrg)\n * @param _schemes the schemes to register for the organization\n * @param _params the schemes's params\n * @param _permissions the schemes permissions.\n * @param _metaData dao meta data hash\n */\n function setSchemes (\n Avatar _avatar,\n address[] calldata _schemes,\n bytes32[] calldata _params,\n bytes4[] calldata _permissions,\n string calldata _metaData\n )\n external\n {\n // this action can only be executed by the account that holds the lock\n // for this controller\n require(locks[address(_avatar)] == msg.sender);\n // register initial schemes:\n Controller controller = Controller(_avatar.owner());\n for (uint256 i = 0; i < _schemes.length; i++) {\n controller.registerScheme(_schemes[i], _params[i], _permissions[i], address(_avatar));\n }\n controller.metaData(_metaData, _avatar);\n // Unregister self:\n controller.unregisterScheme(address(this), address(_avatar));\n // Remove lock:\n delete locks[address(_avatar)];\n emit InitialSchemesSet(address(_avatar));\n }\n\n /**\n * @dev Create a new organization\n * @param _orgName The name of the new organization\n * @param _tokenName The name of the token associated with the organization\n * @param _tokenSymbol The symbol of the token\n * @param _founders An array with the addresses of the founders of the organization\n * @param _foundersTokenAmount An array of amount of tokens that the founders\n * receive in the new organization\n * @param _foundersReputationAmount An array of amount of reputation that the\n * founders receive in the new organization\n * @param _cap token cap - 0 for no cap.\n * @return The address of the avatar of the controller\n */\n function _forgeOrg (\n string memory _orgName,\n string memory _tokenName,\n string memory _tokenSymbol,\n address[] memory _founders,\n uint[] memory _foundersTokenAmount,\n uint[] memory _foundersReputationAmount,\n uint256 _cap\n ) private returns(address)\n {\n // Create Token, Reputation and Avatar:\n require(_founders.length == _foundersTokenAmount.length);\n require(_founders.length == _foundersReputationAmount.length);\n require(_founders.length > 0);\n DAOToken nativeToken = new DAOToken(_tokenName, _tokenSymbol, _cap);\n Reputation nativeReputation = new Reputation();\n Avatar avatar = new Avatar(_orgName, nativeToken, nativeReputation);\n\n\n // Mint token and reputation for founders:\n for (uint256 i = 0; i < _founders.length; i++) {\n require(_founders[i] != address(0));\n if (_foundersTokenAmount[i] > 0) {\n nativeToken.mint(_founders[i], _foundersTokenAmount[i]);\n }\n if (_foundersReputationAmount[i] > 0) {\n nativeReputation.mint(_founders[i], _foundersReputationAmount[i]);\n }\n }\n\n Controller controller = Controller(controllerCreator.create(avatar));\n\n // Add the DAO to the tracking registry\n daoTracker.track(avatar, controller, \"\");\n\n // Transfer ownership:\n avatar.transferOwnership(address(controller));\n nativeToken.transferOwnership(address(controller));\n nativeReputation.transferOwnership(address(controller));\n\n locks[address(avatar)] = msg.sender;\n\n emit NewOrg (address(avatar));\n return (address(avatar));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol","exportedSymbols":{"ControllerCreator":[10961],"DaoCreator":[11454]},"id":11455,"nodeType":"SourceUnit","nodes":[{"id":10911,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:39"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":10912,"nodeType":"ImportDirective","scope":11455,"sourceUnit":12635,"src":"25:31:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":10913,"nodeType":"ImportDirective","scope":11455,"sourceUnit":1798,"src":"57:38:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","file":"../utils/DAOTracker.sol","id":10914,"nodeType":"ImportDirective","scope":11455,"sourceUnit":13648,"src":"96:33:39","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[1797],"contractKind":"contract","documentation":"@title ControllerCreator for creating a single controller.","fullyImplemented":true,"id":10961,"linearizedBaseContracts":[10961],"name":"ControllerCreator","nodeType":"ContractDefinition","nodes":[{"body":{"id":10959,"nodeType":"Block","src":"292:267:39","statements":[{"assignments":[10922],"declarations":[{"constant":false,"id":10922,"name":"controller","nodeType":"VariableDeclaration","scope":10959,"src":"302:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":10921,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"302:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":10927,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10925,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"341:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"326:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_contract$_Avatar_$337_$returns$_t_contract$_Controller_$1797_$","typeString":"function (contract Avatar) returns (contract Controller)"},"typeName":{"contractScope":null,"id":10923,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"330:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}},"id":10926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"326:23:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"302:47:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"385:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"385:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"405:1:39","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":10933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"397:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":10935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"397:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":10937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"416:10:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":10936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"409:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":10938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"409:18:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10940,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"437:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"429:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10928,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"359:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"359:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":10942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:87:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10943,"nodeType":"ExpressionStatement","src":"359:87:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10948,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21251,"src":"492:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}],"id":10947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"484:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10951,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"507:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"499:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10944,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"456:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"456:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"456:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10954,"nodeType":"ExpressionStatement","src":"456:60:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10956,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"541:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":10955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"533:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"533:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10920,"id":10958,"nodeType":"Return","src":"526:26:39"}]},"documentation":null,"id":10960,"implemented":true,"kind":"function","modifiers":[],"name":"create","nodeType":"FunctionDefinition","parameters":{"id":10917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10916,"name":"_avatar","nodeType":"VariableDeclaration","scope":10960,"src":"252:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10915,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"252:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"251:16:39"},"returnParameters":{"id":10920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10919,"name":"","nodeType":"VariableDeclaration","scope":10960,"src":"283:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10918,"name":"address","nodeType":"ElementaryTypeName","src":"283:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"282:9:39"},"scope":10961,"src":"236:323:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":11455,"src":"202:359:39"},{"baseContracts":[],"contractDependencies":[337,1873,15082],"contractKind":"contract","documentation":"@title Genesis Scheme that creates organizations","fullyImplemented":true,"id":11454,"linearizedBaseContracts":[11454],"name":"DaoCreator","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10965,"name":"locks","nodeType":"VariableDeclaration","scope":11454,"src":"650:38:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":10964,"keyType":{"id":10962,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"650:25:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":10963,"name":"address","nodeType":"ElementaryTypeName","src":"667:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":10969,"name":"NewOrg","nodeType":"EventDefinition","parameters":{"id":10968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10967,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10969,"src":"709:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10966,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"708:17:39"},"src":"695:31:39"},{"anonymous":false,"documentation":null,"id":10973,"name":"InitialSchemesSet","nodeType":"EventDefinition","parameters":{"id":10972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10971,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10973,"src":"756:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10970,"name":"address","nodeType":"ElementaryTypeName","src":"756:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"755:17:39"},"src":"731:42:39"},{"constant":false,"id":10975,"name":"controllerCreator","nodeType":"VariableDeclaration","scope":11454,"src":"779:43:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10974,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"779:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"private"},{"constant":false,"id":10977,"name":"daoTracker","nodeType":"VariableDeclaration","scope":11454,"src":"828:29:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10976,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"828:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"private"},{"body":{"id":11008,"nodeType":"Block","src":"945:197:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"id":10989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10985,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"963:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:39","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":10986,"name":"ControllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10961,"src":"985:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ControllerCreator_$10961_$","typeString":"type(contract ControllerCreator)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"985:20:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"963:42:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"955:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:51:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10991,"nodeType":"ExpressionStatement","src":"955:51:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"id":10997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10993,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1024:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:39","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":10994,"name":"DAOTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"1039:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DAOTracker_$13647_$","typeString":"type(contract DAOTracker)"}},"id":10996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1039:13:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1024:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10992,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1016:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1016:37:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10999,"nodeType":"ExpressionStatement","src":"1016:37:39"},{"expression":{"argumentTypes":null,"id":11002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11000,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"1063:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11001,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"1083:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"1063:38:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11003,"nodeType":"ExpressionStatement","src":"1063:38:39"},{"expression":{"argumentTypes":null,"id":11006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11004,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"1111:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11005,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1124:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1111:24:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11007,"nodeType":"ExpressionStatement","src":"1111:24:39"}]},"documentation":null,"id":11009,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":10982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10979,"name":"_controllerCreator","nodeType":"VariableDeclaration","scope":11009,"src":"876:36:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10978,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"876:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"internal"},{"constant":false,"id":10981,"name":"_daoTracker","nodeType":"VariableDeclaration","scope":11009,"src":"914:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10980,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"914:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"internal"}],"src":"875:62:39"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[],"src":"945:0:39"},"scope":11454,"src":"864:278:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11132,"nodeType":"Block","src":"1958:823:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11026,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"1976:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1976:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11028,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"1996:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1996:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1976:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1968:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1968:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11032,"nodeType":"ExpressionStatement","src":"1968:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11034,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2042:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2042:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11036,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2062:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2062:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2034:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2034:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11040,"nodeType":"ExpressionStatement","src":"2034:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11042,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2113:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2113:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2113:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11041,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2105:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2105:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11047,"nodeType":"ExpressionStatement","src":"2105:29:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11049,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"2152:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11053,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11051,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2166:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2158:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2158:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2152:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2179:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2179:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2152:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2144:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2144:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11058,"nodeType":"ExpressionStatement","src":"2144:46:39"},{"body":{"id":11128,"nodeType":"Block","src":"2298:456:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11071,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2320:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11073,"indexExpression":{"argumentTypes":null,"id":11072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2330:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2320:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2344:1:39","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":11074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2336:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2320:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2312:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2312:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11079,"nodeType":"ExpressionStatement","src":"2312:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11080,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2365:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11082,"indexExpression":{"argumentTypes":null,"id":11081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2386:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2365:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2365:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11103,"nodeType":"IfStatement","src":"2361:178:39","trueBody":{"id":11102,"nodeType":"Block","src":"2394:145:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11091,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2468:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11093,"indexExpression":{"argumentTypes":null,"id":11092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2489:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11094,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2493:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11096,"indexExpression":{"argumentTypes":null,"id":11095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2503:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2493:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11098,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2515:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2507:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11086,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2440:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2440:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11085,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2412:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"2412:55:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:112:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11101,"nodeType":"ExpressionStatement","src":"2412:112:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11104,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2556:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11106,"indexExpression":{"argumentTypes":null,"id":11105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2582:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2556:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2587:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2556:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11127,"nodeType":"IfStatement","src":"2552:192:39","trueBody":{"id":11126,"nodeType":"Block","src":"2590:154:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11115,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2668:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11117,"indexExpression":{"argumentTypes":null,"id":11116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2694:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2668:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11118,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2698:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11120,"indexExpression":{"argumentTypes":null,"id":11119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2708:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2698:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11122,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2720:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2712:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2712:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11110,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2636:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2636:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2636:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11109,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2608:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"2608:59:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:121:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11125,"nodeType":"ExpressionStatement","src":"2608:121:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2271:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11064,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2275:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2275:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2271:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11129,"initializationExpression":{"assignments":[11060],"declarations":[{"constant":false,"id":11060,"name":"i","nodeType":"VariableDeclaration","scope":11129,"src":"2256:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11062,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2268:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2256:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2293:3:39","subExpression":{"argumentTypes":null,"id":11067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2293:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11069,"nodeType":"ExpressionStatement","src":"2293:3:39"},"nodeType":"ForStatement","src":"2251:503:39"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":11130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2770:4:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11024,"id":11131,"nodeType":"Return","src":"2763:11:39"}]},"documentation":"@dev addFounders add founders to the organization.\n this function can be called only after forgeOrg and before setSchemes\n@param _avatar the organization avatar\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@return bool true or false","id":11133,"implemented":true,"kind":"function","modifiers":[],"name":"addFounders","nodeType":"FunctionDefinition","parameters":{"id":11021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11011,"name":"_avatar","nodeType":"VariableDeclaration","scope":11133,"src":"1767:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11010,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1767:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11014,"name":"_founders","nodeType":"VariableDeclaration","scope":11133,"src":"1791:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11012,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11013,"length":null,"nodeType":"ArrayTypeName","src":"1791:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11017,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1829:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11015,"name":"uint","nodeType":"ElementaryTypeName","src":"1829:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11016,"length":null,"nodeType":"ArrayTypeName","src":"1829:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11020,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1875:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11018,"name":"uint","nodeType":"ElementaryTypeName","src":"1875:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11019,"length":null,"nodeType":"ArrayTypeName","src":"1875:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1757:165:39"},"returnParameters":{"id":11024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11023,"name":"","nodeType":"VariableDeclaration","scope":11133,"src":"1948:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11022,"name":"bool","nodeType":"ElementaryTypeName","src":"1948:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1947:6:39"},"scope":11454,"src":"1736:1045:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11165,"nodeType":"Block","src":"3789:304:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11156,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11135,"src":"3913:8:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11157,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"3935:10:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11158,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"3959:12:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11159,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"3985:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":11160,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11145,"src":"4008:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11161,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11148,"src":"4042:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11162,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"4081:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11155,"name":"_forgeOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11453,"src":"3890:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (string memory,string memory,string memory,address[] memory,uint256[] memory,uint256[] memory,uint256) returns (address)"}},"id":11163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3890:196:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11154,"id":11164,"nodeType":"Return","src":"3883:203:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11166,"implemented":true,"kind":"function","modifiers":[],"name":"forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11135,"name":"_orgName","nodeType":"VariableDeclaration","scope":11166,"src":"3489:24:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11134,"name":"string","nodeType":"ElementaryTypeName","src":"3489:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11137,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11166,"src":"3523:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11136,"name":"string","nodeType":"ElementaryTypeName","src":"3523:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11139,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11166,"src":"3559:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11138,"name":"string","nodeType":"ElementaryTypeName","src":"3559:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11142,"name":"_founders","nodeType":"VariableDeclaration","scope":11166,"src":"3597:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11140,"name":"address","nodeType":"ElementaryTypeName","src":"3597:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11141,"length":null,"nodeType":"ArrayTypeName","src":"3597:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11145,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3635:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11143,"name":"uint","nodeType":"ElementaryTypeName","src":"3635:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11144,"length":null,"nodeType":"ArrayTypeName","src":"3635:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11148,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3681:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11146,"name":"uint","nodeType":"ElementaryTypeName","src":"3681:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11147,"length":null,"nodeType":"ArrayTypeName","src":"3681:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11150,"name":"_cap","nodeType":"VariableDeclaration","scope":11166,"src":"3732:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11149,"name":"uint256","nodeType":"ElementaryTypeName","src":"3732:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3479:271:39"},"returnParameters":{"id":11154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11153,"name":"","nodeType":"VariableDeclaration","scope":11166,"src":"3776:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11152,"name":"address","nodeType":"ElementaryTypeName","src":"3776:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3775:9:39"},"scope":11454,"src":"3461:632:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11262,"nodeType":"Block","src":"4669:697:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11183,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"4797:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11187,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11185,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4811:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4803:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4803:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4797:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11188,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4824:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4824:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4797:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4789:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4789:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11192,"nodeType":"ExpressionStatement","src":"4789:46:39"},{"assignments":[11194],"declarations":[{"constant":false,"id":11194,"name":"controller","nodeType":"VariableDeclaration","scope":11262,"src":"4882:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11193,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"4882:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11200,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11196,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4917:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4917:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4917:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11195,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4906:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4906:27:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"4882:51:39"},{"body":{"id":11229,"nodeType":"Block","src":"4989:110:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11215,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"5029:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11217,"indexExpression":{"argumentTypes":null,"id":11216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5038:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5029:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11218,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"5042:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":11220,"indexExpression":{"argumentTypes":null,"id":11219,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5050:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5042:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11221,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11177,"src":"5054:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"id":11223,"indexExpression":{"argumentTypes":null,"id":11222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5067:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5054:15:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11225,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5079:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5071:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5071:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11212,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5003:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"5003:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5003:85:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11228,"nodeType":"ExpressionStatement","src":"5003:85:39"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4963:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11206,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"4967:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4967:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4963:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11230,"initializationExpression":{"assignments":[11202],"declarations":[{"constant":false,"id":11202,"name":"i","nodeType":"VariableDeclaration","scope":11230,"src":"4948:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11204,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4960:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4948:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4984:3:39","subExpression":{"argumentTypes":null,"id":11209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4984:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11211,"nodeType":"ExpressionStatement","src":"4984:3:39"},"nodeType":"ForStatement","src":"4943:156:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11234,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"5128:9:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11235,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5139:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11231,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5108:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"metaData","nodeType":"MemberAccess","referencedDeclaration":1621,"src":"5108:19:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (string memory,contract Avatar) external returns (bool)"}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5108:39:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11237,"nodeType":"ExpressionStatement","src":"5108:39:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11242,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21253,"src":"5221:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}],"id":11241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5213:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11245,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5236:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5228:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11238,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5185:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"5185:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":11247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11248,"nodeType":"ExpressionStatement","src":"5185:60:39"},{"expression":{"argumentTypes":null,"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5279:30:39","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11249,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"5286:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11253,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11251,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5300:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5292:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5286:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"5279:30:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11258,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5350:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5342:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5342:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11256,"name":"InitialSchemesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"5324:17:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5324:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11261,"nodeType":"EmitStatement","src":"5319:40:39"}]},"documentation":"@dev Set initial schemes for the organization.\n@param _avatar organization avatar (returns from forgeOrg)\n@param _schemes the schemes to register for the organization\n@param _params the schemes's params\n@param _permissions the schemes permissions.\n@param _metaData dao meta data hash","id":11263,"implemented":true,"kind":"function","modifiers":[],"name":"setSchemes","nodeType":"FunctionDefinition","parameters":{"id":11180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11168,"name":"_avatar","nodeType":"VariableDeclaration","scope":11263,"src":"4479:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11167,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4479:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11171,"name":"_schemes","nodeType":"VariableDeclaration","scope":11263,"src":"4503:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"4503:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11170,"length":null,"nodeType":"ArrayTypeName","src":"4503:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11174,"name":"_params","nodeType":"VariableDeclaration","scope":11263,"src":"4540:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4540:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11173,"length":null,"nodeType":"ArrayTypeName","src":"4540:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11177,"name":"_permissions","nodeType":"VariableDeclaration","scope":11263,"src":"4576:30:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":11175,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4576:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":11176,"length":null,"nodeType":"ArrayTypeName","src":"4576:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11179,"name":"_metaData","nodeType":"VariableDeclaration","scope":11263,"src":"4616:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11178,"name":"string","nodeType":"ElementaryTypeName","src":"4616:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4469:178:39"},"returnParameters":{"id":11181,"nodeType":"ParameterList","parameters":[],"src":"4669:0:39"},"scope":11454,"src":"4449:917:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11452,"nodeType":"Block","src":"6368:1403:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11286,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6434:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6434:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11288,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6454:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6454:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6434:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6426:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6426:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11292,"nodeType":"ExpressionStatement","src":"6426:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11294,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6500:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6500:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11296,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"6520:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6520:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6500:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11293,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6492:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6492:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11300,"nodeType":"ExpressionStatement","src":"6492:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11302,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6571:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6571:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6571:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6563:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6563:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11307,"nodeType":"ExpressionStatement","src":"6563:29:39"},{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"name":"nativeToken","nodeType":"VariableDeclaration","scope":11452,"src":"6602:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":11308,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6602:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"internal"}],"id":11316,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11312,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"6638:10:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11313,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"6650:12:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11314,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"6664:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6625:12:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_DAOToken_$1873_$","typeString":"function (string memory,string memory,uint256) returns (contract DAOToken)"},"typeName":{"contractScope":null,"id":11310,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6629:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6625:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"VariableDeclarationStatement","src":"6602:67:39"},{"assignments":[11318],"declarations":[{"constant":false,"id":11318,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":11452,"src":"6679:27:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":11317,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6679:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"}],"id":11322,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":11320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6709:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () returns (contract Reputation)"},"typeName":{"contractScope":null,"id":11319,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6713:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}},"id":11321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6709:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"VariableDeclarationStatement","src":"6679:46:39"},{"assignments":[11324],"declarations":[{"constant":false,"id":11324,"name":"avatar","nodeType":"VariableDeclaration","scope":11452,"src":"6735:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11323,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6735:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":11331,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11327,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"6762:8:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11328,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"6772:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},{"argumentTypes":null,"id":11329,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"6785:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6751:10:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_contract$_DAOToken_$1873_$_t_contract$_Reputation_$15082_$returns$_t_contract$_Avatar_$337_$","typeString":"function (string memory,contract DAOToken,contract Reputation) returns (contract Avatar)"},"typeName":{"contractScope":null,"id":11325,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6755:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}},"id":11330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6751:51:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"6735:67:39"},{"body":{"id":11389,"nodeType":"Block","src":"6912:343:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11344,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6934:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11346,"indexExpression":{"argumentTypes":null,"id":11345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6944:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6934:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6958:1:39","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":11347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6950:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6950:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6934:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6926:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11352,"nodeType":"ExpressionStatement","src":"6926:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11353,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6979:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11355,"indexExpression":{"argumentTypes":null,"id":11354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7000:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6979:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7005:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6979:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11370,"nodeType":"IfStatement","src":"6975:121:39","trueBody":{"id":11369,"nodeType":"Block","src":"7008:88:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11361,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7043:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11363,"indexExpression":{"argumentTypes":null,"id":11362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7053:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7043:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11364,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"7057:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11366,"indexExpression":{"argumentTypes":null,"id":11365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7078:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7057:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11358,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7026:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":1872,"src":"7026:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7026:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11368,"nodeType":"ExpressionStatement","src":"7026:55:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11371,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7113:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11373,"indexExpression":{"argumentTypes":null,"id":11372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7139:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7144:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7113:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11388,"nodeType":"IfStatement","src":"7109:136:39","trueBody":{"id":11387,"nodeType":"Block","src":"7147:98:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11379,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7187:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11381,"indexExpression":{"argumentTypes":null,"id":11380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7197:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7187:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11382,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7201:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11384,"indexExpression":{"argumentTypes":null,"id":11383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7227:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11376,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7165:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"7165:21:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7165:65:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11386,"nodeType":"ExpressionStatement","src":"7165:65:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6885:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11337,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6889:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6889:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6885:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11390,"initializationExpression":{"assignments":[11333],"declarations":[{"constant":false,"id":11333,"name":"i","nodeType":"VariableDeclaration","scope":11390,"src":"6870:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11332,"name":"uint256","nodeType":"ElementaryTypeName","src":"6870:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11335,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6870:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6907:3:39","subExpression":{"argumentTypes":null,"id":11340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6907:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11342,"nodeType":"ExpressionStatement","src":"6907:3:39"},"nodeType":"ForStatement","src":"6865:390:39"},{"assignments":[11392],"declarations":[{"constant":false,"id":11392,"name":"controller","nodeType":"VariableDeclaration","scope":11452,"src":"7265:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11391,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"7265:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11399,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11396,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7325:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11394,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"7300:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"create","nodeType":"MemberAccess","referencedDeclaration":10960,"src":"7300:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$returns$_t_address_$","typeString":"function (contract Avatar) external returns (address)"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7300:32:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11393,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7289:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7289:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"7265:68:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11403,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7409:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":11404,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7417:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},{"argumentTypes":null,"hexValue":"","id":11405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:2:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":null,"id":11400,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"7392:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"track","nodeType":"MemberAccess","referencedDeclaration":13580,"src":"7392:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$_t_contract$_Controller_$1797_$_t_string_memory_ptr_$returns$__$","typeString":"function (contract Avatar,contract Controller,string memory) external"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7392:40:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11407,"nodeType":"ExpressionStatement","src":"7392:40:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11412,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7507:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7499:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11408,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7474:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7474:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7474:45:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11415,"nodeType":"ExpressionStatement","src":"7474:45:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11420,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7567:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7559:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7559:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11416,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7529:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7529:29:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7529:50:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11423,"nodeType":"ExpressionStatement","src":"7529:50:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11428,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7632:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7624:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7624:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11424,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7589:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7589:34:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:55:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11431,"nodeType":"ExpressionStatement","src":"7589:55:39"},{"expression":{"argumentTypes":null,"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11432,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"7655:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11436,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11434,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7669:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7661:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7661:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7655:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11437,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7680:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7680:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7655:35:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11440,"nodeType":"ExpressionStatement","src":"7655:35:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11443,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7722:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7714:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7714:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11441,"name":"NewOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"7706:6:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7706:24:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11446,"nodeType":"EmitStatement","src":"7701:29:39"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11448,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7756:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7748:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7748:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":11450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7747:17:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11284,"id":11451,"nodeType":"Return","src":"7740:24:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11453,"implemented":true,"kind":"function","modifiers":[],"name":"_forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11265,"name":"_orgName","nodeType":"VariableDeclaration","scope":11453,"src":"6089:22:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11264,"name":"string","nodeType":"ElementaryTypeName","src":"6089:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11267,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11453,"src":"6121:24:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11266,"name":"string","nodeType":"ElementaryTypeName","src":"6121:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11269,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11453,"src":"6155:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11268,"name":"string","nodeType":"ElementaryTypeName","src":"6155:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11272,"name":"_founders","nodeType":"VariableDeclaration","scope":11453,"src":"6191:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11270,"name":"address","nodeType":"ElementaryTypeName","src":"6191:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11271,"length":null,"nodeType":"ArrayTypeName","src":"6191:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11275,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6227:34:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11273,"name":"uint","nodeType":"ElementaryTypeName","src":"6227:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11274,"length":null,"nodeType":"ArrayTypeName","src":"6227:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11278,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6271:39:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11276,"name":"uint","nodeType":"ElementaryTypeName","src":"6271:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11277,"length":null,"nodeType":"ArrayTypeName","src":"6271:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11280,"name":"_cap","nodeType":"VariableDeclaration","scope":11453,"src":"6320:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11279,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6079:259:39"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"name":"","nodeType":"VariableDeclaration","scope":11453,"src":"6355:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11282,"name":"address","nodeType":"ElementaryTypeName","src":"6355:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6354:9:39"},"scope":11454,"src":"6060:1711:39","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":11455,"src":"623:7150:39"}],"src":"0:7774:39"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/DaoCreator.sol","exportedSymbols":{"ControllerCreator":[10961],"DaoCreator":[11454]},"id":11455,"nodeType":"SourceUnit","nodes":[{"id":10911,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:39"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":10912,"nodeType":"ImportDirective","scope":11455,"sourceUnit":12635,"src":"25:31:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":10913,"nodeType":"ImportDirective","scope":11455,"sourceUnit":1798,"src":"57:38:39","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/DAOTracker.sol","file":"../utils/DAOTracker.sol","id":10914,"nodeType":"ImportDirective","scope":11455,"sourceUnit":13648,"src":"96:33:39","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[1797],"contractKind":"contract","documentation":"@title ControllerCreator for creating a single controller.","fullyImplemented":true,"id":10961,"linearizedBaseContracts":[10961],"name":"ControllerCreator","nodeType":"ContractDefinition","nodes":[{"body":{"id":10959,"nodeType":"Block","src":"292:267:39","statements":[{"assignments":[10922],"declarations":[{"constant":false,"id":10922,"name":"controller","nodeType":"VariableDeclaration","scope":10959,"src":"302:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":10921,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"302:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":10927,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10925,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"341:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"326:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_contract$_Avatar_$337_$returns$_t_contract$_Controller_$1797_$","typeString":"function (contract Avatar) returns (contract Controller)"},"typeName":{"contractScope":null,"id":10923,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"330:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}},"id":10926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"326:23:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"302:47:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":10931,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"385:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":10932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"385:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10934,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"405:1:39","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":10933,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"397:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":10935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"397:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30783030303030303166","id":10937,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"416:10:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"0x0000001f"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"}],"id":10936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"409:6:39","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":10938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"409:18:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10940,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"437:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10939,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"429:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"429:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10928,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"359:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"359:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":10942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"359:87:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10943,"nodeType":"ExpressionStatement","src":"359:87:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10948,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21251,"src":"492:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}],"id":10947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"484:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10951,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10916,"src":"507:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":10950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"499:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":10944,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"456:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":10946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"456:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":10953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"456:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":10954,"nodeType":"ExpressionStatement","src":"456:60:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":10956,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10922,"src":"541:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":10955,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"533:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":10957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"533:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":10920,"id":10958,"nodeType":"Return","src":"526:26:39"}]},"documentation":null,"id":10960,"implemented":true,"kind":"function","modifiers":[],"name":"create","nodeType":"FunctionDefinition","parameters":{"id":10917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10916,"name":"_avatar","nodeType":"VariableDeclaration","scope":10960,"src":"252:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":10915,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"252:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"251:16:39"},"returnParameters":{"id":10920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10919,"name":"","nodeType":"VariableDeclaration","scope":10960,"src":"283:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10918,"name":"address","nodeType":"ElementaryTypeName","src":"283:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"282:9:39"},"scope":10961,"src":"236:323:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":11455,"src":"202:359:39"},{"baseContracts":[],"contractDependencies":[337,1873,15082],"contractKind":"contract","documentation":"@title Genesis Scheme that creates organizations","fullyImplemented":true,"id":11454,"linearizedBaseContracts":[11454],"name":"DaoCreator","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":10965,"name":"locks","nodeType":"VariableDeclaration","scope":11454,"src":"650:38:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"typeName":{"id":10964,"keyType":{"id":10962,"name":"address","nodeType":"ElementaryTypeName","src":"658:7:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"650:25:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"},"valueType":{"id":10963,"name":"address","nodeType":"ElementaryTypeName","src":"667:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":10969,"name":"NewOrg","nodeType":"EventDefinition","parameters":{"id":10968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10967,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10969,"src":"709:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10966,"name":"address","nodeType":"ElementaryTypeName","src":"709:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"708:17:39"},"src":"695:31:39"},{"anonymous":false,"documentation":null,"id":10973,"name":"InitialSchemesSet","nodeType":"EventDefinition","parameters":{"id":10972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10971,"indexed":false,"name":"_avatar","nodeType":"VariableDeclaration","scope":10973,"src":"756:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":10970,"name":"address","nodeType":"ElementaryTypeName","src":"756:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"755:17:39"},"src":"731:42:39"},{"constant":false,"id":10975,"name":"controllerCreator","nodeType":"VariableDeclaration","scope":11454,"src":"779:43:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10974,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"779:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"private"},{"constant":false,"id":10977,"name":"daoTracker","nodeType":"VariableDeclaration","scope":11454,"src":"828:29:39","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10976,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"828:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"private"},{"body":{"id":11008,"nodeType":"Block","src":"945:197:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"id":10989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10985,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"963:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10987,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1003:1:39","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":10986,"name":"ControllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10961,"src":"985:17:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ControllerCreator_$10961_$","typeString":"type(contract ControllerCreator)"}},"id":10988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"985:20:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"963:42:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10984,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"955:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"955:51:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10991,"nodeType":"ExpressionStatement","src":"955:51:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"id":10997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":10993,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1024:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":10995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1050:1:39","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":10994,"name":"DAOTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13647,"src":"1039:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_DAOTracker_$13647_$","typeString":"type(contract DAOTracker)"}},"id":10996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1039:13:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1024:28:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":10992,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1016:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":10998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1016:37:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":10999,"nodeType":"ExpressionStatement","src":"1016:37:39"},{"expression":{"argumentTypes":null,"id":11002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11000,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"1063:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11001,"name":"_controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10979,"src":"1083:18:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"src":"1063:38:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11003,"nodeType":"ExpressionStatement","src":"1063:38:39"},{"expression":{"argumentTypes":null,"id":11006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11004,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"1111:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11005,"name":"_daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10981,"src":"1124:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"src":"1111:24:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11007,"nodeType":"ExpressionStatement","src":"1111:24:39"}]},"documentation":null,"id":11009,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":10982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":10979,"name":"_controllerCreator","nodeType":"VariableDeclaration","scope":11009,"src":"876:36:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"},"typeName":{"contractScope":null,"id":10978,"name":"ControllerCreator","nodeType":"UserDefinedTypeName","referencedDeclaration":10961,"src":"876:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"value":null,"visibility":"internal"},{"constant":false,"id":10981,"name":"_daoTracker","nodeType":"VariableDeclaration","scope":11009,"src":"914:22:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"},"typeName":{"contractScope":null,"id":10980,"name":"DAOTracker","nodeType":"UserDefinedTypeName","referencedDeclaration":13647,"src":"914:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"value":null,"visibility":"internal"}],"src":"875:62:39"},"returnParameters":{"id":10983,"nodeType":"ParameterList","parameters":[],"src":"945:0:39"},"scope":11454,"src":"864:278:39","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11132,"nodeType":"Block","src":"1958:823:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11026,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"1976:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1976:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11028,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"1996:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1996:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1976:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11025,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1968:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1968:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11032,"nodeType":"ExpressionStatement","src":"1968:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11034,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2042:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2042:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11036,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2062:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2062:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2042:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11033,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2034:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2034:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11040,"nodeType":"ExpressionStatement","src":"2034:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11042,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2113:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2113:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2132:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2113:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11041,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2105:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2105:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11047,"nodeType":"ExpressionStatement","src":"2105:29:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11049,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"2152:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11053,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11051,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2166:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11050,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2158:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2158:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2152:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2179:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2179:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2152:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11048,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2144:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2144:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11058,"nodeType":"ExpressionStatement","src":"2144:46:39"},{"body":{"id":11128,"nodeType":"Block","src":"2298:456:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11071,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2320:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11073,"indexExpression":{"argumentTypes":null,"id":11072,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2330:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2320:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2344:1:39","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":11074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2336:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2336:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2320:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11070,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2312:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2312:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11079,"nodeType":"ExpressionStatement","src":"2312:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11080,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2365:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11082,"indexExpression":{"argumentTypes":null,"id":11081,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2386:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2365:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2391:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2365:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11103,"nodeType":"IfStatement","src":"2361:178:39","trueBody":{"id":11102,"nodeType":"Block","src":"2394:145:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11091,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11017,"src":"2468:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11093,"indexExpression":{"argumentTypes":null,"id":11092,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2489:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2468:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11094,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2493:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11096,"indexExpression":{"argumentTypes":null,"id":11095,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2503:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2493:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11098,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2515:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11097,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2507:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2507:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11086,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2440:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2440:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11085,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2412:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintTokens","nodeType":"MemberAccess","referencedDeclaration":796,"src":"2412:55:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2412:112:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11101,"nodeType":"ExpressionStatement","src":"2412:112:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11104,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2556:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11106,"indexExpression":{"argumentTypes":null,"id":11105,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2582:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2556:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2587:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2556:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11127,"nodeType":"IfStatement","src":"2552:192:39","trueBody":{"id":11126,"nodeType":"Block","src":"2590:154:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11115,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11020,"src":"2668:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":11117,"indexExpression":{"argumentTypes":null,"id":11116,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2694:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2668:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11118,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2698:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11120,"indexExpression":{"argumentTypes":null,"id":11119,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2708:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2698:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11122,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2720:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11121,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2712:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2712:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11110,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11011,"src":"2636:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2636:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11112,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2636:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11109,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2608:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"2608:59:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":11124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2608:121:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11125,"nodeType":"ExpressionStatement","src":"2608:121:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11063,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2271:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11064,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11014,"src":"2275:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2275:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2271:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11129,"initializationExpression":{"assignments":[11060],"declarations":[{"constant":false,"id":11060,"name":"i","nodeType":"VariableDeclaration","scope":11129,"src":"2256:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11059,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11062,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2268:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2256:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2293:3:39","subExpression":{"argumentTypes":null,"id":11067,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11060,"src":"2293:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11069,"nodeType":"ExpressionStatement","src":"2293:3:39"},"nodeType":"ForStatement","src":"2251:503:39"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":11130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2770:4:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":11024,"id":11131,"nodeType":"Return","src":"2763:11:39"}]},"documentation":"@dev addFounders add founders to the organization.\n this function can be called only after forgeOrg and before setSchemes\n@param _avatar the organization avatar\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@return bool true or false","id":11133,"implemented":true,"kind":"function","modifiers":[],"name":"addFounders","nodeType":"FunctionDefinition","parameters":{"id":11021,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11011,"name":"_avatar","nodeType":"VariableDeclaration","scope":11133,"src":"1767:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11010,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1767:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11014,"name":"_founders","nodeType":"VariableDeclaration","scope":11133,"src":"1791:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11012,"name":"address","nodeType":"ElementaryTypeName","src":"1791:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11013,"length":null,"nodeType":"ArrayTypeName","src":"1791:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11017,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1829:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11015,"name":"uint","nodeType":"ElementaryTypeName","src":"1829:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11016,"length":null,"nodeType":"ArrayTypeName","src":"1829:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11020,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11133,"src":"1875:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11018,"name":"uint","nodeType":"ElementaryTypeName","src":"1875:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11019,"length":null,"nodeType":"ArrayTypeName","src":"1875:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1757:165:39"},"returnParameters":{"id":11024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11023,"name":"","nodeType":"VariableDeclaration","scope":11133,"src":"1948:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11022,"name":"bool","nodeType":"ElementaryTypeName","src":"1948:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1947:6:39"},"scope":11454,"src":"1736:1045:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11165,"nodeType":"Block","src":"3789:304:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11156,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11135,"src":"3913:8:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11157,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11137,"src":"3935:10:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11158,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11139,"src":"3959:12:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11159,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11142,"src":"3985:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"argumentTypes":null,"id":11160,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11145,"src":"4008:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11161,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11148,"src":"4042:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},{"argumentTypes":null,"id":11162,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11150,"src":"4081:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11155,"name":"_forgeOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11453,"src":"3890:9:39","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_uint256_$returns$_t_address_$","typeString":"function (string memory,string memory,string memory,address[] memory,uint256[] memory,uint256[] memory,uint256) returns (address)"}},"id":11163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3890:196:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":11154,"id":11164,"nodeType":"Return","src":"3883:203:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11166,"implemented":true,"kind":"function","modifiers":[],"name":"forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11135,"name":"_orgName","nodeType":"VariableDeclaration","scope":11166,"src":"3489:24:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11134,"name":"string","nodeType":"ElementaryTypeName","src":"3489:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11137,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11166,"src":"3523:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11136,"name":"string","nodeType":"ElementaryTypeName","src":"3523:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11139,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11166,"src":"3559:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11138,"name":"string","nodeType":"ElementaryTypeName","src":"3559:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11142,"name":"_founders","nodeType":"VariableDeclaration","scope":11166,"src":"3597:28:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11140,"name":"address","nodeType":"ElementaryTypeName","src":"3597:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11141,"length":null,"nodeType":"ArrayTypeName","src":"3597:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11145,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3635:36:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11143,"name":"uint","nodeType":"ElementaryTypeName","src":"3635:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11144,"length":null,"nodeType":"ArrayTypeName","src":"3635:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11148,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11166,"src":"3681:41:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11146,"name":"uint","nodeType":"ElementaryTypeName","src":"3681:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11147,"length":null,"nodeType":"ArrayTypeName","src":"3681:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11150,"name":"_cap","nodeType":"VariableDeclaration","scope":11166,"src":"3732:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11149,"name":"uint256","nodeType":"ElementaryTypeName","src":"3732:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3479:271:39"},"returnParameters":{"id":11154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11153,"name":"","nodeType":"VariableDeclaration","scope":11166,"src":"3776:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11152,"name":"address","nodeType":"ElementaryTypeName","src":"3776:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3775:9:39"},"scope":11454,"src":"3461:632:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11262,"nodeType":"Block","src":"4669:697:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11183,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"4797:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11187,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11185,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4811:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4803:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4803:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4797:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11188,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4824:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4824:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4797:37:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4789:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4789:46:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11192,"nodeType":"ExpressionStatement","src":"4789:46:39"},{"assignments":[11194],"declarations":[{"constant":false,"id":11194,"name":"controller","nodeType":"VariableDeclaration","scope":11262,"src":"4882:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11193,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"4882:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11200,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11196,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"4917:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4917:13:39","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4917:15:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11195,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4906:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4906:27:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"4882:51:39"},{"body":{"id":11229,"nodeType":"Block","src":"4989:110:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11215,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"5029:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11217,"indexExpression":{"argumentTypes":null,"id":11216,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5038:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5029:11:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11218,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11174,"src":"5042:7:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[] calldata"}},"id":11220,"indexExpression":{"argumentTypes":null,"id":11219,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5050:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5042:10:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11221,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11177,"src":"5054:12:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[] calldata"}},"id":11223,"indexExpression":{"argumentTypes":null,"id":11222,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"5067:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5054:15:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11225,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5079:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5071:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5071:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11212,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5003:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"5003:25:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":11227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5003:85:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11228,"nodeType":"ExpressionStatement","src":"5003:85:39"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11205,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4963:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11206,"name":"_schemes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11171,"src":"4967:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":11207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4967:15:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4963:19:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11230,"initializationExpression":{"assignments":[11202],"declarations":[{"constant":false,"id":11202,"name":"i","nodeType":"VariableDeclaration","scope":11230,"src":"4948:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11201,"name":"uint256","nodeType":"ElementaryTypeName","src":"4948:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11204,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4960:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"4948:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4984:3:39","subExpression":{"argumentTypes":null,"id":11209,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11202,"src":"4984:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11211,"nodeType":"ExpressionStatement","src":"4984:3:39"},"nodeType":"ForStatement","src":"4943:156:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11234,"name":"_metaData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11179,"src":"5128:9:39","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},{"argumentTypes":null,"id":11235,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5139:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11231,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5108:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"metaData","nodeType":"MemberAccess","referencedDeclaration":1621,"src":"5108:19:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_string_memory_ptr_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (string memory,contract Avatar) external returns (bool)"}},"id":11236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5108:39:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11237,"nodeType":"ExpressionStatement","src":"5108:39:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11242,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21253,"src":"5221:4:39","typeDescriptions":{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_DaoCreator_$11454","typeString":"contract DaoCreator"}],"id":11241,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5213:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5213:13:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11245,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5236:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5228:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5228:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11238,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11194,"src":"5185:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"5185:27:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":11247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:60:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11248,"nodeType":"ExpressionStatement","src":"5185:60:39"},{"expression":{"argumentTypes":null,"id":11254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"5279:30:39","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11249,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"5286:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11253,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11251,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5300:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5292:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5292:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5286:23:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11255,"nodeType":"ExpressionStatement","src":"5279:30:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11258,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11168,"src":"5350:7:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5342:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5342:16:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11256,"name":"InitialSchemesSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10973,"src":"5324:17:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5324:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11261,"nodeType":"EmitStatement","src":"5319:40:39"}]},"documentation":"@dev Set initial schemes for the organization.\n@param _avatar organization avatar (returns from forgeOrg)\n@param _schemes the schemes to register for the organization\n@param _params the schemes's params\n@param _permissions the schemes permissions.\n@param _metaData dao meta data hash","id":11263,"implemented":true,"kind":"function","modifiers":[],"name":"setSchemes","nodeType":"FunctionDefinition","parameters":{"id":11180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11168,"name":"_avatar","nodeType":"VariableDeclaration","scope":11263,"src":"4479:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11167,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4479:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11171,"name":"_schemes","nodeType":"VariableDeclaration","scope":11263,"src":"4503:27:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11169,"name":"address","nodeType":"ElementaryTypeName","src":"4503:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11170,"length":null,"nodeType":"ArrayTypeName","src":"4503:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11174,"name":"_params","nodeType":"VariableDeclaration","scope":11263,"src":"4540:26:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_calldata_ptr","typeString":"bytes32[]"},"typeName":{"baseType":{"id":11172,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4540:7:39","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11173,"length":null,"nodeType":"ArrayTypeName","src":"4540:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes32_$dyn_storage_ptr","typeString":"bytes32[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11177,"name":"_permissions","nodeType":"VariableDeclaration","scope":11263,"src":"4576:30:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_calldata_ptr","typeString":"bytes4[]"},"typeName":{"baseType":{"id":11175,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4576:6:39","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"id":11176,"length":null,"nodeType":"ArrayTypeName","src":"4576:8:39","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes4_$dyn_storage_ptr","typeString":"bytes4[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11179,"name":"_metaData","nodeType":"VariableDeclaration","scope":11263,"src":"4616:25:39","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":11178,"name":"string","nodeType":"ElementaryTypeName","src":"4616:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4469:178:39"},"returnParameters":{"id":11181,"nodeType":"ParameterList","parameters":[],"src":"4669:0:39"},"scope":11454,"src":"4449:917:39","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":11452,"nodeType":"Block","src":"6368:1403:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11286,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6434:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6434:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11288,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6454:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6454:27:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6434:47:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6426:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6426:56:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11292,"nodeType":"ExpressionStatement","src":"6426:56:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11294,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6500:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6500:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11296,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"6520:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6520:32:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6500:52:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11293,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6492:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6492:61:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11300,"nodeType":"ExpressionStatement","src":"6492:61:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11302,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6571:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6571:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6571:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11301,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6563:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6563:29:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11307,"nodeType":"ExpressionStatement","src":"6563:29:39"},{"assignments":[11309],"declarations":[{"constant":false,"id":11309,"name":"nativeToken","nodeType":"VariableDeclaration","scope":11452,"src":"6602:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},"typeName":{"contractScope":null,"id":11308,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6602:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"value":null,"visibility":"internal"}],"id":11316,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11312,"name":"_tokenName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11267,"src":"6638:10:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11313,"name":"_tokenSymbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11269,"src":"6650:12:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11314,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11280,"src":"6664:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":11311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6625:12:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$_t_contract$_DAOToken_$1873_$","typeString":"function (string memory,string memory,uint256) returns (contract DAOToken)"},"typeName":{"contractScope":null,"id":11310,"name":"DAOToken","nodeType":"UserDefinedTypeName","referencedDeclaration":1873,"src":"6629:8:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}}},"id":11315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6625:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"nodeType":"VariableDeclarationStatement","src":"6602:67:39"},{"assignments":[11318],"declarations":[{"constant":false,"id":11318,"name":"nativeReputation","nodeType":"VariableDeclaration","scope":11452,"src":"6679:27:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":11317,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6679:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"}],"id":11322,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":11320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6709:14:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () returns (contract Reputation)"},"typeName":{"contractScope":null,"id":11319,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"6713:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}},"id":11321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6709:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"VariableDeclarationStatement","src":"6679:46:39"},{"assignments":[11324],"declarations":[{"constant":false,"id":11324,"name":"avatar","nodeType":"VariableDeclaration","scope":11452,"src":"6735:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11323,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6735:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":11331,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11327,"name":"_orgName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11265,"src":"6762:8:39","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"argumentTypes":null,"id":11328,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"6772:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},{"argumentTypes":null,"id":11329,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"6785:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"},{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}],"id":11326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"6751:10:39","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_string_memory_ptr_$_t_contract$_DAOToken_$1873_$_t_contract$_Reputation_$15082_$returns$_t_contract$_Avatar_$337_$","typeString":"function (string memory,contract DAOToken,contract Reputation) returns (contract Avatar)"},"typeName":{"contractScope":null,"id":11325,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6755:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}},"id":11330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6751:51:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"6735:67:39"},{"body":{"id":11389,"nodeType":"Block","src":"6912:343:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11344,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6934:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11346,"indexExpression":{"argumentTypes":null,"id":11345,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6944:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6934:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6958:1:39","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":11347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6950:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6950:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6934:26:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6926:7:39","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6926:35:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11352,"nodeType":"ExpressionStatement","src":"6926:35:39"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11353,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"6979:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11355,"indexExpression":{"argumentTypes":null,"id":11354,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7000:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6979:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7005:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6979:27:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11370,"nodeType":"IfStatement","src":"6975:121:39","trueBody":{"id":11369,"nodeType":"Block","src":"7008:88:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11361,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7043:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11363,"indexExpression":{"argumentTypes":null,"id":11362,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7053:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7043:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11364,"name":"_foundersTokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11275,"src":"7057:20:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11366,"indexExpression":{"argumentTypes":null,"id":11365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7078:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7057:23:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11358,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7026:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":1872,"src":"7026:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7026:55:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11368,"nodeType":"ExpressionStatement","src":"7026:55:39"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11371,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7113:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11373,"indexExpression":{"argumentTypes":null,"id":11372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7139:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":11374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7144:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7113:32:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11388,"nodeType":"IfStatement","src":"7109:136:39","trueBody":{"id":11387,"nodeType":"Block","src":"7147:98:39","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11379,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"7187:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11381,"indexExpression":{"argumentTypes":null,"id":11380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7197:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7187:12:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11382,"name":"_foundersReputationAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11278,"src":"7201:25:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":11384,"indexExpression":{"argumentTypes":null,"id":11383,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"7227:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7201:28:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":11376,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7165:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"7165:21:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":11385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7165:65:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11386,"nodeType":"ExpressionStatement","src":"7165:65:39"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":11339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11336,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6885:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11337,"name":"_founders","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11272,"src":"6889:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":11338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6889:16:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6885:20:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11390,"initializationExpression":{"assignments":[11333],"declarations":[{"constant":false,"id":11333,"name":"i","nodeType":"VariableDeclaration","scope":11390,"src":"6870:9:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11332,"name":"uint256","nodeType":"ElementaryTypeName","src":"6870:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":11335,"initialValue":{"argumentTypes":null,"hexValue":"30","id":11334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6882:1:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6870:13:39"},"loopExpression":{"expression":{"argumentTypes":null,"id":11341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6907:3:39","subExpression":{"argumentTypes":null,"id":11340,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11333,"src":"6907:1:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11342,"nodeType":"ExpressionStatement","src":"6907:3:39"},"nodeType":"ForStatement","src":"6865:390:39"},{"assignments":[11392],"declarations":[{"constant":false,"id":11392,"name":"controller","nodeType":"VariableDeclaration","scope":11452,"src":"7265:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11391,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"7265:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11399,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11396,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7325:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":11394,"name":"controllerCreator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10975,"src":"7300:17:39","typeDescriptions":{"typeIdentifier":"t_contract$_ControllerCreator_$10961","typeString":"contract ControllerCreator"}},"id":11395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"create","nodeType":"MemberAccess","referencedDeclaration":10960,"src":"7300:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$returns$_t_address_$","typeString":"function (contract Avatar) external returns (address)"}},"id":11397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7300:32:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11393,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"7289:10:39","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7289:44:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"7265:68:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11403,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7409:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":11404,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7417:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},{"argumentTypes":null,"hexValue":"","id":11405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7429:2:39","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""},"value":""}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},{"typeIdentifier":"t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470","typeString":"literal_string \"\""}],"expression":{"argumentTypes":null,"id":11400,"name":"daoTracker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10977,"src":"7392:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOTracker_$13647","typeString":"contract DAOTracker"}},"id":11402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"track","nodeType":"MemberAccess","referencedDeclaration":13580,"src":"7392:16:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_Avatar_$337_$_t_contract$_Controller_$1797_$_t_string_memory_ptr_$returns$__$","typeString":"function (contract Avatar,contract Controller,string memory) external"}},"id":11406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7392:40:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11407,"nodeType":"ExpressionStatement","src":"7392:40:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11412,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7507:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7499:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7499:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11408,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7474:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7474:24:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7474:45:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11415,"nodeType":"ExpressionStatement","src":"7474:45:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11420,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7567:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7559:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7559:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11416,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11309,"src":"7529:11:39","typeDescriptions":{"typeIdentifier":"t_contract$_DAOToken_$1873","typeString":"contract DAOToken"}},"id":11418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7529:29:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7529:50:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11423,"nodeType":"ExpressionStatement","src":"7529:50:39"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11428,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11392,"src":"7632:10:39","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}],"id":11427,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7624:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7624:19:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":11424,"name":"nativeReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11318,"src":"7589:16:39","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":11426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferOwnership","nodeType":"MemberAccess","referencedDeclaration":20484,"src":"7589:34:39","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":11430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7589:55:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11431,"nodeType":"ExpressionStatement","src":"7589:55:39"},{"expression":{"argumentTypes":null,"id":11439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11432,"name":"locks","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10965,"src":"7655:5:39","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_address_$","typeString":"mapping(address => address)"}},"id":11436,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11434,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7669:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11433,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7661:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7661:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7655:22:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11437,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"7680:3:39","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7680:10:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7655:35:39","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11440,"nodeType":"ExpressionStatement","src":"7655:35:39"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11443,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7722:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11442,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7714:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7714:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":11441,"name":"NewOrg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":10969,"src":"7706:6:39","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":11445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7706:24:39","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11446,"nodeType":"EmitStatement","src":"7701:29:39"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11448,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"7756:6:39","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7748:7:39","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7748:15:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":11450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7747:17:39","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":11284,"id":11451,"nodeType":"Return","src":"7740:24:39"}]},"documentation":"@dev Create a new organization\n@param _orgName The name of the new organization\n@param _tokenName The name of the token associated with the organization\n@param _tokenSymbol The symbol of the token\n@param _founders An array with the addresses of the founders of the organization\n@param _foundersTokenAmount An array of amount of tokens that the founders\n receive in the new organization\n@param _foundersReputationAmount An array of amount of reputation that the\n founders receive in the new organization\n@param _cap token cap - 0 for no cap.\n@return The address of the avatar of the controller","id":11453,"implemented":true,"kind":"function","modifiers":[],"name":"_forgeOrg","nodeType":"FunctionDefinition","parameters":{"id":11281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11265,"name":"_orgName","nodeType":"VariableDeclaration","scope":11453,"src":"6089:22:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11264,"name":"string","nodeType":"ElementaryTypeName","src":"6089:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11267,"name":"_tokenName","nodeType":"VariableDeclaration","scope":11453,"src":"6121:24:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11266,"name":"string","nodeType":"ElementaryTypeName","src":"6121:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11269,"name":"_tokenSymbol","nodeType":"VariableDeclaration","scope":11453,"src":"6155:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11268,"name":"string","nodeType":"ElementaryTypeName","src":"6155:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":11272,"name":"_founders","nodeType":"VariableDeclaration","scope":11453,"src":"6191:26:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":11270,"name":"address","nodeType":"ElementaryTypeName","src":"6191:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":11271,"length":null,"nodeType":"ArrayTypeName","src":"6191:9:39","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11275,"name":"_foundersTokenAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6227:34:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11273,"name":"uint","nodeType":"ElementaryTypeName","src":"6227:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11274,"length":null,"nodeType":"ArrayTypeName","src":"6227:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11278,"name":"_foundersReputationAmount","nodeType":"VariableDeclaration","scope":11453,"src":"6271:39:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":11276,"name":"uint","nodeType":"ElementaryTypeName","src":"6271:4:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":11277,"length":null,"nodeType":"ArrayTypeName","src":"6271:6:39","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":11280,"name":"_cap","nodeType":"VariableDeclaration","scope":11453,"src":"6320:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11279,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6079:259:39"},"returnParameters":{"id":11284,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11283,"name":"","nodeType":"VariableDeclaration","scope":11453,"src":"6355:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11282,"name":"address","nodeType":"ElementaryTypeName","src":"6355:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6354:9:39"},"scope":11454,"src":"6060:1711:39","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":11455,"src":"623:7150:39"}],"src":"0:7774:39"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.178Z","devdoc":{"methods":{"addFounders(address,address[],uint256[],uint256[])":{"details":"addFounders add founders to the organization. this function can be called only after forgeOrg and before setSchemes","params":{"_avatar":"the organization avatar","_founders":"An array with the addresses of the founders of the organization","_foundersReputationAmount":"An array of amount of reputation that the founders receive in the new organization","_foundersTokenAmount":"An array of amount of tokens that the founders receive in the new organization"},"return":"bool true or false"},"forgeOrg(string,string,string,address[],uint256[],uint256[],uint256)":{"details":"Create a new organization","params":{"_cap":"token cap - 0 for no cap.","_founders":"An array with the addresses of the founders of the organization","_foundersReputationAmount":"An array of amount of reputation that the founders receive in the new organization","_foundersTokenAmount":"An array of amount of tokens that the founders receive in the new organization","_orgName":"The name of the new organization","_tokenName":"The name of the token associated with the organization","_tokenSymbol":"The symbol of the token"},"return":"The address of the avatar of the controller"},"setSchemes(address,address[],bytes32[],bytes4[],string)":{"details":"Set initial schemes for the organization.","params":{"_avatar":"organization avatar (returns from forgeOrg)","_metaData":"dao meta data hash","_params":"the schemes's params","_permissions":"the schemes permissions.","_schemes":"the schemes to register for the organization"}}},"title":"Genesis Scheme that creates organizations"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Debug.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Debug.json new file mode 100644 index 00000000..c518c287 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Debug.json @@ -0,0 +1 @@ +{"contractName":"Debug","abi":[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_msg","type":"address"}],"name":"LogAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_msg","type":"bool"}],"name":"LogBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"_msg","type":"bytes"}],"name":"LogBytes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_msg","type":"bytes32"}],"name":"LogBytes32","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"_msg","type":"int256"}],"name":"LogInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_msg","type":"string"}],"name":"LogString","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_msg","type":"uint256"}],"name":"LogUint","type":"event"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_msg\",\"type\":\"address\"}],\"name\":\"LogAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_msg\",\"type\":\"bool\"}],\"name\":\"LogBool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"LogBytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_msg\",\"type\":\"bytes32\"}],\"name\":\"LogBytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_msg\",\"type\":\"int256\"}],\"name\":\"LogInt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_msg\",\"type\":\"string\"}],\"name\":\"LogString\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_msg\",\"type\":\"uint256\"}],\"name\":\"LogUint\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/test/Debug.sol\":\"Debug\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/test/Debug.sol\":{\"keccak256\":\"0xb3562df919e581e90561050c58ac28579762878b5eccdf42ff62ecc293a7504b\",\"urls\":[\"bzz-raw://f0c96a48d8ec70ec0d7ee1acf3f1bcbeaa46e9669672217a6d878d64c7855eeb\",\"dweb:/ipfs/QmTPQqs7kLydbSaXFkdAKzC5h9MBofindPewSgjTpLLT25\"]}},\"version\":1}","sourceMap":"118:247:54:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;118:247:54;;;;;;;","deployedSourceMap":"118:247:54:-;;;;;","source":"pragma solidity ^0.5.11;\n/*\n A contract you can inherit from that has some useful Events to print statements.\n*/\n\n\ncontract Debug {\n event LogAddress(address _msg);\n event LogInt(int _msg);\n event LogString(string _msg);\n event LogUint(uint256 _msg);\n event LogBytes(bytes _msg);\n event LogBytes32(bytes32 _msg);\n event LogBool(bool _msg);\n}\n","sourcePath":"@daostack/infra/contracts/test/Debug.sol","ast":{"absolutePath":"@daostack/infra/contracts/test/Debug.sol","exportedSymbols":{"Debug":[15526]},"id":15527,"nodeType":"SourceUnit","nodes":[{"id":15497,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:54"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":15526,"linearizedBaseContracts":[15526],"name":"Debug","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":15501,"name":"LogAddress","nodeType":"EventDefinition","parameters":{"id":15500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15499,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15501,"src":"156:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15498,"name":"address","nodeType":"ElementaryTypeName","src":"156:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"155:14:54"},"src":"139:31:54"},{"anonymous":false,"documentation":null,"id":15505,"name":"LogInt","nodeType":"EventDefinition","parameters":{"id":15504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15503,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15505,"src":"188:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15502,"name":"int","nodeType":"ElementaryTypeName","src":"188:3:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"187:10:54"},"src":"175:23:54"},{"anonymous":false,"documentation":null,"id":15509,"name":"LogString","nodeType":"EventDefinition","parameters":{"id":15508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15507,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15509,"src":"219:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15506,"name":"string","nodeType":"ElementaryTypeName","src":"219:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"218:13:54"},"src":"203:29:54"},{"anonymous":false,"documentation":null,"id":15513,"name":"LogUint","nodeType":"EventDefinition","parameters":{"id":15512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15511,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15513,"src":"251:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15510,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"250:14:54"},"src":"237:28:54"},{"anonymous":false,"documentation":null,"id":15517,"name":"LogBytes","nodeType":"EventDefinition","parameters":{"id":15516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15515,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15517,"src":"285:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15514,"name":"bytes","nodeType":"ElementaryTypeName","src":"285:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"284:12:54"},"src":"270:27:54"},{"anonymous":false,"documentation":null,"id":15521,"name":"LogBytes32","nodeType":"EventDefinition","parameters":{"id":15520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15519,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15521,"src":"319:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"318:14:54"},"src":"302:31:54"},{"anonymous":false,"documentation":null,"id":15525,"name":"LogBool","nodeType":"EventDefinition","parameters":{"id":15524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15523,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15525,"src":"352:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15522,"name":"bool","nodeType":"ElementaryTypeName","src":"352:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"351:11:54"},"src":"338:25:54"}],"scope":15527,"src":"118:247:54"}],"src":"0:366:54"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/test/Debug.sol","exportedSymbols":{"Debug":[15526]},"id":15527,"nodeType":"SourceUnit","nodes":[{"id":15497,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:54"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":15526,"linearizedBaseContracts":[15526],"name":"Debug","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":15501,"name":"LogAddress","nodeType":"EventDefinition","parameters":{"id":15500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15499,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15501,"src":"156:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15498,"name":"address","nodeType":"ElementaryTypeName","src":"156:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"155:14:54"},"src":"139:31:54"},{"anonymous":false,"documentation":null,"id":15505,"name":"LogInt","nodeType":"EventDefinition","parameters":{"id":15504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15503,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15505,"src":"188:8:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15502,"name":"int","nodeType":"ElementaryTypeName","src":"188:3:54","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"187:10:54"},"src":"175:23:54"},{"anonymous":false,"documentation":null,"id":15509,"name":"LogString","nodeType":"EventDefinition","parameters":{"id":15508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15507,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15509,"src":"219:11:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":15506,"name":"string","nodeType":"ElementaryTypeName","src":"219:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"218:13:54"},"src":"203:29:54"},{"anonymous":false,"documentation":null,"id":15513,"name":"LogUint","nodeType":"EventDefinition","parameters":{"id":15512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15511,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15513,"src":"251:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15510,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"250:14:54"},"src":"237:28:54"},{"anonymous":false,"documentation":null,"id":15517,"name":"LogBytes","nodeType":"EventDefinition","parameters":{"id":15516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15515,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15517,"src":"285:10:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":15514,"name":"bytes","nodeType":"ElementaryTypeName","src":"285:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"284:12:54"},"src":"270:27:54"},{"anonymous":false,"documentation":null,"id":15521,"name":"LogBytes32","nodeType":"EventDefinition","parameters":{"id":15520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15519,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15521,"src":"319:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15518,"name":"bytes32","nodeType":"ElementaryTypeName","src":"319:7:54","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"318:14:54"},"src":"302:31:54"},{"anonymous":false,"documentation":null,"id":15525,"name":"LogBool","nodeType":"EventDefinition","parameters":{"id":15524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15523,"indexed":false,"name":"_msg","nodeType":"VariableDeclaration","scope":15525,"src":"352:9:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15522,"name":"bool","nodeType":"ElementaryTypeName","src":"352:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"351:11:54"},"src":"338:25:54"}],"scope":15527,"src":"118:247:54"}],"src":"0:366:54"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.237Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ECDSA.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ECDSA.json new file mode 100644 index 00000000..eff9a80e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ECDSA.json @@ -0,0 +1 @@ +{"contractName":"ECDSA","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * These functions can be used to verify that a message was signed by the holder of the private keys of a given address.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":\"ECDSA\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]}},\"version\":1}","sourceMap":"231:3417:64:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","deployedSourceMap":"231:3417:64:-;;;;;;;;","source":"pragma solidity ^0.5.0;\n\n/**\n * @dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n *\n * These functions can be used to verify that a message was signed by the holder\n * of the private keys of a given address.\n */\nlibrary ECDSA {\n /**\n * @dev Returns the address that signed a hashed message (`hash`) with\n * `signature`. This address can then be used for verification purposes.\n *\n * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\n * this function rejects them by requiring the `s` value to be in the lower\n * half order, and the `v` value to be either 27 or 28.\n *\n * NOTE: This call _does not revert_ if the signature is invalid, or\n * if the signer is otherwise unable to be retrieved. In those scenarios,\n * the zero address is returned.\n *\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\n * verification to be secure: it is possible to craft signatures that\n * recover to arbitrary addresses for non-hashed data. A safe way to ensure\n * this is by receiving a hash of the original message (which may otherwise\n * be too long), and then calling {toEthSignedMessageHash} on it.\n */\n function recover(bytes32 hash, bytes memory signature) internal pure returns (address) {\n // Check the signature length\n if (signature.length != 65) {\n return (address(0));\n }\n\n // Divide the signature in r, s and v variables\n bytes32 r;\n bytes32 s;\n uint8 v;\n\n // ecrecover takes the signature parameters, and the only way to get them\n // currently is to use assembly.\n // solhint-disable-next-line no-inline-assembly\n assembly {\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n }\n\n // EIP-2 still allows signature malleability for ecrecover(). Remove this possibility and make the signature\n // unique. Appendix F in the Ethereum Yellow paper (https://ethereum.github.io/yellowpaper/paper.pdf), defines\n // the valid range for s in (281): 0 < s < secp256k1n ÷ 2 + 1, and for v in (282): v ∈ {27, 28}. Most\n // signatures from current libraries generate a unique signature with an s-value in the lower half order.\n //\n // If your library generates malleable signatures, such as s-values in the upper range, calculate a new s-value\n // with 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141 - s1 and flip v from 27 to 28 or\n // vice versa. If your library also generates signatures with 0/1 for v instead 27/28, add 27 to v to accept\n // these malleable signatures as well.\n if (uint256(s) > 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0) {\n return address(0);\n }\n\n if (v != 27 && v != 28) {\n return address(0);\n }\n\n // If the signature is valid (and not malleable), return the signer address\n return ecrecover(hash, v, r, s);\n }\n\n /**\n * @dev Returns an Ethereum Signed Message, created from a `hash`. This\n * replicates the behavior of the\n * https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]\n * JSON-RPC method.\n *\n * See {recover}.\n */\n function toEthSignedMessageHash(bytes32 hash) internal pure returns (bytes32) {\n // 32 is the length in bytes of hash,\n // enforced by the type signature above\n return keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", hash));\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[20139]},"id":20140,"nodeType":"SourceUnit","nodes":[{"id":20060,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:64"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n * These functions can be used to verify that a message was signed by the holder\nof the private keys of a given address.","fullyImplemented":true,"id":20139,"linearizedBaseContracts":[20139],"name":"ECDSA","nodeType":"ContractDefinition","nodes":[{"body":{"id":20121,"nodeType":"Block","src":"1313:1804:64","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":20069,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20064,"src":"1365:9:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":20070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1365:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"3635","id":20071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:2:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"1365:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20079,"nodeType":"IfStatement","src":"1361:72:64","trueBody":{"id":20078,"nodeType":"Block","src":"1389:44:64","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1419:1:64","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":20073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1411:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1411:10:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":20076,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1410:12:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20068,"id":20077,"nodeType":"Return","src":"1403:19:64"}]}},{"assignments":[20081],"declarations":[{"constant":false,"id":20081,"name":"r","nodeType":"VariableDeclaration","scope":20121,"src":"1499:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1499:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":20082,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1499:9:64"},{"assignments":[20084],"declarations":[{"constant":false,"id":20084,"name":"s","nodeType":"VariableDeclaration","scope":20121,"src":"1518:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1518:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":20085,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1518:9:64"},{"assignments":[20087],"declarations":[{"constant":false,"id":20087,"name":"v","nodeType":"VariableDeclaration","scope":20121,"src":"1537:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20086,"name":"uint8","nodeType":"ElementaryTypeName","src":"1537:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"id":20088,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1537:7:64"},{"externalReferences":[{"r":{"declaration":20081,"isOffset":false,"isSlot":false,"src":"1757:1:64","valueSize":1}},{"signature":{"declaration":20064,"isOffset":false,"isSlot":false,"src":"1772:9:64","valueSize":1}},{"v":{"declaration":20087,"isOffset":false,"isSlot":false,"src":"1847:1:64","valueSize":1}},{"s":{"declaration":20084,"isOffset":false,"isSlot":false,"src":"1802:1:64","valueSize":1}},{"signature":{"declaration":20064,"isOffset":false,"isSlot":false,"src":"1817:9:64","valueSize":1}},{"signature":{"declaration":20064,"isOffset":false,"isSlot":false,"src":"1870:9:64","valueSize":1}}],"id":20089,"nodeType":"InlineAssembly","operations":"{\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n}","src":"1734:164:64"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20091,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"2794:1:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2786:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":20092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2786:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":20093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:66:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"2786:79:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20100,"nodeType":"IfStatement","src":"2782:127:64","trueBody":{"id":20099,"nodeType":"Block","src":"2867:42:64","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2896:1:64","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":20095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2888:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2888:10:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20068,"id":20098,"nodeType":"Return","src":"2881:17:64"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20101,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"2923:1:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"3237","id":20102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:2:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2923:7:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20104,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"2934:1:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"3238","id":20105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2939:2:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"2934:7:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2923:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20113,"nodeType":"IfStatement","src":"2919:66:64","trueBody":{"id":20112,"nodeType":"Block","src":"2943:42:64","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2972:1:64","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":20108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2964:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2964:10:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20068,"id":20111,"nodeType":"Return","src":"2957:17:64"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20115,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3096:4:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":20116,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"3102:1:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":20117,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20081,"src":"3105:1:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":20118,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"3108:1:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20114,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21099,"src":"3086:9:64","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":20119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3086:24:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20068,"id":20120,"nodeType":"Return","src":"3079:31:64"}]},"documentation":"@dev Returns the address that signed a hashed message (`hash`) with\n`signature`. This address can then be used for verification purposes.\n * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\nthis function rejects them by requiring the `s` value to be in the lower\nhalf order, and the `v` value to be either 27 or 28.\n * NOTE: This call _does not revert_ if the signature is invalid, or\nif the signer is otherwise unable to be retrieved. In those scenarios,\nthe zero address is returned.\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\nverification to be secure: it is possible to craft signatures that\nrecover to arbitrary addresses for non-hashed data. A safe way to ensure\nthis is by receiving a hash of the original message (which may otherwise\nbe too long), and then calling {toEthSignedMessageHash} on it.","id":20122,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nodeType":"FunctionDefinition","parameters":{"id":20065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20062,"name":"hash","nodeType":"VariableDeclaration","scope":20122,"src":"1243:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1243:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":20064,"name":"signature","nodeType":"VariableDeclaration","scope":20122,"src":"1257:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20063,"name":"bytes","nodeType":"ElementaryTypeName","src":"1257:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"1242:38:64"},"returnParameters":{"id":20068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20067,"name":"","nodeType":"VariableDeclaration","scope":20122,"src":"1304:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20066,"name":"address","nodeType":"ElementaryTypeName","src":"1304:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1303:9:64"},"scope":20139,"src":"1226:1891:64","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20137,"nodeType":"Block","src":"3459:187:64","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":20132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3597:34:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string \"\u0019Ethereum Signed Message:\n32\""},"value":"\u0019Ethereum Signed Message:\n32"},{"argumentTypes":null,"id":20133,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20124,"src":"3633:4:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string \"\u0019Ethereum Signed Message:\n32\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":20130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3580:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3580:16:64","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3580:58:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20129,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3570:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":20135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3570:69:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":20128,"id":20136,"nodeType":"Return","src":"3563:76:64"}]},"documentation":"@dev Returns an Ethereum Signed Message, created from a `hash`. This\nreplicates the behavior of the\nhttps://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]\nJSON-RPC method.\n * See {recover}.","id":20138,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nodeType":"FunctionDefinition","parameters":{"id":20125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20124,"name":"hash","nodeType":"VariableDeclaration","scope":20138,"src":"3413:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3413:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3412:14:64"},"returnParameters":{"id":20128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20127,"name":"","nodeType":"VariableDeclaration","scope":20138,"src":"3450:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3450:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3449:9:64"},"scope":20139,"src":"3381:265:64","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":20140,"src":"231:3417:64"}],"src":"0:3649:64"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","exportedSymbols":{"ECDSA":[20139]},"id":20140,"nodeType":"SourceUnit","nodes":[{"id":20060,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:64"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Elliptic Curve Digital Signature Algorithm (ECDSA) operations.\n * These functions can be used to verify that a message was signed by the holder\nof the private keys of a given address.","fullyImplemented":true,"id":20139,"linearizedBaseContracts":[20139],"name":"ECDSA","nodeType":"ContractDefinition","nodes":[{"body":{"id":20121,"nodeType":"Block","src":"1313:1804:64","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":20069,"name":"signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20064,"src":"1365:9:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":20070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1365:16:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"3635","id":20071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1385:2:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_65_by_1","typeString":"int_const 65"},"value":"65"},"src":"1365:22:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20079,"nodeType":"IfStatement","src":"1361:72:64","trueBody":{"id":20078,"nodeType":"Block","src":"1389:44:64","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1419:1:64","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":20073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1411:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20075,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1411:10:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"id":20076,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1410:12:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20068,"id":20077,"nodeType":"Return","src":"1403:19:64"}]}},{"assignments":[20081],"declarations":[{"constant":false,"id":20081,"name":"r","nodeType":"VariableDeclaration","scope":20121,"src":"1499:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20080,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1499:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":20082,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1499:9:64"},{"assignments":[20084],"declarations":[{"constant":false,"id":20084,"name":"s","nodeType":"VariableDeclaration","scope":20121,"src":"1518:9:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1518:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":20085,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1518:9:64"},{"assignments":[20087],"declarations":[{"constant":false,"id":20087,"name":"v","nodeType":"VariableDeclaration","scope":20121,"src":"1537:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":20086,"name":"uint8","nodeType":"ElementaryTypeName","src":"1537:5:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":null,"visibility":"internal"}],"id":20088,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1537:7:64"},{"externalReferences":[{"r":{"declaration":20081,"isOffset":false,"isSlot":false,"src":"1757:1:64","valueSize":1}},{"signature":{"declaration":20064,"isOffset":false,"isSlot":false,"src":"1772:9:64","valueSize":1}},{"v":{"declaration":20087,"isOffset":false,"isSlot":false,"src":"1847:1:64","valueSize":1}},{"s":{"declaration":20084,"isOffset":false,"isSlot":false,"src":"1802:1:64","valueSize":1}},{"signature":{"declaration":20064,"isOffset":false,"isSlot":false,"src":"1817:9:64","valueSize":1}},{"signature":{"declaration":20064,"isOffset":false,"isSlot":false,"src":"1870:9:64","valueSize":1}}],"id":20089,"nodeType":"InlineAssembly","operations":"{\n r := mload(add(signature, 0x20))\n s := mload(add(signature, 0x40))\n v := byte(0, mload(add(signature, 0x60)))\n}","src":"1734:164:64"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20091,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"2794:1:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2786:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":20092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2786:10:64","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"307837464646464646464646464646464646464646464646464646464646464646463544353736453733353741343530314444464539324634363638314232304130","id":20093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2799:66:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_57896044618658097711785492504343953926418782139537452191302581570759080747168_by_1","typeString":"int_const 5789...(69 digits omitted)...7168"},"value":"0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0"},"src":"2786:79:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20100,"nodeType":"IfStatement","src":"2782:127:64","trueBody":{"id":20099,"nodeType":"Block","src":"2867:42:64","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2896:1:64","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":20095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2888:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2888:10:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20068,"id":20098,"nodeType":"Return","src":"2881:17:64"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":20107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20101,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"2923:1:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"3237","id":20102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2928:2:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_27_by_1","typeString":"int_const 27"},"value":"27"},"src":"2923:7:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint8","typeString":"uint8"},"id":20106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20104,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"2934:1:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"3238","id":20105,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2939:2:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_28_by_1","typeString":"int_const 28"},"value":"28"},"src":"2934:7:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2923:18:64","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20113,"nodeType":"IfStatement","src":"2919:66:64","trueBody":{"id":20112,"nodeType":"Block","src":"2943:42:64","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2972:1:64","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":20108,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2964:7:64","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2964:10:64","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":20068,"id":20111,"nodeType":"Return","src":"2957:17:64"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20115,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20062,"src":"3096:4:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":20116,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20087,"src":"3102:1:64","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"argumentTypes":null,"id":20117,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20081,"src":"3105:1:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":20118,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20084,"src":"3108:1:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":20114,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21099,"src":"3086:9:64","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":20119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3086:24:64","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20068,"id":20120,"nodeType":"Return","src":"3079:31:64"}]},"documentation":"@dev Returns the address that signed a hashed message (`hash`) with\n`signature`. This address can then be used for verification purposes.\n * The `ecrecover` EVM opcode allows for malleable (non-unique) signatures:\nthis function rejects them by requiring the `s` value to be in the lower\nhalf order, and the `v` value to be either 27 or 28.\n * NOTE: This call _does not revert_ if the signature is invalid, or\nif the signer is otherwise unable to be retrieved. In those scenarios,\nthe zero address is returned.\n * IMPORTANT: `hash` _must_ be the result of a hash operation for the\nverification to be secure: it is possible to craft signatures that\nrecover to arbitrary addresses for non-hashed data. A safe way to ensure\nthis is by receiving a hash of the original message (which may otherwise\nbe too long), and then calling {toEthSignedMessageHash} on it.","id":20122,"implemented":true,"kind":"function","modifiers":[],"name":"recover","nodeType":"FunctionDefinition","parameters":{"id":20065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20062,"name":"hash","nodeType":"VariableDeclaration","scope":20122,"src":"1243:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20061,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1243:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":20064,"name":"signature","nodeType":"VariableDeclaration","scope":20122,"src":"1257:22:64","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":20063,"name":"bytes","nodeType":"ElementaryTypeName","src":"1257:5:64","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"1242:38:64"},"returnParameters":{"id":20068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20067,"name":"","nodeType":"VariableDeclaration","scope":20122,"src":"1304:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20066,"name":"address","nodeType":"ElementaryTypeName","src":"1304:7:64","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1303:9:64"},"scope":20139,"src":"1226:1891:64","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20137,"nodeType":"Block","src":"3459:187:64","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"19457468657265756d205369676e6564204d6573736167653a0a3332","id":20132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3597:34:64","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string \"\u0019Ethereum Signed Message:\n32\""},"value":"\u0019Ethereum Signed Message:\n32"},{"argumentTypes":null,"id":20133,"name":"hash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20124,"src":"3633:4:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73","typeString":"literal_string \"\u0019Ethereum Signed Message:\n32\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":20130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3580:3:64","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":20131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3580:16:64","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":20134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3580:58:64","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":20129,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3570:9:64","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":20135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3570:69:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":20128,"id":20136,"nodeType":"Return","src":"3563:76:64"}]},"documentation":"@dev Returns an Ethereum Signed Message, created from a `hash`. This\nreplicates the behavior of the\nhttps://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign[`eth_sign`]\nJSON-RPC method.\n * See {recover}.","id":20138,"implemented":true,"kind":"function","modifiers":[],"name":"toEthSignedMessageHash","nodeType":"FunctionDefinition","parameters":{"id":20125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20124,"name":"hash","nodeType":"VariableDeclaration","scope":20138,"src":"3413:12:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3413:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3412:14:64"},"returnParameters":{"id":20128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20127,"name":"","nodeType":"VariableDeclaration","scope":20138,"src":"3450:7:64","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20126,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3450:7:64","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3449:9:64"},"scope":20139,"src":"3381:265:64","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":20140,"src":"231:3417:64"}],"src":"0:3649:64"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.267Z","devdoc":{"details":"Elliptic Curve Digital Signature Algorithm (ECDSA) operations. * These functions can be used to verify that a message was signed by the holder of the private keys of a given address.","methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20.json new file mode 100644 index 00000000..e7b06741 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20.json @@ -0,0 +1 @@ +{"contractName":"ERC20","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. * Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"1268:6824:68:-;;;;;;;;;","deployedSourceMap":"1268:6824:68:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1268:6824:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2500:149:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3107:300:68;;;;;;;;;;;;;;;;;:::i;3802:207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3802:207:68;;;;;;;;:::i;1706:108::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1706:108:68;-1:-1:-1;;;;;1706:108:68;;:::i;4496:258::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4496:258:68;;;;;;;;:::i;2017:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2017:155:68;;;;;;;;:::i;2230:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2230:132:68;;;;;;;;;;:::i;2500:149::-;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;-1:-1:-1;2638:4:68;2500:149;;;;:::o;1559:89::-;1629:12;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3289:19:68;;;;;;:11;:19;;;;;;3309:12;:10;:12::i;:::-;-1:-1:-1;;;;;3289:33:68;;;;;;;;;;;;-1:-1:-1;3289:33:68;;;:89;;:37;:89;:::i;:::-;3258:8;:121::i;:::-;-1:-1:-1;3396:4:68;3107:300;;;;;:::o;3802:207::-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;-1:-1:-1;;;;;3930:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;3930:25:68;;;:34;;;;;;;;;;;:50;:38;:50;:::i;1706:108::-;-1:-1:-1;;;;;1789:18:68;1763:7;1789:18;;;;;;;;;;;;1706:108::o;4496:258::-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;-1:-1:-1;;;;;4629:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;4629:25:68;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;2230:132::-;-1:-1:-1;;;;;2328:18:68;;;2302:7;2328:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2230:132::o;788:96:63:-;867:10;788:96;:::o;7351:332:68:-;-1:-1:-1;;;;;7444:19:68;;7436:68;;;;-1:-1:-1;;;7436:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7522:21:68;;7514:68;;;;-1:-1:-1;;;7514:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7593:18:68;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7644:32;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;-1:-1:-1;;;;;5325:20:68;;5317:70;;;;-1:-1:-1;;;5317:70:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5405:23:68;;5397:71;;;;-1:-1:-1;;;5397:71:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5499:17:68;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;5479:17:68;;;:9;:17;;;;;;;;;;;:91;;;;5603:20;;;;;;;:32;;5628:6;5603:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5580:20:68;;;:9;:20;;;;;;;;;;;;:55;;;;5650:35;;;;;;;5580:20;;5650:35;;;;;;;;;;;;;5228:464;;;:::o;1732:187:66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o","source":"pragma solidity ^0.5.0;\n\nimport \"../../GSN/Context.sol\";\nimport \"./IERC20.sol\";\nimport \"../../math/SafeMath.sol\";\n\n/**\n * @dev Implementation of the {IERC20} interface.\n *\n * This implementation is agnostic to the way tokens are created. This means\n * that a supply mechanism has to be added in a derived contract using {_mint}.\n * For a generic mechanism see {ERC20Mintable}.\n *\n * TIP: For a detailed writeup see our guide\n * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\n * to implement supply mechanisms].\n *\n * We have followed general OpenZeppelin guidelines: functions revert instead\n * of returning `false` on failure. This behavior is nonetheless conventional\n * and does not conflict with the expectations of ERC20 applications.\n *\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n * This allows applications to reconstruct the allowance for all accounts just\n * by listening to said events. Other implementations of the EIP may not emit\n * these events, as it isn't required by the specification.\n *\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n * functions have been added to mitigate the well-known issues around setting\n * allowances. See {IERC20-approve}.\n */\ncontract ERC20 is Context, IERC20 {\n using SafeMath for uint256;\n\n mapping (address => uint256) private _balances;\n\n mapping (address => mapping (address => uint256)) private _allowances;\n\n uint256 private _totalSupply;\n\n /**\n * @dev See {IERC20-totalSupply}.\n */\n function totalSupply() public view returns (uint256) {\n return _totalSupply;\n }\n\n /**\n * @dev See {IERC20-balanceOf}.\n */\n function balanceOf(address account) public view returns (uint256) {\n return _balances[account];\n }\n\n /**\n * @dev See {IERC20-transfer}.\n *\n * Requirements:\n *\n * - `recipient` cannot be the zero address.\n * - the caller must have a balance of at least `amount`.\n */\n function transfer(address recipient, uint256 amount) public returns (bool) {\n _transfer(_msgSender(), recipient, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-allowance}.\n */\n function allowance(address owner, address spender) public view returns (uint256) {\n return _allowances[owner][spender];\n }\n\n /**\n * @dev See {IERC20-approve}.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function approve(address spender, uint256 amount) public returns (bool) {\n _approve(_msgSender(), spender, amount);\n return true;\n }\n\n /**\n * @dev See {IERC20-transferFrom}.\n *\n * Emits an {Approval} event indicating the updated allowance. This is not\n * required by the EIP. See the note at the beginning of {ERC20};\n *\n * Requirements:\n * - `sender` and `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n * - the caller must have allowance for `sender`'s tokens of at least\n * `amount`.\n */\n function transferFrom(address sender, address recipient, uint256 amount) public returns (bool) {\n _transfer(sender, recipient, amount);\n _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, \"ERC20: transfer amount exceeds allowance\"));\n return true;\n }\n\n /**\n * @dev Atomically increases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n */\n function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));\n return true;\n }\n\n /**\n * @dev Atomically decreases the allowance granted to `spender` by the caller.\n *\n * This is an alternative to {approve} that can be used as a mitigation for\n * problems described in {IERC20-approve}.\n *\n * Emits an {Approval} event indicating the updated allowance.\n *\n * Requirements:\n *\n * - `spender` cannot be the zero address.\n * - `spender` must have allowance for the caller of at least\n * `subtractedValue`.\n */\n function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\n _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, \"ERC20: decreased allowance below zero\"));\n return true;\n }\n\n /**\n * @dev Moves tokens `amount` from `sender` to `recipient`.\n *\n * This is internal function is equivalent to {transfer}, and can be used to\n * e.g. implement automatic token fees, slashing mechanisms, etc.\n *\n * Emits a {Transfer} event.\n *\n * Requirements:\n *\n * - `sender` cannot be the zero address.\n * - `recipient` cannot be the zero address.\n * - `sender` must have a balance of at least `amount`.\n */\n function _transfer(address sender, address recipient, uint256 amount) internal {\n require(sender != address(0), \"ERC20: transfer from the zero address\");\n require(recipient != address(0), \"ERC20: transfer to the zero address\");\n\n _balances[sender] = _balances[sender].sub(amount, \"ERC20: transfer amount exceeds balance\");\n _balances[recipient] = _balances[recipient].add(amount);\n emit Transfer(sender, recipient, amount);\n }\n\n /** @dev Creates `amount` tokens and assigns them to `account`, increasing\n * the total supply.\n *\n * Emits a {Transfer} event with `from` set to the zero address.\n *\n * Requirements\n *\n * - `to` cannot be the zero address.\n */\n function _mint(address account, uint256 amount) internal {\n require(account != address(0), \"ERC20: mint to the zero address\");\n\n _totalSupply = _totalSupply.add(amount);\n _balances[account] = _balances[account].add(amount);\n emit Transfer(address(0), account, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`, reducing the\n * total supply.\n *\n * Emits a {Transfer} event with `to` set to the zero address.\n *\n * Requirements\n *\n * - `account` cannot be the zero address.\n * - `account` must have at least `amount` tokens.\n */\n function _burn(address account, uint256 amount) internal {\n require(account != address(0), \"ERC20: burn from the zero address\");\n\n _balances[account] = _balances[account].sub(amount, \"ERC20: burn amount exceeds balance\");\n _totalSupply = _totalSupply.sub(amount);\n emit Transfer(account, address(0), amount);\n }\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n *\n * This is internal function is equivalent to `approve`, and can be used to\n * e.g. set automatic allowances for certain subsystems, etc.\n *\n * Emits an {Approval} event.\n *\n * Requirements:\n *\n * - `owner` cannot be the zero address.\n * - `spender` cannot be the zero address.\n */\n function _approve(address owner, address spender, uint256 amount) internal {\n require(owner != address(0), \"ERC20: approve from the zero address\");\n require(spender != address(0), \"ERC20: approve to the zero address\");\n\n _allowances[owner][spender] = amount;\n emit Approval(owner, spender, amount);\n }\n\n /**\n * @dev Destroys `amount` tokens from `account`.`amount` is then deducted\n * from the caller's allowance.\n *\n * See {_burn} and {_approve}.\n */\n function _burnFrom(address account, uint256 amount) internal {\n _burn(account, amount);\n _approve(account, _msgSender(), _allowances[account][_msgSender()].sub(amount, \"ERC20: burn amount exceeds allowance\"));\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"ERC20":[20914]},"id":20915,"nodeType":"SourceUnit","nodes":[{"id":20511,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:68"},{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","file":"../../GSN/Context.sol","id":20512,"nodeType":"ImportDirective","scope":20915,"sourceUnit":20059,"src":"25:31:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":20513,"nodeType":"ImportDirective","scope":20915,"sourceUnit":21018,"src":"57:22:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"../../math/SafeMath.sol","id":20514,"nodeType":"ImportDirective","scope":20915,"sourceUnit":20396,"src":"80:33:68","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":20515,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":20058,"src":"1286:7:68","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20516,"nodeType":"InheritanceSpecifier","src":"1286:7:68"},{"arguments":null,"baseName":{"contractScope":null,"id":20517,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1295:6:68","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":20518,"nodeType":"InheritanceSpecifier","src":"1295:6:68"}],"contractDependencies":[20058,21017],"contractKind":"contract","documentation":"@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}.","fullyImplemented":true,"id":20914,"linearizedBaseContracts":[20914,21017,20058],"name":"ERC20","nodeType":"ContractDefinition","nodes":[{"id":20521,"libraryName":{"contractScope":null,"id":20519,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"1314:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"1308:27:68","typeName":{"id":20520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1327:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":20525,"name":"_balances","nodeType":"VariableDeclaration","scope":20914,"src":"1341:46:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20524,"keyType":{"id":20522,"name":"address","nodeType":"ElementaryTypeName","src":"1350:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1341:28:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20523,"name":"uint256","nodeType":"ElementaryTypeName","src":"1361:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"private"},{"constant":false,"id":20531,"name":"_allowances","nodeType":"VariableDeclaration","scope":20914,"src":"1394:69:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":20530,"keyType":{"id":20526,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1394:49:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":20529,"keyType":{"id":20527,"name":"address","nodeType":"ElementaryTypeName","src":"1423:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1414:28:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20528,"name":"uint256","nodeType":"ElementaryTypeName","src":"1434:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"private"},{"constant":false,"id":20533,"name":"_totalSupply","nodeType":"VariableDeclaration","scope":20914,"src":"1470:28:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20532,"name":"uint256","nodeType":"ElementaryTypeName","src":"1470:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"private"},{"body":{"id":20540,"nodeType":"Block","src":"1612:36:68","statements":[{"expression":{"argumentTypes":null,"id":20538,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"1629:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20537,"id":20539,"nodeType":"Return","src":"1622:19:68"}]},"documentation":"@dev See {IERC20-totalSupply}.","id":20541,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":20534,"nodeType":"ParameterList","parameters":[],"src":"1579:2:68"},"returnParameters":{"id":20537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20536,"name":"","nodeType":"VariableDeclaration","scope":20541,"src":"1603:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20535,"name":"uint256","nodeType":"ElementaryTypeName","src":"1603:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1602:9:68"},"scope":20914,"src":"1559:89:68","stateMutability":"view","superFunction":20955,"visibility":"public"},{"body":{"id":20552,"nodeType":"Block","src":"1772:42:68","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20548,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"1789:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20550,"indexExpression":{"argumentTypes":null,"id":20549,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"1799:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1789:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20547,"id":20551,"nodeType":"Return","src":"1782:25:68"}]},"documentation":"@dev See {IERC20-balanceOf}.","id":20553,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":20544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20543,"name":"account","nodeType":"VariableDeclaration","scope":20553,"src":"1725:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20542,"name":"address","nodeType":"ElementaryTypeName","src":"1725:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1724:17:68"},"returnParameters":{"id":20547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20546,"name":"","nodeType":"VariableDeclaration","scope":20553,"src":"1763:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20545,"name":"uint256","nodeType":"ElementaryTypeName","src":"1763:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1762:9:68"},"scope":20914,"src":"1706:108:68","stateMutability":"view","superFunction":20962,"visibility":"public"},{"body":{"id":20571,"nodeType":"Block","src":"2092:80:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20563,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"2112:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2112:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20565,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20555,"src":"2126:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20557,"src":"2137:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20562,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"2102:9:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2102:42:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20568,"nodeType":"ExpressionStatement","src":"2102:42:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2161:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20561,"id":20570,"nodeType":"Return","src":"2154:11:68"}]},"documentation":"@dev See {IERC20-transfer}.\n * Requirements:\n * - `recipient` cannot be the zero address.\n- the caller must have a balance of at least `amount`.","id":20572,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":20558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20555,"name":"recipient","nodeType":"VariableDeclaration","scope":20572,"src":"2035:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20554,"name":"address","nodeType":"ElementaryTypeName","src":"2035:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20557,"name":"amount","nodeType":"VariableDeclaration","scope":20572,"src":"2054:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20556,"name":"uint256","nodeType":"ElementaryTypeName","src":"2054:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2034:35:68"},"returnParameters":{"id":20561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20560,"name":"","nodeType":"VariableDeclaration","scope":20572,"src":"2086:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20559,"name":"bool","nodeType":"ElementaryTypeName","src":"2086:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2085:6:68"},"scope":20914,"src":"2017:155:68","stateMutability":"nonpayable","superFunction":20971,"visibility":"public"},{"body":{"id":20587,"nodeType":"Block","src":"2311:51:68","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20581,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"2328:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20583,"indexExpression":{"argumentTypes":null,"id":20582,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20574,"src":"2340:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2328:18:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20585,"indexExpression":{"argumentTypes":null,"id":20584,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20576,"src":"2347:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2328:27:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20580,"id":20586,"nodeType":"Return","src":"2321:34:68"}]},"documentation":"@dev See {IERC20-allowance}.","id":20588,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":20577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20574,"name":"owner","nodeType":"VariableDeclaration","scope":20588,"src":"2249:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20573,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20576,"name":"spender","nodeType":"VariableDeclaration","scope":20588,"src":"2264:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20575,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2248:32:68"},"returnParameters":{"id":20580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20579,"name":"","nodeType":"VariableDeclaration","scope":20588,"src":"2302:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2301:9:68"},"scope":20914,"src":"2230:132:68","stateMutability":"view","superFunction":20980,"visibility":"public"},{"body":{"id":20606,"nodeType":"Block","src":"2572:77:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20598,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"2591:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20600,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20590,"src":"2605:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20601,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20592,"src":"2614:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20597,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"2582:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2582:39:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20603,"nodeType":"ExpressionStatement","src":"2582:39:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2638:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20596,"id":20605,"nodeType":"Return","src":"2631:11:68"}]},"documentation":"@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.","id":20607,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":20593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20590,"name":"spender","nodeType":"VariableDeclaration","scope":20607,"src":"2517:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20589,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20592,"name":"amount","nodeType":"VariableDeclaration","scope":20607,"src":"2534:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20591,"name":"uint256","nodeType":"ElementaryTypeName","src":"2534:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2516:33:68"},"returnParameters":{"id":20596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20595,"name":"","nodeType":"VariableDeclaration","scope":20607,"src":"2566:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20594,"name":"bool","nodeType":"ElementaryTypeName","src":"2566:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2565:6:68"},"scope":20914,"src":"2500:149:68","stateMutability":"nonpayable","superFunction":20989,"visibility":"public"},{"body":{"id":20642,"nodeType":"Block","src":"3202:205:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20619,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20609,"src":"3222:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20620,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20611,"src":"3230:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20621,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20613,"src":"3241:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20618,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"3212:9:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3212:36:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20623,"nodeType":"ExpressionStatement","src":"3212:36:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20625,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20609,"src":"3267:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20626,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3275:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3275:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20635,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20613,"src":"3327:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365","id":20636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:42:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""},"value":"ERC20: transfer amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20628,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"3289:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20630,"indexExpression":{"argumentTypes":null,"id":20629,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20609,"src":"3301:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:19:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20633,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20631,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3309:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3309:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:33:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"3289:37:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3289:89:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20624,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"3258:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3258:121:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20639,"nodeType":"ExpressionStatement","src":"3258:121:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3396:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20617,"id":20641,"nodeType":"Return","src":"3389:11:68"}]},"documentation":"@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired by the EIP. See the note at the beginning of {ERC20};\n * Requirements:\n- `sender` and `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.\n- the caller must have allowance for `sender`'s tokens of at least\n`amount`.","id":20643,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":20614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20609,"name":"sender","nodeType":"VariableDeclaration","scope":20643,"src":"3129:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20608,"name":"address","nodeType":"ElementaryTypeName","src":"3129:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20611,"name":"recipient","nodeType":"VariableDeclaration","scope":20643,"src":"3145:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20610,"name":"address","nodeType":"ElementaryTypeName","src":"3145:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20613,"name":"amount","nodeType":"VariableDeclaration","scope":20643,"src":"3164:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20612,"name":"uint256","nodeType":"ElementaryTypeName","src":"3164:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3128:51:68"},"returnParameters":{"id":20617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20616,"name":"","nodeType":"VariableDeclaration","scope":20643,"src":"3196:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20615,"name":"bool","nodeType":"ElementaryTypeName","src":"3196:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3195:6:68"},"scope":20914,"src":"3107:300:68","stateMutability":"nonpayable","superFunction":21000,"visibility":"public"},{"body":{"id":20669,"nodeType":"Block","src":"3888:121:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20653,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3907:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3907:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20655,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20645,"src":"3921:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20663,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20647,"src":"3969:10:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20656,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"3930:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20659,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20657,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3942:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3942:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3930:25:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20661,"indexExpression":{"argumentTypes":null,"id":20660,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20645,"src":"3956:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3930:34:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"3930:38:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3930:50:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20652,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"3898:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:83:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20666,"nodeType":"ExpressionStatement","src":"3898:83:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3998:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20651,"id":20668,"nodeType":"Return","src":"3991:11:68"}]},"documentation":"@dev Atomically increases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.","id":20670,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nodeType":"FunctionDefinition","parameters":{"id":20648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20645,"name":"spender","nodeType":"VariableDeclaration","scope":20670,"src":"3829:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20644,"name":"address","nodeType":"ElementaryTypeName","src":"3829:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20647,"name":"addedValue","nodeType":"VariableDeclaration","scope":20670,"src":"3846:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3846:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3828:37:68"},"returnParameters":{"id":20651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20650,"name":"","nodeType":"VariableDeclaration","scope":20670,"src":"3882:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20649,"name":"bool","nodeType":"ElementaryTypeName","src":"3882:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3881:6:68"},"scope":20914,"src":"3802:207:68","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20697,"nodeType":"Block","src":"4587:167:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20680,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"4606:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4606:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20682,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20672,"src":"4620:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20690,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20674,"src":"4668:15:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":20691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4685:39:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20683,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"4629:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20686,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"4641:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4641:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4629:25:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20688,"indexExpression":{"argumentTypes":null,"id":20687,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20672,"src":"4655:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4629:34:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"4629:38:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4629:96:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20679,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"4597:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4597:129:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20694,"nodeType":"ExpressionStatement","src":"4597:129:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4743:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20678,"id":20696,"nodeType":"Return","src":"4736:11:68"}]},"documentation":"@dev Atomically decreases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.\n- `spender` must have allowance for the caller of at least\n`subtractedValue`.","id":20698,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nodeType":"FunctionDefinition","parameters":{"id":20675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20672,"name":"spender","nodeType":"VariableDeclaration","scope":20698,"src":"4523:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20671,"name":"address","nodeType":"ElementaryTypeName","src":"4523:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20674,"name":"subtractedValue","nodeType":"VariableDeclaration","scope":20698,"src":"4540:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20673,"name":"uint256","nodeType":"ElementaryTypeName","src":"4540:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4522:42:68"},"returnParameters":{"id":20678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20677,"name":"","nodeType":"VariableDeclaration","scope":20698,"src":"4581:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20676,"name":"bool","nodeType":"ElementaryTypeName","src":"4581:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4580:6:68"},"scope":20914,"src":"4496:258:68","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20754,"nodeType":"Block","src":"5307:385:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20708,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5325:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5343:1:68","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":20709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5335:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5335:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5325:20:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":20713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5347:39:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":20707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5317:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5317:70:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20715,"nodeType":"ExpressionStatement","src":"5317:70:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20717,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5405:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5426:1:68","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":20718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5418:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5418:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5405:23:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":20722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5430:37:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":20716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5397:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5397:71:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20724,"nodeType":"ExpressionStatement","src":"5397:71:68"},{"expression":{"argumentTypes":null,"id":20735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20725,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5479:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20727,"indexExpression":{"argumentTypes":null,"id":20726,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5489:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5479:17:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20732,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"5521:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":20733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5529:40:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20728,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5499:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20730,"indexExpression":{"argumentTypes":null,"id":20729,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5509:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5499:17:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"5499:21:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5499:71:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5479:91:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20736,"nodeType":"ExpressionStatement","src":"5479:91:68"},{"expression":{"argumentTypes":null,"id":20746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20737,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5580:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20739,"indexExpression":{"argumentTypes":null,"id":20738,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5590:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5580:20:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20744,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"5628:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20740,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5603:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20742,"indexExpression":{"argumentTypes":null,"id":20741,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5613:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5603:20:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"5603:24:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5603:32:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5580:55:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20747,"nodeType":"ExpressionStatement","src":"5580:55:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20749,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5659:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20750,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5667:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20751,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"5678:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20748,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21008,"src":"5650:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5650:35:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20753,"nodeType":"EmitStatement","src":"5645:40:68"}]},"documentation":"@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.g. implement automatic token fees, slashing mechanisms, etc.\n * Emits a {Transfer} event.\n * Requirements:\n * - `sender` cannot be the zero address.\n- `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.","id":20755,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nodeType":"FunctionDefinition","parameters":{"id":20705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20700,"name":"sender","nodeType":"VariableDeclaration","scope":20755,"src":"5247:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20699,"name":"address","nodeType":"ElementaryTypeName","src":"5247:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20702,"name":"recipient","nodeType":"VariableDeclaration","scope":20755,"src":"5263:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20701,"name":"address","nodeType":"ElementaryTypeName","src":"5263:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20704,"name":"amount","nodeType":"VariableDeclaration","scope":20755,"src":"5282:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20703,"name":"uint256","nodeType":"ElementaryTypeName","src":"5282:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5246:51:68"},"returnParameters":{"id":20706,"nodeType":"ParameterList","parameters":[],"src":"5307:0:68"},"scope":20914,"src":"5228:464:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20797,"nodeType":"Block","src":"6019:245:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20763,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6037:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6056:1:68","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":20764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6048:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6048:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6037:21:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":20768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6060:33:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":20762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6029:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6029:65:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20770,"nodeType":"ExpressionStatement","src":"6029:65:68"},{"expression":{"argumentTypes":null,"id":20776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20771,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6105:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20759,"src":"6137:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":20772,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6120:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6120:16:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6120:24:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6105:39:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20777,"nodeType":"ExpressionStatement","src":"6105:39:68"},{"expression":{"argumentTypes":null,"id":20787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20778,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6154:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20780,"indexExpression":{"argumentTypes":null,"id":20779,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6164:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6154:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20785,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20759,"src":"6198:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20781,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6175:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20783,"indexExpression":{"argumentTypes":null,"id":20782,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6185:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6175:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6175:22:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6175:30:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6154:51:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20788,"nodeType":"ExpressionStatement","src":"6154:51:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6237:1:68","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":20790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6229:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6229:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20793,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6241:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20794,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20759,"src":"6250:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20789,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21008,"src":"6220:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6220:37:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20796,"nodeType":"EmitStatement","src":"6215:42:68"}]},"documentation":"@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address.","id":20798,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nodeType":"FunctionDefinition","parameters":{"id":20760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20757,"name":"account","nodeType":"VariableDeclaration","scope":20798,"src":"5977:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20756,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20759,"name":"amount","nodeType":"VariableDeclaration","scope":20798,"src":"5994:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20758,"name":"uint256","nodeType":"ElementaryTypeName","src":"5994:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5976:33:68"},"returnParameters":{"id":20761,"nodeType":"ParameterList","parameters":[],"src":"6019:0:68"},"scope":20914,"src":"5962:302:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20841,"nodeType":"Block","src":"6641:285:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20806,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6659:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6678:1:68","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":20807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6670:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6670:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6659:21:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":20811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6682:35:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":20805,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6651:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6651:67:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20813,"nodeType":"ExpressionStatement","src":"6651:67:68"},{"expression":{"argumentTypes":null,"id":20824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20814,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6729:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20816,"indexExpression":{"argumentTypes":null,"id":20815,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6739:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6729:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"6773:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":20822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6781:36:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20817,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6750:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20819,"indexExpression":{"argumentTypes":null,"id":20818,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6760:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6750:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"6750:22:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6750:68:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6729:89:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20825,"nodeType":"ExpressionStatement","src":"6729:89:68"},{"expression":{"argumentTypes":null,"id":20831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20826,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6828:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20829,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"6860:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":20827,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6843:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"6843:16:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6843:24:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6828:39:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20832,"nodeType":"ExpressionStatement","src":"6828:39:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20834,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6891:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6908:1:68","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":20835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6900:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6900:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20838,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"6912:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20833,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21008,"src":"6882:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6882:37:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20840,"nodeType":"EmitStatement","src":"6877:42:68"}]},"documentation":"@dev Destroys `amount` tokens from `account`, reducing the\ntotal supply.\n * Emits a {Transfer} event with `to` set to the zero address.\n * Requirements\n * - `account` cannot be the zero address.\n- `account` must have at least `amount` tokens.","id":20842,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nodeType":"FunctionDefinition","parameters":{"id":20803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20800,"name":"account","nodeType":"VariableDeclaration","scope":20842,"src":"6599:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20799,"name":"address","nodeType":"ElementaryTypeName","src":"6599:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20802,"name":"amount","nodeType":"VariableDeclaration","scope":20842,"src":"6616:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20801,"name":"uint256","nodeType":"ElementaryTypeName","src":"6616:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6598:33:68"},"returnParameters":{"id":20804,"nodeType":"ParameterList","parameters":[],"src":"6641:0:68"},"scope":20914,"src":"6584:342:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20883,"nodeType":"Block","src":"7426:257:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20852,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"7444:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7461:1:68","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":20853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7453:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7453:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7444:19:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":20857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7465:38:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":20851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7436:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7436:68:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20859,"nodeType":"ExpressionStatement","src":"7436:68:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20861,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"7522:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7541:1:68","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":20862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7533:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7533:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7522:21:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":20866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7545:36:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":20860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7514:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7514:68:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20868,"nodeType":"ExpressionStatement","src":"7514:68:68"},{"expression":{"argumentTypes":null,"id":20875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20869,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"7593:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20872,"indexExpression":{"argumentTypes":null,"id":20870,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"7605:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7593:18:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20873,"indexExpression":{"argumentTypes":null,"id":20871,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"7612:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7593:27:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":20874,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20848,"src":"7623:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7593:36:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20876,"nodeType":"ExpressionStatement","src":"7593:36:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20878,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"7653:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20879,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"7660:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20880,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20848,"src":"7669:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20877,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21016,"src":"7644:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7644:32:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20882,"nodeType":"EmitStatement","src":"7639:37:68"}]},"documentation":"@dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n * This is internal function is equivalent to `approve`, and can be used to\ne.g. set automatic allowances for certain subsystems, etc.\n * Emits an {Approval} event.\n * Requirements:\n * - `owner` cannot be the zero address.\n- `spender` cannot be the zero address.","id":20884,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nodeType":"FunctionDefinition","parameters":{"id":20849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20844,"name":"owner","nodeType":"VariableDeclaration","scope":20884,"src":"7369:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20843,"name":"address","nodeType":"ElementaryTypeName","src":"7369:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20846,"name":"spender","nodeType":"VariableDeclaration","scope":20884,"src":"7384:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20845,"name":"address","nodeType":"ElementaryTypeName","src":"7384:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20848,"name":"amount","nodeType":"VariableDeclaration","scope":20884,"src":"7401:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20847,"name":"uint256","nodeType":"ElementaryTypeName","src":"7401:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7368:48:68"},"returnParameters":{"id":20850,"nodeType":"ParameterList","parameters":[],"src":"7426:0:68"},"scope":20914,"src":"7351:332:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20912,"nodeType":"Block","src":"7922:168:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20892,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"7938:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20893,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"7947:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20891,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20842,"src":"7932:5:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7932:22:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20895,"nodeType":"ExpressionStatement","src":"7932:22:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20897,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"7973:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20898,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"7982:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7982:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"8035:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365","id":20908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8043:38:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db","typeString":"literal_string \"ERC20: burn amount exceeds allowance\""},"value":"ERC20: burn amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db","typeString":"literal_string \"ERC20: burn amount exceeds allowance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20900,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"7996:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20902,"indexExpression":{"argumentTypes":null,"id":20901,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"8008:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7996:20:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20905,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20903,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"8017:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8017:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7996:34:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"7996:38:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7996:86:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20896,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"7964:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7964:119:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20911,"nodeType":"ExpressionStatement","src":"7964:119:68"}]},"documentation":"@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.","id":20913,"implemented":true,"kind":"function","modifiers":[],"name":"_burnFrom","nodeType":"FunctionDefinition","parameters":{"id":20889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20886,"name":"account","nodeType":"VariableDeclaration","scope":20913,"src":"7880:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20885,"name":"address","nodeType":"ElementaryTypeName","src":"7880:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20888,"name":"amount","nodeType":"VariableDeclaration","scope":20913,"src":"7897:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20887,"name":"uint256","nodeType":"ElementaryTypeName","src":"7897:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7879:33:68"},"returnParameters":{"id":20890,"nodeType":"ParameterList","parameters":[],"src":"7922:0:68"},"scope":20914,"src":"7861:229:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":20915,"src":"1268:6824:68"}],"src":"0:8093:68"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","exportedSymbols":{"ERC20":[20914]},"id":20915,"nodeType":"SourceUnit","nodes":[{"id":20511,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:68"},{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","file":"../../GSN/Context.sol","id":20512,"nodeType":"ImportDirective","scope":20915,"sourceUnit":20059,"src":"25:31:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","id":20513,"nodeType":"ImportDirective","scope":20915,"sourceUnit":21018,"src":"57:22:68","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"../../math/SafeMath.sol","id":20514,"nodeType":"ImportDirective","scope":20915,"sourceUnit":20396,"src":"80:33:68","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":20515,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":20058,"src":"1286:7:68","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20516,"nodeType":"InheritanceSpecifier","src":"1286:7:68"},{"arguments":null,"baseName":{"contractScope":null,"id":20517,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1295:6:68","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":20518,"nodeType":"InheritanceSpecifier","src":"1295:6:68"}],"contractDependencies":[20058,21017],"contractKind":"contract","documentation":"@dev Implementation of the {IERC20} interface.\n * This implementation is agnostic to the way tokens are created. This means\nthat a supply mechanism has to be added in a derived contract using {_mint}.\nFor a generic mechanism see {ERC20Mintable}.\n * TIP: For a detailed writeup see our guide\nhttps://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How\nto implement supply mechanisms].\n * We have followed general OpenZeppelin guidelines: functions revert instead\nof returning `false` on failure. This behavior is nonetheless conventional\nand does not conflict with the expectations of ERC20 applications.\n * Additionally, an {Approval} event is emitted on calls to {transferFrom}.\nThis allows applications to reconstruct the allowance for all accounts just\nby listening to said events. Other implementations of the EIP may not emit\nthese events, as it isn't required by the specification.\n * Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\nfunctions have been added to mitigate the well-known issues around setting\nallowances. See {IERC20-approve}.","fullyImplemented":true,"id":20914,"linearizedBaseContracts":[20914,21017,20058],"name":"ERC20","nodeType":"ContractDefinition","nodes":[{"id":20521,"libraryName":{"contractScope":null,"id":20519,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"1314:8:68","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"1308:27:68","typeName":{"id":20520,"name":"uint256","nodeType":"ElementaryTypeName","src":"1327:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":20525,"name":"_balances","nodeType":"VariableDeclaration","scope":20914,"src":"1341:46:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":20524,"keyType":{"id":20522,"name":"address","nodeType":"ElementaryTypeName","src":"1350:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1341:28:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20523,"name":"uint256","nodeType":"ElementaryTypeName","src":"1361:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"private"},{"constant":false,"id":20531,"name":"_allowances","nodeType":"VariableDeclaration","scope":20914,"src":"1394:69:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":20530,"keyType":{"id":20526,"name":"address","nodeType":"ElementaryTypeName","src":"1403:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1394:49:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":20529,"keyType":{"id":20527,"name":"address","nodeType":"ElementaryTypeName","src":"1423:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1414:28:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":20528,"name":"uint256","nodeType":"ElementaryTypeName","src":"1434:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"private"},{"constant":false,"id":20533,"name":"_totalSupply","nodeType":"VariableDeclaration","scope":20914,"src":"1470:28:68","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20532,"name":"uint256","nodeType":"ElementaryTypeName","src":"1470:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"private"},{"body":{"id":20540,"nodeType":"Block","src":"1612:36:68","statements":[{"expression":{"argumentTypes":null,"id":20538,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"1629:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20537,"id":20539,"nodeType":"Return","src":"1622:19:68"}]},"documentation":"@dev See {IERC20-totalSupply}.","id":20541,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":20534,"nodeType":"ParameterList","parameters":[],"src":"1579:2:68"},"returnParameters":{"id":20537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20536,"name":"","nodeType":"VariableDeclaration","scope":20541,"src":"1603:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20535,"name":"uint256","nodeType":"ElementaryTypeName","src":"1603:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1602:9:68"},"scope":20914,"src":"1559:89:68","stateMutability":"view","superFunction":20955,"visibility":"public"},{"body":{"id":20552,"nodeType":"Block","src":"1772:42:68","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20548,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"1789:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20550,"indexExpression":{"argumentTypes":null,"id":20549,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20543,"src":"1799:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1789:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20547,"id":20551,"nodeType":"Return","src":"1782:25:68"}]},"documentation":"@dev See {IERC20-balanceOf}.","id":20553,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":20544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20543,"name":"account","nodeType":"VariableDeclaration","scope":20553,"src":"1725:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20542,"name":"address","nodeType":"ElementaryTypeName","src":"1725:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1724:17:68"},"returnParameters":{"id":20547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20546,"name":"","nodeType":"VariableDeclaration","scope":20553,"src":"1763:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20545,"name":"uint256","nodeType":"ElementaryTypeName","src":"1763:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1762:9:68"},"scope":20914,"src":"1706:108:68","stateMutability":"view","superFunction":20962,"visibility":"public"},{"body":{"id":20571,"nodeType":"Block","src":"2092:80:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20563,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"2112:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2112:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20565,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20555,"src":"2126:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20557,"src":"2137:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20562,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"2102:9:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2102:42:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20568,"nodeType":"ExpressionStatement","src":"2102:42:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2161:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20561,"id":20570,"nodeType":"Return","src":"2154:11:68"}]},"documentation":"@dev See {IERC20-transfer}.\n * Requirements:\n * - `recipient` cannot be the zero address.\n- the caller must have a balance of at least `amount`.","id":20572,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":20558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20555,"name":"recipient","nodeType":"VariableDeclaration","scope":20572,"src":"2035:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20554,"name":"address","nodeType":"ElementaryTypeName","src":"2035:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20557,"name":"amount","nodeType":"VariableDeclaration","scope":20572,"src":"2054:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20556,"name":"uint256","nodeType":"ElementaryTypeName","src":"2054:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2034:35:68"},"returnParameters":{"id":20561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20560,"name":"","nodeType":"VariableDeclaration","scope":20572,"src":"2086:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20559,"name":"bool","nodeType":"ElementaryTypeName","src":"2086:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2085:6:68"},"scope":20914,"src":"2017:155:68","stateMutability":"nonpayable","superFunction":20971,"visibility":"public"},{"body":{"id":20587,"nodeType":"Block","src":"2311:51:68","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20581,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"2328:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20583,"indexExpression":{"argumentTypes":null,"id":20582,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20574,"src":"2340:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2328:18:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20585,"indexExpression":{"argumentTypes":null,"id":20584,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20576,"src":"2347:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2328:27:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20580,"id":20586,"nodeType":"Return","src":"2321:34:68"}]},"documentation":"@dev See {IERC20-allowance}.","id":20588,"implemented":true,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":20577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20574,"name":"owner","nodeType":"VariableDeclaration","scope":20588,"src":"2249:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20573,"name":"address","nodeType":"ElementaryTypeName","src":"2249:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20576,"name":"spender","nodeType":"VariableDeclaration","scope":20588,"src":"2264:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20575,"name":"address","nodeType":"ElementaryTypeName","src":"2264:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2248:32:68"},"returnParameters":{"id":20580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20579,"name":"","nodeType":"VariableDeclaration","scope":20588,"src":"2302:7:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2301:9:68"},"scope":20914,"src":"2230:132:68","stateMutability":"view","superFunction":20980,"visibility":"public"},{"body":{"id":20606,"nodeType":"Block","src":"2572:77:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20598,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"2591:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20600,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20590,"src":"2605:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20601,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20592,"src":"2614:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20597,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"2582:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2582:39:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20603,"nodeType":"ExpressionStatement","src":"2582:39:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2638:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20596,"id":20605,"nodeType":"Return","src":"2631:11:68"}]},"documentation":"@dev See {IERC20-approve}.\n * Requirements:\n * - `spender` cannot be the zero address.","id":20607,"implemented":true,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":20593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20590,"name":"spender","nodeType":"VariableDeclaration","scope":20607,"src":"2517:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20589,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20592,"name":"amount","nodeType":"VariableDeclaration","scope":20607,"src":"2534:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20591,"name":"uint256","nodeType":"ElementaryTypeName","src":"2534:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2516:33:68"},"returnParameters":{"id":20596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20595,"name":"","nodeType":"VariableDeclaration","scope":20607,"src":"2566:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20594,"name":"bool","nodeType":"ElementaryTypeName","src":"2566:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2565:6:68"},"scope":20914,"src":"2500:149:68","stateMutability":"nonpayable","superFunction":20989,"visibility":"public"},{"body":{"id":20642,"nodeType":"Block","src":"3202:205:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20619,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20609,"src":"3222:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20620,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20611,"src":"3230:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20621,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20613,"src":"3241:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20618,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20755,"src":"3212:9:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3212:36:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20623,"nodeType":"ExpressionStatement","src":"3212:36:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20625,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20609,"src":"3267:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20626,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3275:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3275:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20635,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20613,"src":"3327:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365","id":20636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3335:42:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""},"value":"ERC20: transfer amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_974d1b4421da69cc60b481194f0dad36a5bb4e23da810da7a7fb30cdba178330","typeString":"literal_string \"ERC20: transfer amount exceeds allowance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20628,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"3289:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20630,"indexExpression":{"argumentTypes":null,"id":20629,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20609,"src":"3301:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:19:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20633,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20631,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3309:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3309:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3289:33:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"3289:37:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3289:89:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20624,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"3258:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3258:121:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20639,"nodeType":"ExpressionStatement","src":"3258:121:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3396:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20617,"id":20641,"nodeType":"Return","src":"3389:11:68"}]},"documentation":"@dev See {IERC20-transferFrom}.\n * Emits an {Approval} event indicating the updated allowance. This is not\nrequired by the EIP. See the note at the beginning of {ERC20};\n * Requirements:\n- `sender` and `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.\n- the caller must have allowance for `sender`'s tokens of at least\n`amount`.","id":20643,"implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":20614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20609,"name":"sender","nodeType":"VariableDeclaration","scope":20643,"src":"3129:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20608,"name":"address","nodeType":"ElementaryTypeName","src":"3129:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20611,"name":"recipient","nodeType":"VariableDeclaration","scope":20643,"src":"3145:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20610,"name":"address","nodeType":"ElementaryTypeName","src":"3145:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20613,"name":"amount","nodeType":"VariableDeclaration","scope":20643,"src":"3164:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20612,"name":"uint256","nodeType":"ElementaryTypeName","src":"3164:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3128:51:68"},"returnParameters":{"id":20617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20616,"name":"","nodeType":"VariableDeclaration","scope":20643,"src":"3196:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20615,"name":"bool","nodeType":"ElementaryTypeName","src":"3196:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3195:6:68"},"scope":20914,"src":"3107:300:68","stateMutability":"nonpayable","superFunction":21000,"visibility":"public"},{"body":{"id":20669,"nodeType":"Block","src":"3888:121:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20653,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3907:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20654,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3907:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20655,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20645,"src":"3921:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20663,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20647,"src":"3969:10:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20656,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"3930:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20659,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20657,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"3942:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3942:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3930:25:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20661,"indexExpression":{"argumentTypes":null,"id":20660,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20645,"src":"3956:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3930:34:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"3930:38:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3930:50:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20652,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"3898:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3898:83:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20666,"nodeType":"ExpressionStatement","src":"3898:83:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20667,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3998:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20651,"id":20668,"nodeType":"Return","src":"3991:11:68"}]},"documentation":"@dev Atomically increases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.","id":20670,"implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nodeType":"FunctionDefinition","parameters":{"id":20648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20645,"name":"spender","nodeType":"VariableDeclaration","scope":20670,"src":"3829:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20644,"name":"address","nodeType":"ElementaryTypeName","src":"3829:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20647,"name":"addedValue","nodeType":"VariableDeclaration","scope":20670,"src":"3846:18:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20646,"name":"uint256","nodeType":"ElementaryTypeName","src":"3846:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3828:37:68"},"returnParameters":{"id":20651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20650,"name":"","nodeType":"VariableDeclaration","scope":20670,"src":"3882:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20649,"name":"bool","nodeType":"ElementaryTypeName","src":"3882:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3881:6:68"},"scope":20914,"src":"3802:207:68","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20697,"nodeType":"Block","src":"4587:167:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20680,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"4606:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4606:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20682,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20672,"src":"4620:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20690,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20674,"src":"4668:15:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":20691,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4685:39:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20683,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"4629:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20686,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20684,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"4641:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4641:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4629:25:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20688,"indexExpression":{"argumentTypes":null,"id":20687,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20672,"src":"4655:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4629:34:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"4629:38:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4629:96:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20679,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"4597:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4597:129:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20694,"nodeType":"ExpressionStatement","src":"4597:129:68"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":20695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4743:4:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":20678,"id":20696,"nodeType":"Return","src":"4736:11:68"}]},"documentation":"@dev Atomically decreases the allowance granted to `spender` by the caller.\n * This is an alternative to {approve} that can be used as a mitigation for\nproblems described in {IERC20-approve}.\n * Emits an {Approval} event indicating the updated allowance.\n * Requirements:\n * - `spender` cannot be the zero address.\n- `spender` must have allowance for the caller of at least\n`subtractedValue`.","id":20698,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nodeType":"FunctionDefinition","parameters":{"id":20675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20672,"name":"spender","nodeType":"VariableDeclaration","scope":20698,"src":"4523:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20671,"name":"address","nodeType":"ElementaryTypeName","src":"4523:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20674,"name":"subtractedValue","nodeType":"VariableDeclaration","scope":20698,"src":"4540:23:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20673,"name":"uint256","nodeType":"ElementaryTypeName","src":"4540:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4522:42:68"},"returnParameters":{"id":20678,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20677,"name":"","nodeType":"VariableDeclaration","scope":20698,"src":"4581:4:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20676,"name":"bool","nodeType":"ElementaryTypeName","src":"4581:4:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4580:6:68"},"scope":20914,"src":"4496:258:68","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20754,"nodeType":"Block","src":"5307:385:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20708,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5325:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5343:1:68","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":20709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5335:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5335:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5325:20:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":20713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5347:39:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":20707,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5317:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5317:70:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20715,"nodeType":"ExpressionStatement","src":"5317:70:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20717,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5405:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5426:1:68","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":20718,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5418:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5418:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"5405:23:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":20722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5430:37:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":20716,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5397:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5397:71:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20724,"nodeType":"ExpressionStatement","src":"5397:71:68"},{"expression":{"argumentTypes":null,"id":20735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20725,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5479:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20727,"indexExpression":{"argumentTypes":null,"id":20726,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5489:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5479:17:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20732,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"5521:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":20733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5529:40:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20728,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5499:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20730,"indexExpression":{"argumentTypes":null,"id":20729,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5509:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5499:17:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"5499:21:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20734,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5499:71:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5479:91:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20736,"nodeType":"ExpressionStatement","src":"5479:91:68"},{"expression":{"argumentTypes":null,"id":20746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20737,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5580:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20739,"indexExpression":{"argumentTypes":null,"id":20738,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5590:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5580:20:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20744,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"5628:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20740,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"5603:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20742,"indexExpression":{"argumentTypes":null,"id":20741,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5613:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5603:20:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"5603:24:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20745,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5603:32:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5580:55:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20747,"nodeType":"ExpressionStatement","src":"5580:55:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20749,"name":"sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20700,"src":"5659:6:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20750,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20702,"src":"5667:9:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20751,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20704,"src":"5678:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20748,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21008,"src":"5650:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5650:35:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20753,"nodeType":"EmitStatement","src":"5645:40:68"}]},"documentation":"@dev Moves tokens `amount` from `sender` to `recipient`.\n * This is internal function is equivalent to {transfer}, and can be used to\ne.g. implement automatic token fees, slashing mechanisms, etc.\n * Emits a {Transfer} event.\n * Requirements:\n * - `sender` cannot be the zero address.\n- `recipient` cannot be the zero address.\n- `sender` must have a balance of at least `amount`.","id":20755,"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nodeType":"FunctionDefinition","parameters":{"id":20705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20700,"name":"sender","nodeType":"VariableDeclaration","scope":20755,"src":"5247:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20699,"name":"address","nodeType":"ElementaryTypeName","src":"5247:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20702,"name":"recipient","nodeType":"VariableDeclaration","scope":20755,"src":"5263:17:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20701,"name":"address","nodeType":"ElementaryTypeName","src":"5263:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20704,"name":"amount","nodeType":"VariableDeclaration","scope":20755,"src":"5282:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20703,"name":"uint256","nodeType":"ElementaryTypeName","src":"5282:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5246:51:68"},"returnParameters":{"id":20706,"nodeType":"ParameterList","parameters":[],"src":"5307:0:68"},"scope":20914,"src":"5228:464:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20797,"nodeType":"Block","src":"6019:245:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20763,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6037:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20765,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6056:1:68","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":20764,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6048:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20766,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6048:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6037:21:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":20768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6060:33:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":20762,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6029:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6029:65:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20770,"nodeType":"ExpressionStatement","src":"6029:65:68"},{"expression":{"argumentTypes":null,"id":20776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20771,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6105:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20774,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20759,"src":"6137:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":20772,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6120:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6120:16:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6120:24:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6105:39:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20777,"nodeType":"ExpressionStatement","src":"6105:39:68"},{"expression":{"argumentTypes":null,"id":20787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20778,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6154:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20780,"indexExpression":{"argumentTypes":null,"id":20779,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6164:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6154:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20785,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20759,"src":"6198:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20781,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6175:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20783,"indexExpression":{"argumentTypes":null,"id":20782,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6185:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6175:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"6175:22:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6175:30:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6154:51:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20788,"nodeType":"ExpressionStatement","src":"6154:51:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20791,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6237:1:68","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":20790,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6229:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6229:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20793,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20757,"src":"6241:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20794,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20759,"src":"6250:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20789,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21008,"src":"6220:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6220:37:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20796,"nodeType":"EmitStatement","src":"6215:42:68"}]},"documentation":"@dev Creates `amount` tokens and assigns them to `account`, increasing\nthe total supply.\n * Emits a {Transfer} event with `from` set to the zero address.\n * Requirements\n * - `to` cannot be the zero address.","id":20798,"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nodeType":"FunctionDefinition","parameters":{"id":20760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20757,"name":"account","nodeType":"VariableDeclaration","scope":20798,"src":"5977:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20756,"name":"address","nodeType":"ElementaryTypeName","src":"5977:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20759,"name":"amount","nodeType":"VariableDeclaration","scope":20798,"src":"5994:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20758,"name":"uint256","nodeType":"ElementaryTypeName","src":"5994:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5976:33:68"},"returnParameters":{"id":20761,"nodeType":"ParameterList","parameters":[],"src":"6019:0:68"},"scope":20914,"src":"5962:302:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20841,"nodeType":"Block","src":"6641:285:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20806,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6659:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6678:1:68","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":20807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6670:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6670:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6659:21:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":20811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6682:35:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":20805,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6651:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6651:67:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20813,"nodeType":"ExpressionStatement","src":"6651:67:68"},{"expression":{"argumentTypes":null,"id":20824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20814,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6729:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20816,"indexExpression":{"argumentTypes":null,"id":20815,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6739:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6729:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20821,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"6773:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":20822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6781:36:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20817,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20525,"src":"6750:9:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20819,"indexExpression":{"argumentTypes":null,"id":20818,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6760:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6750:18:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"6750:22:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6750:68:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6729:89:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20825,"nodeType":"ExpressionStatement","src":"6729:89:68"},{"expression":{"argumentTypes":null,"id":20831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20826,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6828:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20829,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"6860:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":20827,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20533,"src":"6843:12:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"6843:16:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":20830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6843:24:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6828:39:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20832,"nodeType":"ExpressionStatement","src":"6828:39:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20834,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20800,"src":"6891:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6908:1:68","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":20835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6900:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20837,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6900:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20838,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20802,"src":"6912:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20833,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21008,"src":"6882:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6882:37:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20840,"nodeType":"EmitStatement","src":"6877:42:68"}]},"documentation":"@dev Destroys `amount` tokens from `account`, reducing the\ntotal supply.\n * Emits a {Transfer} event with `to` set to the zero address.\n * Requirements\n * - `account` cannot be the zero address.\n- `account` must have at least `amount` tokens.","id":20842,"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nodeType":"FunctionDefinition","parameters":{"id":20803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20800,"name":"account","nodeType":"VariableDeclaration","scope":20842,"src":"6599:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20799,"name":"address","nodeType":"ElementaryTypeName","src":"6599:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20802,"name":"amount","nodeType":"VariableDeclaration","scope":20842,"src":"6616:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20801,"name":"uint256","nodeType":"ElementaryTypeName","src":"6616:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6598:33:68"},"returnParameters":{"id":20804,"nodeType":"ParameterList","parameters":[],"src":"6641:0:68"},"scope":20914,"src":"6584:342:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20883,"nodeType":"Block","src":"7426:257:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20852,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"7444:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7461:1:68","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":20853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7453:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7453:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7444:19:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":20857,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7465:38:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":20851,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7436:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7436:68:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20859,"nodeType":"ExpressionStatement","src":"7436:68:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20861,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"7522:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20863,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7541:1:68","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":20862,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7533:7:68","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20864,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7533:10:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"7522:21:68","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":20866,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7545:36:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":20860,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7514:7:68","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7514:68:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20868,"nodeType":"ExpressionStatement","src":"7514:68:68"},{"expression":{"argumentTypes":null,"id":20875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20869,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"7593:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20872,"indexExpression":{"argumentTypes":null,"id":20870,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"7605:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7593:18:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20873,"indexExpression":{"argumentTypes":null,"id":20871,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"7612:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7593:27:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":20874,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20848,"src":"7623:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7593:36:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20876,"nodeType":"ExpressionStatement","src":"7593:36:68"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20878,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20844,"src":"7653:5:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20879,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20846,"src":"7660:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20880,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20848,"src":"7669:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20877,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21016,"src":"7644:8:68","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7644:32:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20882,"nodeType":"EmitStatement","src":"7639:37:68"}]},"documentation":"@dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.\n * This is internal function is equivalent to `approve`, and can be used to\ne.g. set automatic allowances for certain subsystems, etc.\n * Emits an {Approval} event.\n * Requirements:\n * - `owner` cannot be the zero address.\n- `spender` cannot be the zero address.","id":20884,"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nodeType":"FunctionDefinition","parameters":{"id":20849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20844,"name":"owner","nodeType":"VariableDeclaration","scope":20884,"src":"7369:13:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20843,"name":"address","nodeType":"ElementaryTypeName","src":"7369:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20846,"name":"spender","nodeType":"VariableDeclaration","scope":20884,"src":"7384:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20845,"name":"address","nodeType":"ElementaryTypeName","src":"7384:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20848,"name":"amount","nodeType":"VariableDeclaration","scope":20884,"src":"7401:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20847,"name":"uint256","nodeType":"ElementaryTypeName","src":"7401:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7368:48:68"},"returnParameters":{"id":20850,"nodeType":"ParameterList","parameters":[],"src":"7426:0:68"},"scope":20914,"src":"7351:332:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20912,"nodeType":"Block","src":"7922:168:68","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20892,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"7938:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20893,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"7947:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20891,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20842,"src":"7932:5:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7932:22:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20895,"nodeType":"ExpressionStatement","src":"7932:22:68"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20897,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"7973:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20898,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"7982:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7982:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20907,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20888,"src":"8035:6:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77616e6365","id":20908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8043:38:68","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db","typeString":"literal_string \"ERC20: burn amount exceeds allowance\""},"value":"ERC20: burn amount exceeds allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_a287c363786607a1457a2d9d12fa61c0073358e02d76b4035fc2c2d86a19c0db","typeString":"literal_string \"ERC20: burn amount exceeds allowance\""}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":20900,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20531,"src":"7996:11:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":20902,"indexExpression":{"argumentTypes":null,"id":20901,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20886,"src":"8008:7:68","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7996:20:68","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":20905,"indexExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20903,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"8017:10:68","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20904,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8017:12:68","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7996:34:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20278,"src":"7996:38:68","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7996:86:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20896,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20884,"src":"7964:8:68","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":20910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7964:119:68","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20911,"nodeType":"ExpressionStatement","src":"7964:119:68"}]},"documentation":"@dev Destroys `amount` tokens from `account`.`amount` is then deducted\nfrom the caller's allowance.\n * See {_burn} and {_approve}.","id":20913,"implemented":true,"kind":"function","modifiers":[],"name":"_burnFrom","nodeType":"FunctionDefinition","parameters":{"id":20889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20886,"name":"account","nodeType":"VariableDeclaration","scope":20913,"src":"7880:15:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20885,"name":"address","nodeType":"ElementaryTypeName","src":"7880:7:68","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20888,"name":"amount","nodeType":"VariableDeclaration","scope":20913,"src":"7897:14:68","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20887,"name":"uint256","nodeType":"ElementaryTypeName","src":"7897:7:68","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7879:33:68"},"returnParameters":{"id":20890,"nodeType":"ParameterList","parameters":[],"src":"7922:0:68"},"scope":20914,"src":"7861:229:68","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":20915,"src":"1268:6824:68"}],"src":"0:8093:68"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.270Z","devdoc":{"details":"Implementation of the {IERC20} interface. * This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20Mintable}. * TIP: For a detailed writeup see our guide https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. * We have followed general OpenZeppelin guidelines: functions revert instead of returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. * Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20Burnable.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20Burnable.json new file mode 100644 index 00000000..50d924a6 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20Burnable.json @@ -0,0 +1 @@ +{"contractName":"ERC20Burnable","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burnFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"burn(uint256)\":{\"details\":\"Destroys `amount` tokens from the caller. * See {ERC20-_burn}.\"},\"burnFrom(address,uint256)\":{\"details\":\"See {ERC20-_burnFrom}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":\"ERC20Burnable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"289:391:69:-;;;;;;;;;","deployedSourceMap":"289:391:69:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;289:391:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2500:149:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3107:300:68;;;;;;;;;;;;;;;;;:::i;3802:207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3802:207:68;;;;;;;;:::i;439:81:69:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;439:81:69;;:::i;:::-;;1706:108:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1706:108:68;-1:-1:-1;;;;;1706:108:68;;:::i;577:101:69:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;577:101:69;;;;;;;;:::i;4496:258:68:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4496:258:68;;;;;;;;:::i;2017:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2017:155:68;;;;;;;;:::i;2230:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2230:132:68;;;;;;;;;;:::i;2500:149::-;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;-1:-1:-1;2638:4:68;2500:149;;;;:::o;1559:89::-;1629:12;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3289:19:68;;;;;;:11;:19;;;;;;3309:12;:10;:12::i;:::-;-1:-1:-1;;;;;3289:33:68;;;;;;;;;;;;-1:-1:-1;3289:33:68;;;:89;;:37;:89;:::i;:::-;3258:8;:121::i;:::-;-1:-1:-1;3396:4:68;3107:300;;;;;:::o;3802:207::-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;-1:-1:-1;;;;;3930:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;3930:25:68;;;:34;;;;;;;;;;;:50;:38;:50;:::i;439:81:69:-;486:27;492:12;:10;:12::i;:::-;506:6;486:5;:27::i;:::-;439:81;:::o;1706:108:68:-;-1:-1:-1;;;;;1789:18:68;1763:7;1789:18;;;;;;;;;;;;1706:108::o;577:101:69:-;645:26;655:7;664:6;645:9;:26::i;:::-;577:101;;:::o;4496:258:68:-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;-1:-1:-1;;;;;4629:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;4629:25:68;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;2230:132::-;-1:-1:-1;;;;;2328:18:68;;;2302:7;2328:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2230:132::o;788:96:63:-;867:10;788:96;:::o;7351:332:68:-;-1:-1:-1;;;;;7444:19:68;;7436:68;;;;-1:-1:-1;;;7436:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7522:21:68;;7514:68;;;;-1:-1:-1;;;7514:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7593:18:68;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7644:32;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;-1:-1:-1;;;;;5325:20:68;;5317:70;;;;-1:-1:-1;;;5317:70:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5405:23:68;;5397:71;;;;-1:-1:-1;;;5397:71:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5499:17:68;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;5479:17:68;;;:9;:17;;;;;;;;;;;:91;;;;5603:20;;;;;;;:32;;5628:6;5603:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5580:20:68;;;:9;:20;;;;;;;;;;;;:55;;;;5650:35;;;;;;;5580:20;;5650:35;;;;;;;;;;;;;5228:464;;;:::o;1732:187:66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;6584:342:68:-;-1:-1:-1;;;;;6659:21:68;;6651:67;;;;-1:-1:-1;;;6651:67:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6750:68;6773:6;6750:68;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6750:18:68;;:9;:18;;;;;;;;;;;;:68;;:22;:68;:::i;:::-;-1:-1:-1;;;;;6729:18:68;;:9;:18;;;;;;;;;;:89;6843:12;;:24;;6860:6;6843:24;:16;:24;:::i;:::-;6828:12;:39;6882:37;;;;;;;;6908:1;;-1:-1:-1;;;;;6882:37:68;;;;;;;;;;;;6584:342;;:::o;7861:229::-;7932:22;7938:7;7947:6;7932:5;:22::i;:::-;7964:119;7973:7;7982:12;:10;:12::i;:::-;7996:86;8035:6;7996:86;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7996:20:68;;;;;;:11;:20;;;;;;8017:12;:10;:12::i;1274:134:66:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i","source":"pragma solidity ^0.5.0;\n\nimport \"../../GSN/Context.sol\";\nimport \"./ERC20.sol\";\n\n/**\n * @dev Extension of {ERC20} that allows token holders to destroy both their own\n * tokens and those that they have an allowance for, in a way that can be\n * recognized off-chain (via event analysis).\n */\ncontract ERC20Burnable is Context, ERC20 {\n /**\n * @dev Destroys `amount` tokens from the caller.\n *\n * See {ERC20-_burn}.\n */\n function burn(uint256 amount) public {\n _burn(_msgSender(), amount);\n }\n\n /**\n * @dev See {ERC20-_burnFrom}.\n */\n function burnFrom(address account, uint256 amount) public {\n _burnFrom(account, amount);\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","exportedSymbols":{"ERC20Burnable":[20948]},"id":20949,"nodeType":"SourceUnit","nodes":[{"id":20916,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:69"},{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","file":"../../GSN/Context.sol","id":20917,"nodeType":"ImportDirective","scope":20949,"sourceUnit":20059,"src":"25:31:69","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"./ERC20.sol","id":20918,"nodeType":"ImportDirective","scope":20949,"sourceUnit":20915,"src":"57:21:69","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":20919,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":20058,"src":"315:7:69","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20920,"nodeType":"InheritanceSpecifier","src":"315:7:69"},{"arguments":null,"baseName":{"contractScope":null,"id":20921,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":20914,"src":"324:5:69","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"id":20922,"nodeType":"InheritanceSpecifier","src":"324:5:69"}],"contractDependencies":[20058,20914,21017],"contractKind":"contract","documentation":"@dev Extension of {ERC20} that allows token holders to destroy both their own\ntokens and those that they have an allowance for, in a way that can be\nrecognized off-chain (via event analysis).","fullyImplemented":true,"id":20948,"linearizedBaseContracts":[20948,20914,21017,20058],"name":"ERC20Burnable","nodeType":"ContractDefinition","nodes":[{"body":{"id":20933,"nodeType":"Block","src":"476:44:69","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20928,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"492:10:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"492:12:69","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20924,"src":"506:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20927,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20842,"src":"486:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"486:27:69","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20932,"nodeType":"ExpressionStatement","src":"486:27:69"}]},"documentation":"@dev Destroys `amount` tokens from the caller.\n * See {ERC20-_burn}.","id":20934,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":20925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20924,"name":"amount","nodeType":"VariableDeclaration","scope":20934,"src":"453:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20923,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"452:16:69"},"returnParameters":{"id":20926,"nodeType":"ParameterList","parameters":[],"src":"476:0:69"},"scope":20948,"src":"439:81:69","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20946,"nodeType":"Block","src":"635:43:69","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20942,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20936,"src":"655:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20938,"src":"664:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20941,"name":"_burnFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20913,"src":"645:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"645:26:69","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20945,"nodeType":"ExpressionStatement","src":"645:26:69"}]},"documentation":"@dev See {ERC20-_burnFrom}.","id":20947,"implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nodeType":"FunctionDefinition","parameters":{"id":20939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20936,"name":"account","nodeType":"VariableDeclaration","scope":20947,"src":"595:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20935,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20938,"name":"amount","nodeType":"VariableDeclaration","scope":20947,"src":"612:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20937,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"594:33:69"},"returnParameters":{"id":20940,"nodeType":"ParameterList","parameters":[],"src":"635:0:69"},"scope":20948,"src":"577:101:69","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":20949,"src":"289:391:69"}],"src":"0:681:69"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol","exportedSymbols":{"ERC20Burnable":[20948]},"id":20949,"nodeType":"SourceUnit","nodes":[{"id":20916,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:69"},{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","file":"../../GSN/Context.sol","id":20917,"nodeType":"ImportDirective","scope":20949,"sourceUnit":20059,"src":"25:31:69","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"./ERC20.sol","id":20918,"nodeType":"ImportDirective","scope":20949,"sourceUnit":20915,"src":"57:21:69","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":20919,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":20058,"src":"315:7:69","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20920,"nodeType":"InheritanceSpecifier","src":"315:7:69"},{"arguments":null,"baseName":{"contractScope":null,"id":20921,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":20914,"src":"324:5:69","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"id":20922,"nodeType":"InheritanceSpecifier","src":"324:5:69"}],"contractDependencies":[20058,20914,21017],"contractKind":"contract","documentation":"@dev Extension of {ERC20} that allows token holders to destroy both their own\ntokens and those that they have an allowance for, in a way that can be\nrecognized off-chain (via event analysis).","fullyImplemented":true,"id":20948,"linearizedBaseContracts":[20948,20914,21017,20058],"name":"ERC20Burnable","nodeType":"ContractDefinition","nodes":[{"body":{"id":20933,"nodeType":"Block","src":"476:44:69","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20928,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"492:10:69","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20929,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"492:12:69","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20930,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20924,"src":"506:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20927,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20842,"src":"486:5:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20931,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"486:27:69","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20932,"nodeType":"ExpressionStatement","src":"486:27:69"}]},"documentation":"@dev Destroys `amount` tokens from the caller.\n * See {ERC20-_burn}.","id":20934,"implemented":true,"kind":"function","modifiers":[],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":20925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20924,"name":"amount","nodeType":"VariableDeclaration","scope":20934,"src":"453:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20923,"name":"uint256","nodeType":"ElementaryTypeName","src":"453:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"452:16:69"},"returnParameters":{"id":20926,"nodeType":"ParameterList","parameters":[],"src":"476:0:69"},"scope":20948,"src":"439:81:69","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20946,"nodeType":"Block","src":"635:43:69","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20942,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20936,"src":"655:7:69","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20938,"src":"664:6:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":20941,"name":"_burnFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20913,"src":"645:9:69","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":20944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"645:26:69","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20945,"nodeType":"ExpressionStatement","src":"645:26:69"}]},"documentation":"@dev See {ERC20-_burnFrom}.","id":20947,"implemented":true,"kind":"function","modifiers":[],"name":"burnFrom","nodeType":"FunctionDefinition","parameters":{"id":20939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20936,"name":"account","nodeType":"VariableDeclaration","scope":20947,"src":"595:15:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20935,"name":"address","nodeType":"ElementaryTypeName","src":"595:7:69","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20938,"name":"amount","nodeType":"VariableDeclaration","scope":20947,"src":"612:14:69","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20937,"name":"uint256","nodeType":"ElementaryTypeName","src":"612:7:69","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"594:33:69"},"returnParameters":{"id":20940,"nodeType":"ParameterList","parameters":[],"src":"635:0:69"},"scope":20948,"src":"577:101:69","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":20949,"src":"289:391:69"}],"src":"0:681:69"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.273Z","devdoc":{"details":"Extension of {ERC20} that allows token holders to destroy both their own tokens and those that they have an allowance for, in a way that can be recognized off-chain (via event analysis).","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"burn(uint256)":{"details":"Destroys `amount` tokens from the caller. * See {ERC20-_burn}."},"burnFrom(address,uint256)":{"details":"See {ERC20-_burnFrom}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20Mock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20Mock.json new file mode 100644 index 00000000..ea88bcec --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC20Mock.json @@ -0,0 +1 @@ +{"contractName":"ERC20Mock","abi":[{"inputs":[{"internalType":"address","name":"initialAccount","type":"address"},{"internalType":"uint256","name":"initialBalance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAccount\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/ERC20Mock.sol\":\"ERC20Mock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/ERC20Mock.sol\":{\"keccak256\":\"0xc4469b2a49d8c65c9608efe90a8d1dec7d295e16dbd81d5bce07608dd1a3abc5\",\"urls\":[\"bzz-raw://5efe7534151b7625ed80b29674be3fd7162ddf56acab5f4120c9f8e71c535466\",\"dweb:/ipfs/Qmf24e8RNDY4CxFQdkaNYr1n77oTXSuxtrKYpLAJzKpcBv\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"117:158:29:-;;;152:121;8:9:-1;5:2;;;30:1;27;20:12;5:2;152:121:29;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;152:121:29;;;;;;;229:37;152:121;;-1:-1:-1;;;;;229:5:29;:37;:::i;:::-;152:121;;117:158;;5962:302:68;-1:-1:-1;;;;;6037:21:68;;6029:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6120:24;6137:6;6120:12;;:16;;;;;;:24;;;;:::i;:::-;6105:12;:39;-1:-1:-1;;;;;6175:18:68;;:9;:18;;;;;;;;;;;;:30;;6198:6;;6175:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;6154:18:68;;:9;:18;;;;;;;;;;;:51;;;;6220:37;;;;;;;6154:18;;:9;;6220:37;;;;;;;;;;5962:302;;:::o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;117:158:29:-;;;;;;;","deployedSourceMap":"117:158:29:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;117:158:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2500:149:68;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2500:149:68;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1559:89;;;:::i;:::-;;;;;;;;;;;;;;;;3107:300;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3107:300:68;;;;;;;;;;;;;;;;;:::i;3802:207::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3802:207:68;;;;;;;;:::i;1706:108::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1706:108:68;-1:-1:-1;;;;;1706:108:68;;:::i;4496:258::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4496:258:68;;;;;;;;:::i;2017:155::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2017:155:68;;;;;;;;:::i;2230:132::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2230:132:68;;;;;;;;;;:::i;2500:149::-;2566:4;2582:39;2591:12;:10;:12::i;:::-;2605:7;2614:6;2582:8;:39::i;:::-;-1:-1:-1;2638:4:68;2500:149;;;;:::o;1559:89::-;1629:12;;1559:89;:::o;3107:300::-;3196:4;3212:36;3222:6;3230:9;3241:6;3212:9;:36::i;:::-;3258:121;3267:6;3275:12;:10;:12::i;:::-;3289:89;3327:6;3289:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3289:19:68;;;;;;:11;:19;;;;;;3309:12;:10;:12::i;:::-;-1:-1:-1;;;;;3289:33:68;;;;;;;;;;;;-1:-1:-1;3289:33:68;;;:89;;:37;:89;:::i;:::-;3258:8;:121::i;:::-;-1:-1:-1;3396:4:68;3107:300;;;;;:::o;3802:207::-;3882:4;3898:83;3907:12;:10;:12::i;:::-;3921:7;3930:50;3969:10;3930:11;:25;3942:12;:10;:12::i;:::-;-1:-1:-1;;;;;3930:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;3930:25:68;;;:34;;;;;;;;;;;:50;:38;:50;:::i;1706:108::-;-1:-1:-1;;;;;1789:18:68;1763:7;1789:18;;;;;;;;;;;;1706:108::o;4496:258::-;4581:4;4597:129;4606:12;:10;:12::i;:::-;4620:7;4629:96;4668:15;4629:96;;;;;;;;;;;;;;;;;:11;:25;4641:12;:10;:12::i;:::-;-1:-1:-1;;;;;4629:25:68;;;;;;;;;;;;;;;;;-1:-1:-1;4629:25:68;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;2017:155::-;2086:4;2102:42;2112:12;:10;:12::i;:::-;2126:9;2137:6;2102:9;:42::i;2230:132::-;-1:-1:-1;;;;;2328:18:68;;;2302:7;2328:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2230:132::o;788:96:63:-;867:10;788:96;:::o;7351:332:68:-;-1:-1:-1;;;;;7444:19:68;;7436:68;;;;-1:-1:-1;;;7436:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7522:21:68;;7514:68;;;;-1:-1:-1;;;7514:68:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7593:18:68;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7644:32;;;;;;;;;;;;;;;;;7351:332;;;:::o;5228:464::-;-1:-1:-1;;;;;5325:20:68;;5317:70;;;;-1:-1:-1;;;5317:70:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5405:23:68;;5397:71;;;;-1:-1:-1;;;5397:71:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5499;5521:6;5499:71;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5499:17:68;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;-1:-1:-1;;;;;5479:17:68;;;:9;:17;;;;;;;;;;;:91;;;;5603:20;;;;;;;:32;;5628:6;5603:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5580:20:68;;;:9;:20;;;;;;;;;;;;:55;;;;5650:35;;;;;;;5580:20;;5650:35;;;;;;;;;;;;;5228:464;;;:::o;1732:187:66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\n\n// mock class using ERC20\ncontract ERC20Mock is ERC20 {\n\n constructor(address initialAccount, uint256 initialBalance) public {\n _mint(initialAccount, initialBalance);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/ERC20Mock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ERC20Mock.sol","exportedSymbols":{"ERC20Mock":[8929]},"id":8930,"nodeType":"SourceUnit","nodes":[{"id":8912,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:29"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","id":8913,"nodeType":"ImportDirective","scope":8930,"sourceUnit":20915,"src":"25:63:29","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8914,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":20914,"src":"139:5:29","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"id":8915,"nodeType":"InheritanceSpecifier","src":"139:5:29"}],"contractDependencies":[20058,20914,21017],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8929,"linearizedBaseContracts":[8929,20914,21017,20058],"name":"ERC20Mock","nodeType":"ContractDefinition","nodes":[{"body":{"id":8927,"nodeType":"Block","src":"219:54:29","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8923,"name":"initialAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"235:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8924,"name":"initialBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"251:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8922,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20798,"src":"229:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"229:37:29","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8926,"nodeType":"ExpressionStatement","src":"229:37:29"}]},"documentation":null,"id":8928,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":8920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8917,"name":"initialAccount","nodeType":"VariableDeclaration","scope":8928,"src":"164:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8916,"name":"address","nodeType":"ElementaryTypeName","src":"164:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8919,"name":"initialBalance","nodeType":"VariableDeclaration","scope":8928,"src":"188:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8918,"name":"uint256","nodeType":"ElementaryTypeName","src":"188:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"163:48:29"},"returnParameters":{"id":8921,"nodeType":"ParameterList","parameters":[],"src":"219:0:29"},"scope":8929,"src":"152:121:29","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":8930,"src":"117:158:29"}],"src":"0:276:29"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ERC20Mock.sol","exportedSymbols":{"ERC20Mock":[8929]},"id":8930,"nodeType":"SourceUnit","nodes":[{"id":8912,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:29"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","id":8913,"nodeType":"ImportDirective","scope":8930,"sourceUnit":20915,"src":"25:63:29","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8914,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":20914,"src":"139:5:29","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"id":8915,"nodeType":"InheritanceSpecifier","src":"139:5:29"}],"contractDependencies":[20058,20914,21017],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8929,"linearizedBaseContracts":[8929,20914,21017,20058],"name":"ERC20Mock","nodeType":"ContractDefinition","nodes":[{"body":{"id":8927,"nodeType":"Block","src":"219:54:29","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8923,"name":"initialAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8917,"src":"235:14:29","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8924,"name":"initialBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8919,"src":"251:14:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8922,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20798,"src":"229:5:29","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"229:37:29","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8926,"nodeType":"ExpressionStatement","src":"229:37:29"}]},"documentation":null,"id":8928,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":8920,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8917,"name":"initialAccount","nodeType":"VariableDeclaration","scope":8928,"src":"164:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8916,"name":"address","nodeType":"ElementaryTypeName","src":"164:7:29","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8919,"name":"initialBalance","nodeType":"VariableDeclaration","scope":8928,"src":"188:22:29","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8918,"name":"uint256","nodeType":"ElementaryTypeName","src":"188:7:29","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"163:48:29"},"returnParameters":{"id":8921,"nodeType":"ParameterList","parameters":[],"src":"219:0:29"},"scope":8929,"src":"152:121:29","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":8930,"src":"117:158:29"}],"src":"0:276:29"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.144Z","devdoc":{"methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. * Requirements: * - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. * Emits an {Approval} event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. * Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for `sender`'s tokens of at least `amount`."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827.json new file mode 100644 index 00000000..eecf91ae --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827.json @@ -0,0 +1 @@ +{"contractName":"ERC827","abi":[{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Interface of a ERC827 token, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`. This is zero by default. * This value changes when `approve` or `transferFrom` are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * > Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * Emits an `Approval` event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event.\"}},\"title\":\"ERC827 interface, an extension of IERC20 token standard\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":\"ERC827\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":{\"keccak256\":\"0xec04362262d415f92c1d35e88c3d2baf5a5b0b09c7acc8c166fc4ca2dc26367e\",\"urls\":[\"bzz-raw://d37c465accfa410a48e0d5fb2b8e662dabae92b1b91d2d75c1dea6930496cbc1\",\"dweb:/ipfs/QmeHxdtvAvU27SJ3TpS5RkfdVgxdZmaVGS3AvHFpGu2mgA\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.11;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\n\n/**\n * @title ERC827 interface, an extension of IERC20 token standard\n *\n * @dev Interface of a ERC827 token, following the IERC20 standard with extra\n * methods to transfer value and data and execute calls in transfers and\n * approvals.\n */\ncontract ERC827 is IERC20 {\n\n function approveAndCall(address _spender, uint256 _value, bytes memory _data) public payable returns(bool);\n\n function transferAndCall(address _to, uint256 _value, bytes memory _data) public payable returns(bool);\n\n function transferFromAndCall(address _from, address _to, uint256 _value, bytes memory _data)\n public\n payable\n returns(bool);\n}\n","sourcePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol","ast":{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol","exportedSymbols":{"ERC827":[1334]},"id":1335,"nodeType":"SourceUnit","nodes":[{"id":1295,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:8"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","id":1296,"nodeType":"ImportDirective","scope":1335,"sourceUnit":6568,"src":"26:63:8","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1297,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":6636,"src":"353:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6636","typeString":"contract IERC20"}},"id":1298,"nodeType":"InheritanceSpecifier","src":"353:6:8"}],"contractDependencies":[6636],"contractKind":"contract","documentation":"@title ERC827 interface, an extension of IERC20 token standard\n * @dev Interface of a ERC827 token, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals.","fullyImplemented":false,"id":1334,"linearizedBaseContracts":[1334,6636],"name":"ERC827","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":1309,"implemented":false,"kind":"function","modifiers":[],"name":"approveAndCall","nodeType":"FunctionDefinition","parameters":{"id":1305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"name":"_spender","nodeType":"VariableDeclaration","scope":1309,"src":"391:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1299,"name":"address","nodeType":"ElementaryTypeName","src":"391:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1302,"name":"_value","nodeType":"VariableDeclaration","scope":1309,"src":"409:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1301,"name":"uint256","nodeType":"ElementaryTypeName","src":"409:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1304,"name":"_data","nodeType":"VariableDeclaration","scope":1309,"src":"425:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1303,"name":"bytes","nodeType":"ElementaryTypeName","src":"425:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"390:54:8"},"returnParameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"name":"","nodeType":"VariableDeclaration","scope":1309,"src":"468:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1306,"name":"bool","nodeType":"ElementaryTypeName","src":"468:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"467:6:8"},"scope":1334,"src":"367:107:8","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":1320,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nodeType":"FunctionDefinition","parameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1311,"name":"_to","nodeType":"VariableDeclaration","scope":1320,"src":"505:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1310,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1313,"name":"_value","nodeType":"VariableDeclaration","scope":1320,"src":"518:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1312,"name":"uint256","nodeType":"ElementaryTypeName","src":"518:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1315,"name":"_data","nodeType":"VariableDeclaration","scope":1320,"src":"534:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1314,"name":"bytes","nodeType":"ElementaryTypeName","src":"534:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"504:49:8"},"returnParameters":{"id":1319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"name":"","nodeType":"VariableDeclaration","scope":1320,"src":"577:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1317,"name":"bool","nodeType":"ElementaryTypeName","src":"577:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"576:6:8"},"scope":1334,"src":"480:103:8","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":1333,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromAndCall","nodeType":"FunctionDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"name":"_from","nodeType":"VariableDeclaration","scope":1333,"src":"618:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1321,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1324,"name":"_to","nodeType":"VariableDeclaration","scope":1333,"src":"633:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1323,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1326,"name":"_value","nodeType":"VariableDeclaration","scope":1333,"src":"646:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1325,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1328,"name":"_data","nodeType":"VariableDeclaration","scope":1333,"src":"662:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1327,"name":"bytes","nodeType":"ElementaryTypeName","src":"662:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"617:64:8"},"returnParameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"name":"","nodeType":"VariableDeclaration","scope":1333,"src":"717:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1330,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"716:6:8"},"scope":1334,"src":"589:134:8","stateMutability":"payable","superFunction":null,"visibility":"public"}],"scope":1335,"src":"334:391:8"}],"src":"0:726:8"},"legacyAST":{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol","exportedSymbols":{"ERC827":[1334]},"id":1335,"nodeType":"SourceUnit","nodes":[{"id":1295,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:8"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","id":1296,"nodeType":"ImportDirective","scope":1335,"sourceUnit":6568,"src":"26:63:8","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1297,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":6636,"src":"353:6:8","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$6636","typeString":"contract IERC20"}},"id":1298,"nodeType":"InheritanceSpecifier","src":"353:6:8"}],"contractDependencies":[6636],"contractKind":"contract","documentation":"@title ERC827 interface, an extension of IERC20 token standard\n * @dev Interface of a ERC827 token, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals.","fullyImplemented":false,"id":1334,"linearizedBaseContracts":[1334,6636],"name":"ERC827","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":1309,"implemented":false,"kind":"function","modifiers":[],"name":"approveAndCall","nodeType":"FunctionDefinition","parameters":{"id":1305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"name":"_spender","nodeType":"VariableDeclaration","scope":1309,"src":"391:16:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1299,"name":"address","nodeType":"ElementaryTypeName","src":"391:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1302,"name":"_value","nodeType":"VariableDeclaration","scope":1309,"src":"409:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1301,"name":"uint256","nodeType":"ElementaryTypeName","src":"409:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1304,"name":"_data","nodeType":"VariableDeclaration","scope":1309,"src":"425:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1303,"name":"bytes","nodeType":"ElementaryTypeName","src":"425:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"390:54:8"},"returnParameters":{"id":1308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1307,"name":"","nodeType":"VariableDeclaration","scope":1309,"src":"468:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1306,"name":"bool","nodeType":"ElementaryTypeName","src":"468:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"467:6:8"},"scope":1334,"src":"367:107:8","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":1320,"implemented":false,"kind":"function","modifiers":[],"name":"transferAndCall","nodeType":"FunctionDefinition","parameters":{"id":1316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1311,"name":"_to","nodeType":"VariableDeclaration","scope":1320,"src":"505:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1310,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1313,"name":"_value","nodeType":"VariableDeclaration","scope":1320,"src":"518:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1312,"name":"uint256","nodeType":"ElementaryTypeName","src":"518:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1315,"name":"_data","nodeType":"VariableDeclaration","scope":1320,"src":"534:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1314,"name":"bytes","nodeType":"ElementaryTypeName","src":"534:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"504:49:8"},"returnParameters":{"id":1319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1318,"name":"","nodeType":"VariableDeclaration","scope":1320,"src":"577:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1317,"name":"bool","nodeType":"ElementaryTypeName","src":"577:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"576:6:8"},"scope":1334,"src":"480:103:8","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":1333,"implemented":false,"kind":"function","modifiers":[],"name":"transferFromAndCall","nodeType":"FunctionDefinition","parameters":{"id":1329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1322,"name":"_from","nodeType":"VariableDeclaration","scope":1333,"src":"618:13:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1321,"name":"address","nodeType":"ElementaryTypeName","src":"618:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1324,"name":"_to","nodeType":"VariableDeclaration","scope":1333,"src":"633:11:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1323,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:8","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1326,"name":"_value","nodeType":"VariableDeclaration","scope":1333,"src":"646:14:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1325,"name":"uint256","nodeType":"ElementaryTypeName","src":"646:7:8","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1328,"name":"_data","nodeType":"VariableDeclaration","scope":1333,"src":"662:18:8","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1327,"name":"bytes","nodeType":"ElementaryTypeName","src":"662:5:8","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"617:64:8"},"returnParameters":{"id":1332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1331,"name":"","nodeType":"VariableDeclaration","scope":1333,"src":"717:4:8","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1330,"name":"bool","nodeType":"ElementaryTypeName","src":"717:4:8","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"716:6:8"},"scope":1334,"src":"589:134:8","stateMutability":"payable","superFunction":null,"visibility":"public"}],"scope":1335,"src":"334:391:8"}],"src":"0:726:8"},"compiler":{"name":"solc","version":"0.5.11+commit.c082d0b4.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.14","updatedAt":"2019-10-22T12:36:36.338Z","devdoc":{"details":"Interface of a ERC827 token, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals.","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through `transferFrom`. This is zero by default. * This value changes when `approve` or `transferFrom` are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * > Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * Emits an `Approval` event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a `Transfer` event."}},"title":"ERC827 interface, an extension of IERC20 token standard"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827Token.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827Token.json new file mode 100644 index 00000000..7b02976e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827Token.json @@ -0,0 +1 @@ +{"contractName":"ERC827Token","abi":[{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"increaseApprovalAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"decreaseApprovalAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_addedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"increaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_subtractedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"decreaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Implementation the ERC827, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals. Uses OpenZeppelin IERC20.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address that will spend the funds.\",\"_value\":\"The amount of tokens to be spent.\"},\"return\":\"true if the call function was executed successfully\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"decreaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\",\"_subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"increaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_addedValue\":\"The amount of tokens to increase the allowance by.\",\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_to\":\"address The address which you want to transfer to\",\"_value\":\"uint256 the amout of tokens to be transfered\"},\"return\":\"true if the call function was executed successfully\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_from\":\"The address which you want to send tokens from\",\"_to\":\"The address which you want to transfer to\",\"_value\":\"The amout of tokens to be transferred\"},\"return\":\"true if the call function was executed successfully\"}},\"title\":\"ERC827, an extension of IERC20 token standard\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol\":\"ERC827Token\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":{\"keccak256\":\"0xec04362262d415f92c1d35e88c3d2baf5a5b0b09c7acc8c166fc4ca2dc26367e\",\"urls\":[\"bzz-raw://d37c465accfa410a48e0d5fb2b8e662dabae92b1b91d2d75c1dea6930496cbc1\",\"dweb:/ipfs/QmeHxdtvAvU27SJ3TpS5RkfdVgxdZmaVGS3AvHFpGu2mgA\"]},\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol\":{\"keccak256\":\"0xe5688e3caf9ea613ad2d243378ba76a716479c0ee45b1b9c30fa0385e74046f3\",\"urls\":[\"bzz-raw://6394a94cba08292b21435ff3184fcaee681ea86baa6beb62fd3df8b1b6915908\",\"dweb:/ipfs/QmPWjaBQupJX2vZJQtCzKZW4J5FjLMUiiq7EcwtuW8K93c\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}","sourceMap":"371:5072:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;371:5072:9;;;;;;;","deployedSourceMap":"371:5072:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2453:145:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:89:21;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3055:252:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:21;;;;;;;;;;;;;;;;;:::i;3702:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3702:203:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:21;;;;;;;;:::i;2050:396:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2050:396:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2050:396:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2050:396:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2050:396:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2050:396:9;;-1:-1:-1;2050:396:9;;-1:-1:-1;;;;;2050:396:9:i;1661:108:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1661:108:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:21;-1:-1:-1;;;;;1661:108:21;;:::i;3941:444:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3941:444:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3941:444:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3941:444:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3941:444:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3941:444:9;;-1:-1:-1;3941:444:9;;-1:-1:-1;;;;;3941:444:9:i;4392:213:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4392:213:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:21;;;;;;;;:::i;1972:153::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:153:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:21;;;;;;;;:::i;2918:426:9:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2918:426:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2918:426:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2918:426:9;;-1:-1:-1;2918:426:9;;-1:-1:-1;;;;;2918:426:9:i;1205:415::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;1205:415:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1205:415:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1205:415:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1205:415:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1205:415:9;;-1:-1:-1;1205:415:9;;-1:-1:-1;;;;;1205:415:9:i;4987:454::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;4987:454:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4987:454:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4987:454:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4987:454:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4987:454:9;;-1:-1:-1;4987:454:9;;-1:-1:-1;;;;;4987:454:9:i;2183:132:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:132:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:21;;;;;;;;;;:::i;2453:145::-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:21;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:21;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:21;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:21;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;2050:396:9:-;2190:4;-1:-1:-1;;;;;2218:20:9;;2233:4;2218:20;;2210:29;;;;;;2250:27;2265:3;2270:6;2250:14;:27::i;:::-;;2343:12;2360:3;-1:-1:-1;;;;;2360:8:9;2375:9;2386:5;2360:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2360:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2342:50:9;;;2410:7;2402:16;;;;;;-1:-1:-1;2435:4:9;;2050:396;-1:-1:-1;;;;2050:396:9:o;1661:108:21:-;-1:-1:-1;;;;;1744:18:21;1718:7;1744:18;;;;;;;;;;;;1661:108::o;3941:444:9:-;4099:4;-1:-1:-1;;;;;4127:25:9;;4147:4;4127:25;;4119:34;;;;;;4164:46;4188:8;4198:11;4164:23;:46::i;4392:213:21:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:21;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2918:426:9:-;3077:4;-1:-1:-1;;;;;3105:20:9;;3120:4;3105:20;;3097:29;;;;;;3137:38;3156:5;3163:3;3168:6;3137:18;:38::i;:::-;;3241:12;3258:3;-1:-1:-1;;;;;3258:8:9;3273:9;3284:5;3258:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3258:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3240:50:9;;;3308:7;3300:16;;;;;;-1:-1:-1;3333:4:9;;2918:426;-1:-1:-1;;;;;2918:426:9:o;1205:415::-;1349:4;-1:-1:-1;;;;;1377:25:9;;1397:4;1377:25;;1369:34;;;;;;1414:31;1428:8;1438:6;1414:13;:31::i;4987:454::-;5150:4;-1:-1:-1;;;;;5178:25:9;;5198:4;5178:25;;5170:34;;;;;;5215:51;5239:8;5249:16;5215:23;:51::i;2183:132:21:-;-1:-1:-1;;;;;2281:18:21;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;7117:329::-;-1:-1:-1;;;;;7209:19:21;;7201:68;;;;-1:-1:-1;;;7201:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:21;;7279:68;;;;-1:-1:-1;;;7279:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:21;;5168:70;;;;-1:-1:-1;;;5168:70:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:21;;5248:71;;;;-1:-1:-1;;;5248:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:21;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:21;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:21;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:19:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:19;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:19:o","source":"pragma solidity ^0.5.11;\n\nimport \"./ERC827.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\";\n\n\n/**\n * @title ERC827, an extension of IERC20 token standard\n *\n * @dev Implementation the ERC827, following the IERC20 standard with extra\n * methods to transfer value and data and execute calls in transfers and\n * approvals. Uses OpenZeppelin IERC20.\n */\ncontract ERC827Token is ERC20, ERC827 {\n\n /**\n * @dev Addition to IERC20 token methods. It allows to\n * approve the transfer of value and execute a call with the sent data.\n * Beware that changing an allowance with this method brings the risk that\n * someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race condition\n * is to first reduce the spender's allowance to 0 and set the desired value\n * afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * @param _spender The address that will spend the funds.\n * @param _value The amount of tokens to be spent.\n * @param _data ABI-encoded contract call to call `_spender` address.\n * @return true if the call function was executed successfully\n */\n function approveAndCall(\n address _spender,\n uint256 _value,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_spender != address(this));\n\n super.approve(_spender, _value);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _spender.call.value(msg.value)(_data);\n require(success);\n\n return true;\n }\n\n /**\n * @dev Addition to IERC20 token methods. Transfer tokens to a specified\n * address and execute a call with the sent data on the same transaction\n * @param _to address The address which you want to transfer to\n * @param _value uint256 the amout of tokens to be transfered\n * @param _data ABI-encoded contract call to call `_to` address.\n * @return true if the call function was executed successfully\n */\n function transferAndCall(\n address _to,\n uint256 _value,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_to != address(this));\n\n super.transfer(_to, _value);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _to.call.value(msg.value)(_data);\n require(success);\n return true;\n }\n\n /**\n * @dev Addition to IERC20 token methods. Transfer tokens from one address to\n * another and make a contract call on the same transaction\n * @param _from The address which you want to send tokens from\n * @param _to The address which you want to transfer to\n * @param _value The amout of tokens to be transferred\n * @param _data ABI-encoded contract call to call `_to` address.\n * @return true if the call function was executed successfully\n */\n function transferFromAndCall(\n address _from,\n address _to,\n uint256 _value,\n bytes memory _data\n )\n public payable returns (bool)\n {\n require(_to != address(this));\n\n super.transferFrom(_from, _to, _value);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _to.call.value(msg.value)(_data);\n require(success);\n return true;\n }\n\n /**\n * @dev Addition to IERC20 methods. Increase the amount of tokens that\n * an owner allowed to a spender and execute a call with the sent data.\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 * @param _data ABI-encoded contract call to call `_spender` address.\n */\n function increaseApprovalAndCall(\n address _spender,\n uint256 _addedValue,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_spender != address(this));\n\n super.increaseAllowance(_spender, _addedValue);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _spender.call.value(msg.value)(_data);\n require(success);\n\n return true;\n }\n\n /**\n * @dev Addition to IERC20 methods. Decrease the amount of tokens that\n * an owner allowed to a spender and execute a call with the sent data.\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 * @param _data ABI-encoded contract call to call `_spender` address.\n */\n function decreaseApprovalAndCall(\n address _spender,\n uint256 _subtractedValue,\n bytes memory _data\n )\n public\n payable\n returns (bool)\n {\n require(_spender != address(this));\n\n super.decreaseAllowance(_spender, _subtractedValue);\n\n // solhint-disable-next-line avoid-call-value\n (bool success,) = _spender.call.value(msg.value)(_data);\n require(success);\n\n return true;\n }\n}\n","sourcePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol","ast":{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol","exportedSymbols":{"ERC827Token":[1566]},"id":1567,"nodeType":"SourceUnit","nodes":[{"id":1336,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:9"},{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol","file":"./ERC827.sol","id":1337,"nodeType":"ImportDirective","scope":1567,"sourceUnit":1335,"src":"26:22:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","id":1338,"nodeType":"ImportDirective","scope":1567,"sourceUnit":6568,"src":"49:63:9","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1339,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":6567,"src":"395:5:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$6567","typeString":"contract ERC20"}},"id":1340,"nodeType":"InheritanceSpecifier","src":"395:5:9"},{"arguments":null,"baseName":{"contractScope":null,"id":1341,"name":"ERC827","nodeType":"UserDefinedTypeName","referencedDeclaration":1334,"src":"402:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827_$1334","typeString":"contract ERC827"}},"id":1342,"nodeType":"InheritanceSpecifier","src":"402:6:9"}],"contractDependencies":[1334,6567,6636],"contractKind":"contract","documentation":"@title ERC827, an extension of IERC20 token standard\n * @dev Implementation the ERC827, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals. Uses OpenZeppelin IERC20.","fullyImplemented":true,"id":1566,"linearizedBaseContracts":[1566,1334,6567,6636],"name":"ERC827Token","nodeType":"ContractDefinition","nodes":[{"body":{"id":1385,"nodeType":"Block","src":"1359:261:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1354,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"1377:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1356,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"1397:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1389:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1389:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1377:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"1369:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1369:34:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1360,"nodeType":"ExpressionStatement","src":"1369:34:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1364,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"1428:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1365,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"1438:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1361,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"1414:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6265,"src":"1414:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1367,"nodeType":"ExpressionStatement","src":"1414:31:9"},{"assignments":[1369,null],"declarations":[{"constant":false,"id":1369,"name":"success","nodeType":"VariableDeclaration","scope":1385,"src":"1511:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1368,"name":"bool","nodeType":"ElementaryTypeName","src":"1511:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1378,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1376,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"1559:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1373,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"1548:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1548:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1370,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"1528:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1528:13:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1528:19:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1528:30:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1528:37:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1510:55:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1380,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"1583:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"1575:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1382,"nodeType":"ExpressionStatement","src":"1575:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1609:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1352,"id":1384,"nodeType":"Return","src":"1602:11:9"}]},"documentation":"@dev Addition to IERC20 token methods. It allows to\napprove the transfer of value and execute a call with the sent data.\nBeware that changing an allowance with this method brings the risk that\nsomeone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race condition\nis to first reduce the spender's allowance to 0 and set the desired value\nafterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address that will spend the funds.\n@param _value The amount of tokens to be spent.\n@param _data ABI-encoded contract call to call `_spender` address.\n@return true if the call function was executed successfully","id":1386,"implemented":true,"kind":"function","modifiers":[],"name":"approveAndCall","nodeType":"FunctionDefinition","parameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1344,"name":"_spender","nodeType":"VariableDeclaration","scope":1386,"src":"1238:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1343,"name":"address","nodeType":"ElementaryTypeName","src":"1238:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1346,"name":"_value","nodeType":"VariableDeclaration","scope":1386,"src":"1264:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1345,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1348,"name":"_data","nodeType":"VariableDeclaration","scope":1386,"src":"1288:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1347,"name":"bytes","nodeType":"ElementaryTypeName","src":"1288:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"1228:84:9"},"returnParameters":{"id":1352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1351,"name":"","nodeType":"VariableDeclaration","scope":1386,"src":"1349:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1350,"name":"bool","nodeType":"ElementaryTypeName","src":"1349:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1348:6:9"},"scope":1566,"src":"1205:415:9","stateMutability":"payable","superFunction":1309,"visibility":"public"},{"body":{"id":1429,"nodeType":"Block","src":"2200:246:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1398,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"2218:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1400,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"2233:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2225:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2225:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2218:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1397,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"2210:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2210:29:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1404,"nodeType":"ExpressionStatement","src":"2210:29:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1408,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"2265:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1409,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"2270:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1405,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"2250:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":6230,"src":"2250:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2250:27:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1411,"nodeType":"ExpressionStatement","src":"2250:27:9"},{"assignments":[1413,null],"declarations":[{"constant":false,"id":1413,"name":"success","nodeType":"VariableDeclaration","scope":1429,"src":"2343:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1412,"name":"bool","nodeType":"ElementaryTypeName","src":"2343:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1422,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1420,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"2386:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1417,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"2375:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2375:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1414,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"2360:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2360:8:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2360:14:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2360:25:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2360:32:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2342:50:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1424,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"2410:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"2402:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2402:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1426,"nodeType":"ExpressionStatement","src":"2402:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2435:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1396,"id":1428,"nodeType":"Return","src":"2428:11:9"}]},"documentation":"@dev Addition to IERC20 token methods. Transfer tokens to a specified\naddress and execute a call with the sent data on the same transaction\n@param _to address The address which you want to transfer to\n@param _value uint256 the amout of tokens to be transfered\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully","id":1430,"implemented":true,"kind":"function","modifiers":[],"name":"transferAndCall","nodeType":"FunctionDefinition","parameters":{"id":1393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1388,"name":"_to","nodeType":"VariableDeclaration","scope":1430,"src":"2084:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1387,"name":"address","nodeType":"ElementaryTypeName","src":"2084:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1390,"name":"_value","nodeType":"VariableDeclaration","scope":1430,"src":"2105:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1389,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1392,"name":"_data","nodeType":"VariableDeclaration","scope":1430,"src":"2129:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1391,"name":"bytes","nodeType":"ElementaryTypeName","src":"2129:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2074:79:9"},"returnParameters":{"id":1396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1395,"name":"","nodeType":"VariableDeclaration","scope":1430,"src":"2190:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1394,"name":"bool","nodeType":"ElementaryTypeName","src":"2190:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2189:6:9"},"scope":1566,"src":"2050:396:9","stateMutability":"payable","superFunction":1320,"visibility":"public"},{"body":{"id":1476,"nodeType":"Block","src":"3087:257:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1444,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3105:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1446,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"3120:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3112:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3112:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3105:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"3097:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3097:29:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1450,"nodeType":"ExpressionStatement","src":"3097:29:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1454,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1432,"src":"3156:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1455,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3163:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1456,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1436,"src":"3168:6:9","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":1451,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"3137:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6300,"src":"3137:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3137:38:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1458,"nodeType":"ExpressionStatement","src":"3137:38:9"},{"assignments":[1460,null],"declarations":[{"constant":false,"id":1460,"name":"success","nodeType":"VariableDeclaration","scope":1476,"src":"3241:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1459,"name":"bool","nodeType":"ElementaryTypeName","src":"3241:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1469,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1467,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"3284:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"3273:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3273:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1461,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3258:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3258:8:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3258:14:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3258:25:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3258:32:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3240:50:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1471,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"3308:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"3300:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3300:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1473,"nodeType":"ExpressionStatement","src":"3300:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3333:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1442,"id":1475,"nodeType":"Return","src":"3326:11:9"}]},"documentation":"@dev Addition to IERC20 token methods. Transfer tokens from one address to\nanother and make a contract call on the same transaction\n@param _from The address which you want to send tokens from\n@param _to The address which you want to transfer to\n@param _value The amout of tokens to be transferred\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully","id":1477,"implemented":true,"kind":"function","modifiers":[],"name":"transferFromAndCall","nodeType":"FunctionDefinition","parameters":{"id":1439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1432,"name":"_from","nodeType":"VariableDeclaration","scope":1477,"src":"2956:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1431,"name":"address","nodeType":"ElementaryTypeName","src":"2956:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1434,"name":"_to","nodeType":"VariableDeclaration","scope":1477,"src":"2979:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1433,"name":"address","nodeType":"ElementaryTypeName","src":"2979:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1436,"name":"_value","nodeType":"VariableDeclaration","scope":1477,"src":"3000:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3000:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1438,"name":"_data","nodeType":"VariableDeclaration","scope":1477,"src":"3024:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1437,"name":"bytes","nodeType":"ElementaryTypeName","src":"3024:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2946:102:9"},"returnParameters":{"id":1442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1441,"name":"","nodeType":"VariableDeclaration","scope":1477,"src":"3077:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1440,"name":"bool","nodeType":"ElementaryTypeName","src":"3077:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3076:6:9"},"scope":1566,"src":"2918:426:9","stateMutability":"payable","superFunction":1333,"visibility":"public"},{"body":{"id":1520,"nodeType":"Block","src":"4109:276:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1489,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"4127:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1491,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"4147:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4139:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4139:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4127:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"4119:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4119:34:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1495,"nodeType":"ExpressionStatement","src":"4119:34:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1499,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"4188:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1500,"name":"_addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"4198:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1496,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"4164:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":6327,"src":"4164:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4164:46:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1502,"nodeType":"ExpressionStatement","src":"4164:46:9"},{"assignments":[1504,null],"declarations":[{"constant":false,"id":1504,"name":"success","nodeType":"VariableDeclaration","scope":1520,"src":"4276:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1503,"name":"bool","nodeType":"ElementaryTypeName","src":"4276:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1513,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1511,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"4324:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"4313:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4313:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1505,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"4293:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4293:13:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4293:19:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4293:30:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4293:37:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4275:55:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1515,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"4348:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"4340:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4340:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1517,"nodeType":"ExpressionStatement","src":"4340:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4374:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1487,"id":1519,"nodeType":"Return","src":"4367:11:9"}]},"documentation":"@dev Addition to IERC20 methods. Increase the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.","id":1521,"implemented":true,"kind":"function","modifiers":[],"name":"increaseApprovalAndCall","nodeType":"FunctionDefinition","parameters":{"id":1484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"name":"_spender","nodeType":"VariableDeclaration","scope":1521,"src":"3983:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1478,"name":"address","nodeType":"ElementaryTypeName","src":"3983:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1481,"name":"_addedValue","nodeType":"VariableDeclaration","scope":1521,"src":"4009:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1480,"name":"uint256","nodeType":"ElementaryTypeName","src":"4009:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1483,"name":"_data","nodeType":"VariableDeclaration","scope":1521,"src":"4038:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1482,"name":"bytes","nodeType":"ElementaryTypeName","src":"4038:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"3973:89:9"},"returnParameters":{"id":1487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1486,"name":"","nodeType":"VariableDeclaration","scope":1521,"src":"4099:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1485,"name":"bool","nodeType":"ElementaryTypeName","src":"4099:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4098:6:9"},"scope":1566,"src":"3941:444:9","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":1564,"nodeType":"Block","src":"5160:281:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1533,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"5178:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1535,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"5198:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5190:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5190:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5178:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"5170:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5170:34:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1539,"nodeType":"ExpressionStatement","src":"5170:34:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1543,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"5239:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1544,"name":"_subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"5249:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1540,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"5215:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":6354,"src":"5215:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5215:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1546,"nodeType":"ExpressionStatement","src":"5215:51:9"},{"assignments":[1548,null],"declarations":[{"constant":false,"id":1548,"name":"success","nodeType":"VariableDeclaration","scope":1564,"src":"5332:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1547,"name":"bool","nodeType":"ElementaryTypeName","src":"5332:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1557,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1555,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"5380:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"5369:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5369:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1549,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"5349:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5349:13:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5349:19:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5349:30:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5349:37:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5331:55:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1559,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1548,"src":"5404:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"5396:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5396:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1561,"nodeType":"ExpressionStatement","src":"5396:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5430:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1531,"id":1563,"nodeType":"Return","src":"5423:11:9"}]},"documentation":"@dev Addition to IERC20 methods. Decrease the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.","id":1565,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseApprovalAndCall","nodeType":"FunctionDefinition","parameters":{"id":1528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"name":"_spender","nodeType":"VariableDeclaration","scope":1565,"src":"5029:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1522,"name":"address","nodeType":"ElementaryTypeName","src":"5029:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1525,"name":"_subtractedValue","nodeType":"VariableDeclaration","scope":1565,"src":"5055:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1524,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1527,"name":"_data","nodeType":"VariableDeclaration","scope":1565,"src":"5089:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1526,"name":"bytes","nodeType":"ElementaryTypeName","src":"5089:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"5019:94:9"},"returnParameters":{"id":1531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"name":"","nodeType":"VariableDeclaration","scope":1565,"src":"5150:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1529,"name":"bool","nodeType":"ElementaryTypeName","src":"5150:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5149:6:9"},"scope":1566,"src":"4987:454:9","stateMutability":"payable","superFunction":null,"visibility":"public"}],"scope":1567,"src":"371:5072:9"}],"src":"0:5444:9"},"legacyAST":{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol","exportedSymbols":{"ERC827Token":[1566]},"id":1567,"nodeType":"SourceUnit","nodes":[{"id":1336,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:9"},{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol","file":"./ERC827.sol","id":1337,"nodeType":"ImportDirective","scope":1567,"sourceUnit":1335,"src":"26:22:9","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol","id":1338,"nodeType":"ImportDirective","scope":1567,"sourceUnit":6568,"src":"49:63:9","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":1339,"name":"ERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":6567,"src":"395:5:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$6567","typeString":"contract ERC20"}},"id":1340,"nodeType":"InheritanceSpecifier","src":"395:5:9"},{"arguments":null,"baseName":{"contractScope":null,"id":1341,"name":"ERC827","nodeType":"UserDefinedTypeName","referencedDeclaration":1334,"src":"402:6:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827_$1334","typeString":"contract ERC827"}},"id":1342,"nodeType":"InheritanceSpecifier","src":"402:6:9"}],"contractDependencies":[1334,6567,6636],"contractKind":"contract","documentation":"@title ERC827, an extension of IERC20 token standard\n * @dev Implementation the ERC827, following the IERC20 standard with extra\nmethods to transfer value and data and execute calls in transfers and\napprovals. Uses OpenZeppelin IERC20.","fullyImplemented":true,"id":1566,"linearizedBaseContracts":[1566,1334,6567,6636],"name":"ERC827Token","nodeType":"ContractDefinition","nodes":[{"body":{"id":1385,"nodeType":"Block","src":"1359:261:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1354,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"1377:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1356,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"1397:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1389:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1389:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1377:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"1369:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1369:34:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1360,"nodeType":"ExpressionStatement","src":"1369:34:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1364,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"1428:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1365,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1346,"src":"1438:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1361,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"1414:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":6265,"src":"1414:13:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1414:31:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1367,"nodeType":"ExpressionStatement","src":"1414:31:9"},{"assignments":[1369,null],"declarations":[{"constant":false,"id":1369,"name":"success","nodeType":"VariableDeclaration","scope":1385,"src":"1511:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1368,"name":"bool","nodeType":"ElementaryTypeName","src":"1511:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1378,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1376,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1348,"src":"1559:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1373,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"1548:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1548:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1370,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1344,"src":"1528:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1528:13:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1528:19:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1528:30:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1528:37:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1510:55:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1380,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1369,"src":"1583:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1379,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"1575:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1382,"nodeType":"ExpressionStatement","src":"1575:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1609:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1352,"id":1384,"nodeType":"Return","src":"1602:11:9"}]},"documentation":"@dev Addition to IERC20 token methods. It allows to\napprove the transfer of value and execute a call with the sent data.\nBeware that changing an allowance with this method brings the risk that\nsomeone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race condition\nis to first reduce the spender's allowance to 0 and set the desired value\nafterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n@param _spender The address that will spend the funds.\n@param _value The amount of tokens to be spent.\n@param _data ABI-encoded contract call to call `_spender` address.\n@return true if the call function was executed successfully","id":1386,"implemented":true,"kind":"function","modifiers":[],"name":"approveAndCall","nodeType":"FunctionDefinition","parameters":{"id":1349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1344,"name":"_spender","nodeType":"VariableDeclaration","scope":1386,"src":"1238:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1343,"name":"address","nodeType":"ElementaryTypeName","src":"1238:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1346,"name":"_value","nodeType":"VariableDeclaration","scope":1386,"src":"1264:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1345,"name":"uint256","nodeType":"ElementaryTypeName","src":"1264:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1348,"name":"_data","nodeType":"VariableDeclaration","scope":1386,"src":"1288:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1347,"name":"bytes","nodeType":"ElementaryTypeName","src":"1288:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"1228:84:9"},"returnParameters":{"id":1352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1351,"name":"","nodeType":"VariableDeclaration","scope":1386,"src":"1349:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1350,"name":"bool","nodeType":"ElementaryTypeName","src":"1349:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1348:6:9"},"scope":1566,"src":"1205:415:9","stateMutability":"payable","superFunction":1309,"visibility":"public"},{"body":{"id":1429,"nodeType":"Block","src":"2200:246:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1398,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"2218:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1400,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"2233:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1399,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2225:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2225:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2218:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1397,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"2210:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2210:29:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1404,"nodeType":"ExpressionStatement","src":"2210:29:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1408,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"2265:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1409,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"2270:6:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1405,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"2250:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":6230,"src":"2250:14:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2250:27:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1411,"nodeType":"ExpressionStatement","src":"2250:27:9"},{"assignments":[1413,null],"declarations":[{"constant":false,"id":1413,"name":"success","nodeType":"VariableDeclaration","scope":1429,"src":"2343:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1412,"name":"bool","nodeType":"ElementaryTypeName","src":"2343:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1422,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1420,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1392,"src":"2386:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1417,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"2375:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2375:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1414,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1388,"src":"2360:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2360:8:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2360:14:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2360:25:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2360:32:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2342:50:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1424,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1413,"src":"2410:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"2402:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2402:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1426,"nodeType":"ExpressionStatement","src":"2402:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1427,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2435:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1396,"id":1428,"nodeType":"Return","src":"2428:11:9"}]},"documentation":"@dev Addition to IERC20 token methods. Transfer tokens to a specified\naddress and execute a call with the sent data on the same transaction\n@param _to address The address which you want to transfer to\n@param _value uint256 the amout of tokens to be transfered\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully","id":1430,"implemented":true,"kind":"function","modifiers":[],"name":"transferAndCall","nodeType":"FunctionDefinition","parameters":{"id":1393,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1388,"name":"_to","nodeType":"VariableDeclaration","scope":1430,"src":"2084:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1387,"name":"address","nodeType":"ElementaryTypeName","src":"2084:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1390,"name":"_value","nodeType":"VariableDeclaration","scope":1430,"src":"2105:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1389,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1392,"name":"_data","nodeType":"VariableDeclaration","scope":1430,"src":"2129:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1391,"name":"bytes","nodeType":"ElementaryTypeName","src":"2129:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2074:79:9"},"returnParameters":{"id":1396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1395,"name":"","nodeType":"VariableDeclaration","scope":1430,"src":"2190:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1394,"name":"bool","nodeType":"ElementaryTypeName","src":"2190:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2189:6:9"},"scope":1566,"src":"2050:396:9","stateMutability":"payable","superFunction":1320,"visibility":"public"},{"body":{"id":1476,"nodeType":"Block","src":"3087:257:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1444,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3105:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1446,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"3120:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3112:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3112:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3105:20:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"3097:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3097:29:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1450,"nodeType":"ExpressionStatement","src":"3097:29:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1454,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1432,"src":"3156:5:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1455,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3163:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1456,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1436,"src":"3168:6:9","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":1451,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"3137:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":6300,"src":"3137:18:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":1457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3137:38:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1458,"nodeType":"ExpressionStatement","src":"3137:38:9"},{"assignments":[1460,null],"declarations":[{"constant":false,"id":1460,"name":"success","nodeType":"VariableDeclaration","scope":1476,"src":"3241:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1459,"name":"bool","nodeType":"ElementaryTypeName","src":"3241:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1469,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1467,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1438,"src":"3284:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"3273:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3273:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1461,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1434,"src":"3258:3:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3258:8:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3258:14:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3258:25:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3258:32:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3240:50:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1471,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"3308:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1470,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"3300:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3300:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1473,"nodeType":"ExpressionStatement","src":"3300:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3333:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1442,"id":1475,"nodeType":"Return","src":"3326:11:9"}]},"documentation":"@dev Addition to IERC20 token methods. Transfer tokens from one address to\nanother and make a contract call on the same transaction\n@param _from The address which you want to send tokens from\n@param _to The address which you want to transfer to\n@param _value The amout of tokens to be transferred\n@param _data ABI-encoded contract call to call `_to` address.\n@return true if the call function was executed successfully","id":1477,"implemented":true,"kind":"function","modifiers":[],"name":"transferFromAndCall","nodeType":"FunctionDefinition","parameters":{"id":1439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1432,"name":"_from","nodeType":"VariableDeclaration","scope":1477,"src":"2956:13:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1431,"name":"address","nodeType":"ElementaryTypeName","src":"2956:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1434,"name":"_to","nodeType":"VariableDeclaration","scope":1477,"src":"2979:11:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1433,"name":"address","nodeType":"ElementaryTypeName","src":"2979:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1436,"name":"_value","nodeType":"VariableDeclaration","scope":1477,"src":"3000:14:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1435,"name":"uint256","nodeType":"ElementaryTypeName","src":"3000:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1438,"name":"_data","nodeType":"VariableDeclaration","scope":1477,"src":"3024:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1437,"name":"bytes","nodeType":"ElementaryTypeName","src":"3024:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2946:102:9"},"returnParameters":{"id":1442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1441,"name":"","nodeType":"VariableDeclaration","scope":1477,"src":"3077:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1440,"name":"bool","nodeType":"ElementaryTypeName","src":"3077:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3076:6:9"},"scope":1566,"src":"2918:426:9","stateMutability":"payable","superFunction":1333,"visibility":"public"},{"body":{"id":1520,"nodeType":"Block","src":"4109:276:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1489,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"4127:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1491,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"4147:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4139:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4139:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4127:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"4119:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4119:34:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1495,"nodeType":"ExpressionStatement","src":"4119:34:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1499,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"4188:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1500,"name":"_addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1481,"src":"4198:11:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1496,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"4164:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":6327,"src":"4164:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4164:46:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1502,"nodeType":"ExpressionStatement","src":"4164:46:9"},{"assignments":[1504,null],"declarations":[{"constant":false,"id":1504,"name":"success","nodeType":"VariableDeclaration","scope":1520,"src":"4276:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1503,"name":"bool","nodeType":"ElementaryTypeName","src":"4276:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1513,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1511,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1483,"src":"4324:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"4313:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4313:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1505,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1479,"src":"4293:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4293:13:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4293:19:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4293:30:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4293:37:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"4275:55:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1515,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1504,"src":"4348:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1514,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"4340:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4340:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1517,"nodeType":"ExpressionStatement","src":"4340:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4374:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1487,"id":1519,"nodeType":"Return","src":"4367:11:9"}]},"documentation":"@dev Addition to IERC20 methods. Increase the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To increment\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _addedValue The amount of tokens to increase the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.","id":1521,"implemented":true,"kind":"function","modifiers":[],"name":"increaseApprovalAndCall","nodeType":"FunctionDefinition","parameters":{"id":1484,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1479,"name":"_spender","nodeType":"VariableDeclaration","scope":1521,"src":"3983:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1478,"name":"address","nodeType":"ElementaryTypeName","src":"3983:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1481,"name":"_addedValue","nodeType":"VariableDeclaration","scope":1521,"src":"4009:19:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1480,"name":"uint256","nodeType":"ElementaryTypeName","src":"4009:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1483,"name":"_data","nodeType":"VariableDeclaration","scope":1521,"src":"4038:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1482,"name":"bytes","nodeType":"ElementaryTypeName","src":"4038:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"3973:89:9"},"returnParameters":{"id":1487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1486,"name":"","nodeType":"VariableDeclaration","scope":1521,"src":"4099:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1485,"name":"bool","nodeType":"ElementaryTypeName","src":"4099:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4098:6:9"},"scope":1566,"src":"3941:444:9","stateMutability":"payable","superFunction":null,"visibility":"public"},{"body":{"id":1564,"nodeType":"Block","src":"5160:281:9","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":1533,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"5178:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1535,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6712,"src":"5198:4:9","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}],"id":1534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5190:7:9","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":1536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5190:13:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5178:25:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"5170:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5170:34:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1539,"nodeType":"ExpressionStatement","src":"5170:34:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1543,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"5239:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":1544,"name":"_subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"5249:16:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1540,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6713,"src":"5215:5:9","typeDescriptions":{"typeIdentifier":"t_super$_ERC827Token_$1566","typeString":"contract super ERC827Token"}},"id":1542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":6354,"src":"5215:23:9","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":1545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5215:51:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1546,"nodeType":"ExpressionStatement","src":"5215:51:9"},{"assignments":[1548,null],"declarations":[{"constant":false,"id":1548,"name":"success","nodeType":"VariableDeclaration","scope":1564,"src":"5332:12:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1547,"name":"bool","nodeType":"ElementaryTypeName","src":"5332:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":1557,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1555,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1527,"src":"5380:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6670,"src":"5369:3:9","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5369:9:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":1549,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1523,"src":"5349:8:9","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5349:13:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5349:19:9","typeDescriptions":{"typeIdentifier":"t_function_setvalue_pure$_t_uint256_$returns$_t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value_$","typeString":"function (uint256) pure returns (function (bytes memory) payable returns (bool,bytes memory))"}},"id":1554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5349:30:9","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":1556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5349:37:9","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"5331:55:9"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1559,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1548,"src":"5404:7:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":1558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[6673,6674],"referencedDeclaration":6673,"src":"5396:7:9","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":1560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5396:16:9","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1561,"nodeType":"ExpressionStatement","src":"5396:16:9"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5430:4:9","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1531,"id":1563,"nodeType":"Return","src":"5423:11:9"}]},"documentation":"@dev Addition to IERC20 methods. Decrease the amount of tokens that\nan owner allowed to a spender and execute a call with the sent data.\napprove should be called when allowed[_spender] == 0. To decrement\nallowed value is better to use this function to avoid 2 calls (and wait until\nthe first transaction is mined)\nFrom MonolithDAO Token.sol\n@param _spender The address which will spend the funds.\n@param _subtractedValue The amount of tokens to decrease the allowance by.\n@param _data ABI-encoded contract call to call `_spender` address.","id":1565,"implemented":true,"kind":"function","modifiers":[],"name":"decreaseApprovalAndCall","nodeType":"FunctionDefinition","parameters":{"id":1528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1523,"name":"_spender","nodeType":"VariableDeclaration","scope":1565,"src":"5029:16:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1522,"name":"address","nodeType":"ElementaryTypeName","src":"5029:7:9","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1525,"name":"_subtractedValue","nodeType":"VariableDeclaration","scope":1565,"src":"5055:24:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1524,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:9","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":1527,"name":"_data","nodeType":"VariableDeclaration","scope":1565,"src":"5089:18:9","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":1526,"name":"bytes","nodeType":"ElementaryTypeName","src":"5089:5:9","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"5019:94:9"},"returnParameters":{"id":1531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1530,"name":"","nodeType":"VariableDeclaration","scope":1565,"src":"5150:4:9","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1529,"name":"bool","nodeType":"ElementaryTypeName","src":"5150:4:9","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5149:6:9"},"scope":1566,"src":"4987:454:9","stateMutability":"payable","superFunction":null,"visibility":"public"}],"scope":1567,"src":"371:5072:9"}],"src":"0:5444:9"},"compiler":{"name":"solc","version":"0.5.11+commit.c082d0b4.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.14","updatedAt":"2019-10-22T12:36:36.339Z","devdoc":{"details":"Implementation the ERC827, following the IERC20 standard with extra methods to transfer value and data and execute calls in transfers and approvals. Uses OpenZeppelin IERC20.","methods":{"allowance(address,address)":{"details":"See `IERC20.allowance`."},"approve(address,uint256)":{"details":"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address."},"approveAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729","params":{"_data":"ABI-encoded contract call to call `_spender` address.","_spender":"The address that will spend the funds.","_value":"The amount of tokens to be spent."},"return":"true if the call function was executed successfully"},"balanceOf(address)":{"details":"See `IERC20.balanceOf`."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"decreaseApprovalAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol","params":{"_data":"ABI-encoded contract call to call `_spender` address.","_spender":"The address which will spend the funds.","_subtractedValue":"The amount of tokens to decrease the allowance by."}},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."},"increaseApprovalAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol","params":{"_addedValue":"The amount of tokens to increase the allowance by.","_data":"ABI-encoded contract call to call `_spender` address.","_spender":"The address which will spend the funds."}},"totalSupply()":{"details":"See `IERC20.totalSupply`."},"transfer(address,uint256)":{"details":"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction","params":{"_data":"ABI-encoded contract call to call `_to` address.","_to":"address The address which you want to transfer to","_value":"uint256 the amout of tokens to be transfered"},"return":"true if the call function was executed successfully"},"transferFrom(address,address,uint256)":{"details":"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`."},"transferFromAndCall(address,address,uint256,bytes)":{"details":"Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction","params":{"_data":"ABI-encoded contract call to call `_to` address.","_from":"The address which you want to send tokens from","_to":"The address which you want to transfer to","_value":"The amout of tokens to be transferred"},"return":"true if the call function was executed successfully"}},"title":"ERC827, an extension of IERC20 token standard"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827TokenMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827TokenMock.json new file mode 100644 index 00000000..013d6f04 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ERC827TokenMock.json @@ -0,0 +1 @@ +{"contractName":"ERC827TokenMock","abi":[{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"increaseApprovalAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"transferFromAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"decreaseApprovalAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"initialAccount","type":"address"},{"internalType":"uint256","name":"initialBalance","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"}],"metadata":"{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_addedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"increaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"transferFromAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"approveAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_subtractedValue\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"decreaseApprovalAndCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"initialAccount\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"initialBalance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"See `IERC20.allowance`.\"},\"approve(address,uint256)\":{\"details\":\"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address.\"},\"approveAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address that will spend the funds.\",\"_value\":\"The amount of tokens to be spent.\"},\"return\":\"true if the call function was executed successfully\"},\"balanceOf(address)\":{\"details\":\"See `IERC20.balanceOf`.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"decreaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\",\"_subtractedValue\":\"The amount of tokens to decrease the allowance by.\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address.\"},\"increaseApprovalAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol\",\"params\":{\"_addedValue\":\"The amount of tokens to increase the allowance by.\",\"_data\":\"ABI-encoded contract call to call `_spender` address.\",\"_spender\":\"The address which will spend the funds.\"}},\"totalSupply()\":{\"details\":\"See `IERC20.totalSupply`.\"},\"transfer(address,uint256)\":{\"details\":\"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferAndCall(address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_to\":\"address The address which you want to transfer to\",\"_value\":\"uint256 the amout of tokens to be transfered\"},\"return\":\"true if the call function was executed successfully\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`.\"},\"transferFromAndCall(address,address,uint256,bytes)\":{\"details\":\"Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction\",\"params\":{\"_data\":\"ABI-encoded contract call to call `_to` address.\",\"_from\":\"The address which you want to send tokens from\",\"_to\":\"The address which you want to transfer to\",\"_value\":\"The amout of tokens to be transferred\"},\"return\":\"true if the call function was executed successfully\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol\":\"ERC827TokenMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol\":{\"keccak256\":\"0x3eee306d24706cf0d5459bf5fd91d817b7e90e13c1551f30a2c7de11005f93bf\",\"urls\":[\"bzz-raw://ec24445c22c4e6f67a45fe95839e8f25482815c7a5b91a53b56326bb49440914\",\"dweb:/ipfs/QmTMhPFg1sfHUVL1VigZbu2ECL83Af98RxT6mP1NFE35X3\"]},\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827.sol\":{\"keccak256\":\"0xec04362262d415f92c1d35e88c3d2baf5a5b0b09c7acc8c166fc4ca2dc26367e\",\"urls\":[\"bzz-raw://d37c465accfa410a48e0d5fb2b8e662dabae92b1b91d2d75c1dea6930496cbc1\",\"dweb:/ipfs/QmeHxdtvAvU27SJ3TpS5RkfdVgxdZmaVGS3AvHFpGu2mgA\"]},\"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol\":{\"keccak256\":\"0xe5688e3caf9ea613ad2d243378ba76a716479c0ee45b1b9c30fa0385e74046f3\",\"urls\":[\"bzz-raw://6394a94cba08292b21435ff3184fcaee681ea86baa6beb62fd3df8b1b6915908\",\"dweb:/ipfs/QmPWjaBQupJX2vZJQtCzKZW4J5FjLMUiiq7EcwtuW8K93c\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x4ccf2d7b51873db1ccfd54ca2adae5eac3b184f9699911ed4490438419f1c690\",\"urls\":[\"bzz-raw://d62d769b2219d5de39013093412623e624fa887f871826ea3bae6052ee893610\",\"dweb:/ipfs/QmV3yVktya1s617QmuzQR2CfuJgUi3dR2xEZY9ecmqZ2G1\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x852793a3c2f86d336a683b30d688ec3dcfc57451af5a2bf5975cda3b7191a901\",\"urls\":[\"bzz-raw://4f5b57664069671648fb81f55b0082faecdf1b2f159eec6b1fa6cef9b7d73bc5\",\"dweb:/ipfs/QmcyytaLs7zFdb4Uu7C5PmQRhQdB3wA3fUdkV6mkYfdDFH\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x90e8c2521653bbb1768b05889c5760031e688d9cd361f167489b89215e201b95\",\"urls\":[\"bzz-raw://d0abb99bb8bfc2bc0a89902b8ed1dc0442ad08cc78cee64c291b3df6a27bcccc\",\"dweb:/ipfs/QmP5NaEwZthQeM2ESz4WTT3osrP7jhbvu7ocbttBi2JAw6\"]}},\"version\":1}","sourceMap":"102:171:5:-;;;149:121;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:121:5;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;149:121:5;;;;;;;226:37;149:121;;-1:-1:-1;;;;;226:5:5;:37;:::i;:::-;149:121;;102:171;;5771:302:21;-1:-1:-1;;;;;5846:21:21;;5838:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5929:24;5946:6;5929:12;;:16;;;;;;:24;;;;:::i;:::-;5914:12;:39;-1:-1:-1;;;;;5984:18:21;;:9;:18;;;;;;;;;;;;:30;;6007:6;;5984:22;;;;;:30;;:::i;:::-;-1:-1:-1;;;;;5963:18:21;;:9;:18;;;;;;;;;;;:51;;;;6029:37;;;;;;;5963:18;;:9;;6029:37;;;;;;;;;;5771:302;;:::o;834:176:19:-;892:7;923:5;;;946:6;;;;938:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:19:o;102:171:5:-;;;;;;;","deployedSourceMap":"102:171:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2453:145:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2453:145:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2453:145:21;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1514:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1514:89:21;;;:::i;:::-;;;;;;;;;;;;;;;;3055:252;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3055:252:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3055:252:21;;;;;;;;;;;;;;;;;:::i;3702:203::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3702:203:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3702:203:21;;;;;;;;:::i;2050:396:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;2050:396:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2050:396:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2050:396:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2050:396:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2050:396:9;;-1:-1:-1;2050:396:9;;-1:-1:-1;;;;;2050:396:9:i;1661:108:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1661:108:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1661:108:21;-1:-1:-1;;;;;1661:108:21;;:::i;3941:444:9:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;3941:444:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3941:444:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3941:444:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3941:444:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3941:444:9;;-1:-1:-1;3941:444:9;;-1:-1:-1;;;;;3941:444:9:i;4392:213:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4392:213:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4392:213:21;;;;;;;;:::i;1972:153::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:153:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1972:153:21;;;;;;;;:::i;2918:426:9:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2918:426:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2918:426:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2918:426:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2918:426:9;;-1:-1:-1;2918:426:9;;-1:-1:-1;;;;;2918:426:9:i;1205:415::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;1205:415:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1205:415:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1205:415:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1205:415:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1205:415:9;;-1:-1:-1;1205:415:9;;-1:-1:-1;;;;;1205:415:9:i;4987:454::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;4987:454:9;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;4987:454:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4987:454:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4987:454:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4987:454:9;;-1:-1:-1;4987:454:9;;-1:-1:-1;;;;;4987:454:9:i;2183:132:21:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2183:132:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2183:132:21;;;;;;;;;;:::i;2453:145::-;2518:4;2534:36;2543:10;2555:7;2564:5;2534:8;:36::i;:::-;-1:-1:-1;2587:4:21;2453:145;;;;:::o;1514:89::-;1584:12;;1514:89;:::o;3055:252::-;3144:4;3160:36;3170:6;3178:9;3189:6;3160:9;:36::i;:::-;-1:-1:-1;;;;;3235:19:21;;;;;;:11;:19;;;;;;;;3223:10;3235:31;;;;;;;;;3206:73;;3215:6;;3235:43;;3271:6;3235:43;:35;:43;:::i;:::-;3206:8;:73::i;:::-;-1:-1:-1;3296:4:21;3055:252;;;;;:::o;3702:203::-;3807:10;3782:4;3828:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;3828:32:21;;;;;;;;;;3782:4;;3798:79;;3819:7;;3828:48;;3865:10;3828:48;:36;:48;:::i;2050:396:9:-;2190:4;-1:-1:-1;;;;;2218:20:9;;2233:4;2218:20;;2210:29;;;;;;2250:27;2265:3;2270:6;2250:14;:27::i;:::-;;2343:12;2360:3;-1:-1:-1;;;;;2360:8:9;2375:9;2386:5;2360:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2360:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2342:50:9;;;2410:7;2402:16;;;;;;-1:-1:-1;2435:4:9;;2050:396;-1:-1:-1;;;;2050:396:9:o;1661:108:21:-;-1:-1:-1;;;;;1744:18:21;1718:7;1744:18;;;;;;;;;;;;1661:108::o;3941:444:9:-;4099:4;-1:-1:-1;;;;;4127:25:9;;4147:4;4127:25;;4119:34;;;;;;4164:46;4188:8;4198:11;4164:23;:46::i;4392:213:21:-;4502:10;4477:4;4523:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;4523:32:21;;;;;;;;;;4477:4;;4493:84;;4514:7;;4523:53;;4560:15;4523:53;:36;:53;:::i;1972:153::-;2041:4;2057:40;2067:10;2079:9;2090:6;2057:9;:40::i;2918:426:9:-;3077:4;-1:-1:-1;;;;;3105:20:9;;3120:4;3105:20;;3097:29;;;;;;3137:38;3156:5;3163:3;3168:6;3137:18;:38::i;:::-;;3241:12;3258:3;-1:-1:-1;;;;;3258:8:9;3273:9;3284:5;3258:32;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;3258:32:9;;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;3240:50:9;;;3308:7;3300:16;;;;;;-1:-1:-1;3333:4:9;;2918:426;-1:-1:-1;;;;;2918:426:9:o;1205:415::-;1349:4;-1:-1:-1;;;;;1377:25:9;;1397:4;1377:25;;1369:34;;;;;;1414:31;1428:8;1438:6;1414:13;:31::i;4987:454::-;5150:4;-1:-1:-1;;;;;5178:25:9;;5198:4;5178:25;;5170:34;;;;;;5215:51;5239:8;5249:16;5215:23;:51::i;2183:132:21:-;-1:-1:-1;;;;;2281:18:21;;;2255:7;2281:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;2183:132::o;7117:329::-;-1:-1:-1;;;;;7209:19:21;;7201:68;;;;-1:-1:-1;;;7201:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7287:21:21;;7279:68;;;;-1:-1:-1;;;7279:68:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7358:18:21;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:35;;;7408:31;;;;;;;;;;;;;;;;;7117:329;;;:::o;5079:422::-;-1:-1:-1;;;;;5176:20:21;;5168:70;;;;-1:-1:-1;;;5168:70:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5256:23:21;;5248:71;;;;-1:-1:-1;;;5248:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5350:17:21;;:9;:17;;;;;;;;;;;:29;;5372:6;5350:29;:21;:29;:::i;:::-;-1:-1:-1;;;;;5330:17:21;;;:9;:17;;;;;;;;;;;:49;;;;5412:20;;;;;;;:32;;5437:6;5412:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;5389:20:21;;;:9;:20;;;;;;;;;;;;:55;;;;5459:35;;;;;;;5389:20;;5459:35;;;;;;;;;;;;;5079:422;;;:::o;1274:179:19:-;1332:7;1364:1;1359;:6;;1351:49;;;;;-1:-1:-1;;;1351:49:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1422:5:19;;;1274:179::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:19:o","source":"pragma solidity ^0.5.11;\n\nimport \"../token/ERC827/ERC827Token.sol\";// mock class using ERC827 Token\n\n\ncontract ERC827TokenMock is ERC827Token {\n\n constructor(address initialAccount, uint256 initialBalance) public {\n _mint(initialAccount, initialBalance);\n }\n\n}\n","sourcePath":"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol","ast":{"absolutePath":"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol","exportedSymbols":{"ERC827TokenMock":[952]},"id":953,"nodeType":"SourceUnit","nodes":[{"id":935,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:5"},{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol","file":"../token/ERC827/ERC827Token.sol","id":936,"nodeType":"ImportDirective","scope":953,"sourceUnit":1567,"src":"26:41:5","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":937,"name":"ERC827Token","nodeType":"UserDefinedTypeName","referencedDeclaration":1566,"src":"130:11:5","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}},"id":938,"nodeType":"InheritanceSpecifier","src":"130:11:5"}],"contractDependencies":[1334,1566,6567,6636],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":952,"linearizedBaseContracts":[952,1566,1334,6567,6636],"name":"ERC827TokenMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":950,"nodeType":"Block","src":"216:54:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":946,"name":"initialAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"232:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":947,"name":"initialBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"248:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":945,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"226:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"226:37:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":949,"nodeType":"ExpressionStatement","src":"226:37:5"}]},"documentation":null,"id":951,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"name":"initialAccount","nodeType":"VariableDeclaration","scope":951,"src":"161:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":939,"name":"address","nodeType":"ElementaryTypeName","src":"161:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":942,"name":"initialBalance","nodeType":"VariableDeclaration","scope":951,"src":"185:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":941,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"160:48:5"},"returnParameters":{"id":944,"nodeType":"ParameterList","parameters":[],"src":"216:0:5"},"scope":952,"src":"149:121:5","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":953,"src":"102:171:5"}],"src":"0:274:5"},"legacyAST":{"absolutePath":"/Users/oren/daostack/infra/contracts/test/ERC827TokenMock.sol","exportedSymbols":{"ERC827TokenMock":[952]},"id":953,"nodeType":"SourceUnit","nodes":[{"id":935,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:5"},{"absolutePath":"/Users/oren/daostack/infra/contracts/token/ERC827/ERC827Token.sol","file":"../token/ERC827/ERC827Token.sol","id":936,"nodeType":"ImportDirective","scope":953,"sourceUnit":1567,"src":"26:41:5","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":937,"name":"ERC827Token","nodeType":"UserDefinedTypeName","referencedDeclaration":1566,"src":"130:11:5","typeDescriptions":{"typeIdentifier":"t_contract$_ERC827Token_$1566","typeString":"contract ERC827Token"}},"id":938,"nodeType":"InheritanceSpecifier","src":"130:11:5"}],"contractDependencies":[1334,1566,6567,6636],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":952,"linearizedBaseContracts":[952,1566,1334,6567,6636],"name":"ERC827TokenMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":950,"nodeType":"Block","src":"216:54:5","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":946,"name":"initialAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":940,"src":"232:14:5","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":947,"name":"initialBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":942,"src":"248:14:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":945,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6453,"src":"226:5:5","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"226:37:5","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":949,"nodeType":"ExpressionStatement","src":"226:37:5"}]},"documentation":null,"id":951,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":940,"name":"initialAccount","nodeType":"VariableDeclaration","scope":951,"src":"161:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":939,"name":"address","nodeType":"ElementaryTypeName","src":"161:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":942,"name":"initialBalance","nodeType":"VariableDeclaration","scope":951,"src":"185:22:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":941,"name":"uint256","nodeType":"ElementaryTypeName","src":"185:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"160:48:5"},"returnParameters":{"id":944,"nodeType":"ParameterList","parameters":[],"src":"216:0:5"},"scope":952,"src":"149:121:5","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":953,"src":"102:171:5"}],"src":"0:274:5"},"compiler":{"name":"solc","version":"0.5.11+commit.c082d0b4.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.14","updatedAt":"2019-10-22T12:36:36.334Z","devdoc":{"methods":{"allowance(address,address)":{"details":"See `IERC20.allowance`."},"approve(address,uint256)":{"details":"See `IERC20.approve`. * Requirements: * - `spender` cannot be the zero address."},"approveAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 token methods. It allows to approve the transfer of value and execute a call with the sent data. Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729","params":{"_data":"ABI-encoded contract call to call `_spender` address.","_spender":"The address that will spend the funds.","_value":"The amount of tokens to be spent."},"return":"true if the call function was executed successfully"},"balanceOf(address)":{"details":"See `IERC20.balanceOf`."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"decreaseApprovalAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 methods. Decrease the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To decrement allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol","params":{"_data":"ABI-encoded contract call to call `_spender` address.","_spender":"The address which will spend the funds.","_subtractedValue":"The amount of tokens to decrease the allowance by."}},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. * This is an alternative to `approve` that can be used as a mitigation for problems described in `IERC20.approve`. * Emits an `Approval` event indicating the updated allowance. * Requirements: * - `spender` cannot be the zero address."},"increaseApprovalAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 methods. Increase the amount of tokens that an owner allowed to a spender and execute a call with the sent data. approve should be called when allowed[_spender] == 0. To increment allowed value is better to use this function to avoid 2 calls (and wait until the first transaction is mined) From MonolithDAO Token.sol","params":{"_addedValue":"The amount of tokens to increase the allowance by.","_data":"ABI-encoded contract call to call `_spender` address.","_spender":"The address which will spend the funds."}},"totalSupply()":{"details":"See `IERC20.totalSupply`."},"transfer(address,uint256)":{"details":"See `IERC20.transfer`. * Requirements: * - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferAndCall(address,uint256,bytes)":{"details":"Addition to IERC20 token methods. Transfer tokens to a specified address and execute a call with the sent data on the same transaction","params":{"_data":"ABI-encoded contract call to call `_to` address.","_to":"address The address which you want to transfer to","_value":"uint256 the amout of tokens to be transfered"},"return":"true if the call function was executed successfully"},"transferFrom(address,address,uint256)":{"details":"See `IERC20.transferFrom`. * Emits an `Approval` event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of `ERC20`; * Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `value`. - the caller must have allowance for `sender`'s tokens of at least `amount`."},"transferFromAndCall(address,address,uint256,bytes)":{"details":"Addition to IERC20 token methods. Transfer tokens from one address to another and make a contract call on the same transaction","params":{"_data":"ABI-encoded contract call to call `_to` address.","_from":"The address which you want to send tokens from","_to":"The address which you want to transfer to","_value":"The amout of tokens to be transferred"},"return":"true if the call function was executed successfully"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ExternalLocking4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ExternalLocking4Reputation.json new file mode 100644 index 00000000..d875b993 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ExternalLocking4Reputation.json @@ -0,0 +1 @@ +{"contractName":"ExternalLocking4Reputation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_locker","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"}],"name":"Register","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Release","type":"event"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"externalLockers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"externalLockingContract","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getBalanceFuncSignature","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"lockers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLockingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"registrar","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"scores","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_reputationReward","type":"uint256"},{"internalType":"uint256","name":"_claimingStartTime","type":"uint256"},{"internalType":"uint256","name":"_claimingEndTime","type":"uint256"},{"internalType":"uint256","name":"_redeemEnableTime","type":"uint256"},{"internalType":"address","name":"_externalLockingContract","type":"address"},{"internalType":"string","name":"_getBalanceFuncSignature","type":"string"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"claim","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"register","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"Lock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"Register\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"externalLockers\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"externalLockingContract\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getBalanceFuncSignature\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_claimingStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_claimingEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_redeemEnableTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_externalLockingContract\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_getBalanceFuncSignature\",\"type\":\"string\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"lockers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releaseTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxLockingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"register\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"registrar\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"scores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLockedLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalScore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"claim(address,bytes32)\":{\"details\":\"claim function\",\"params\":{\"_beneficiary\":\"the beneficiary address to claim for if _beneficiary == 0 the claim will be for the msg.sender.\"},\"return\":\"claimId\"},\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"initialize(address,uint256,uint256,uint256,uint256,address,string,bytes32)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar to mint reputation from\",\"_claimingEndTime\":\"the claiming end time. claiming is disable after this time.\",\"_claimingStartTime\":\"claiming starting period time.\",\"_externalLockingContract\":\"the contract which lock the token.\",\"_getBalanceFuncSignature\":\"get balance function signature e.g \\\"lockedTokenBalances(address)\\\"\",\"_redeemEnableTime\":\"redeem enable time . redeem reputation can be done after this time.\",\"_reputationReward\":\"the total reputation this contract will reward for the token locking\"}},\"redeem(address)\":{\"details\":\"redeem reputation function\",\"params\":{\"_beneficiary\":\"the beneficiary for the release\"},\"return\":\"uint256 reputation rewarded\"},\"register(bytes32)\":{\"details\":\"register function register for external locking claim\"}},\"title\":\"A scheme for external locking Tokens for reputation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/ExternalLocking4Reputation.sol\":\"ExternalLocking4Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/ExternalLocking4Reputation.sol\":{\"keccak256\":\"0x793e18bae08875636727f377c9b510b30275c21f67fb07a9473ac525bee50676\",\"urls\":[\"bzz-raw://6db73706d3ed42e2387baa4b1f7a98144dd9de0dca1986c986d55303a21f4652\",\"dweb:/ipfs/QmawjJfrRMbn1Jo9Neohz4qr8xe9mVyUdBcDjLcSo58QeG\"]},\"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol\":{\"keccak256\":\"0x0180348aed9e3a89f810920e1876b37991a50f6166fb3d16a624db7a8d7785e9\",\"urls\":[\"bzz-raw://8ae7d576bab9e4ba527a731461821c1427fbdf899c9253a50aeb2134f996029b\",\"dweb:/ipfs/QmWVkTjrmvm6U7mrKLskDWcKUxBhkswNeN9VvgXgY7qK2H\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"132:3392:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;132:3392:13;;;;;;;","deployedSourceMap":"132:3392:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;132:3392:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:31:17;;;:::i;:::-;;;;;;;;;;;;;;;;1119;;;:::i;806:26::-;;;:::i;551:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;551:20:17;;;;;;;;;;;;;;407:101:7;;;:::i;761:38:17:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;761:38:17;-1:-1:-1;;;;;761:38:17;;:::i;248::13:-;;;:::i;639:59:17:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;639:59:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1351:798;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1351:798:17;-1:-1:-1;;;;;1351:798:17;;:::i;1047:29::-;;;:::i;1006:35::-;;;:::i;1082:31::-;;;:::i;874:25::-;;;:::i;905:30::-;;;:::i;838:::-;;;:::i;2150:1121:13:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2150:1121:13;;;;;;;;:::i;358:47::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;358:47:13;-1:-1:-1;;;;;358:47:13;;:::i;:::-;;;;;;;;;;;;;;;;;;3367:155;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3367:155:13;;:::i;:::-;;443:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;443:45:13;-1:-1:-1;;;;;443:45:13;;:::i;969:31:17:-;;;:::i;292:37:13:-;;;:::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;292:37:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1182:759;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;1182:759:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1182:759:13;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1182:759:13;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;1182:759:13;;-1:-1:-1;1182:759:13;-1:-1:-1;1182:759:13;;:::i;1156:31:17:-;;;;:::o;1119:::-;;;;:::o;806:26::-;;;;:::o;551:20::-;;;-1:-1:-1;;;;;551:20:17;;:::o;407:101:7:-;458:7;488:13;407:101;;:::o;761:38:17:-;;;;;;;;;;;;;:::o;248::13:-;;;-1:-1:-1;;;;;248:38:13;;:::o;639:59:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1351:798::-;1404:18;1514:16;;1496:15;:34;1488:69;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1575:20:17;;1598:1;1575:20;;;:6;:20;;;;;;1567:56;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:20:17;;1633:13;1649:20;;;:6;:20;;;;;;;1679:24;;;;1745:16;;1649:20;;1633:13;1735:27;;1649:20;;1735:27;:9;:27;:::i;:::-;1713:49;;1785:27;1801:10;;1785:11;:15;;:27;;;;:::i;:::-;1894:20;;1772:40;;-1:-1:-1;1894:36:17;;1772:40;1894:36;:24;:36;:::i;:::-;1871:20;:59;1977:6;;:14;;;-1:-1:-1;;;1977:14:17;;;;-1:-1:-1;;;;;1977:6:17;;;;:12;;:14;;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;1977:14:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1977:14:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1977:14:17;2051:6;;1957:102;;;-1:-1:-1;;;1957:102:17;;;;;;;;-1:-1:-1;;;;;1957:102:17;;;;;;;2051:6;;;1957:102;;;;;;:59;;;;;;;:102;;;;;1977:14;;1957:102;;;;;;;2051:6;1957:59;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;1957:102:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1957:102:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1957:102:17;1940:154;;;;;-1:-1:-1;;;1940:154:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:32;;;;;;;;-1:-1:-1;;;;;2110:32:17;;;;;;;;;;;;;1351:798;;;;;:::o;1047:29::-;;;;:::o;1006:35::-;;;;:::o;1082:31::-;;;;:::o;874:25::-;;;;:::o;905:30::-;;;;:::o;838:::-;;;;:::o;2150:1121:13:-;2253:6;;2226:7;;-1:-1:-1;;;;;2253:6:13;2245:55;;;;;-1:-1:-1;;;2245:55:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:19;-1:-1:-1;;;;;2343:26:13;;2339:218;;-1:-1:-1;2399:10:13;2339:218;;;-1:-1:-1;;;;;2448:23:13;;;;;;:9;:23;;;;;;;;2440:66;;;;;-1:-1:-1;;;2440:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2534:12:13;2339:218;-1:-1:-1;;;;;2574:28:13;;;;;;:15;:28;;;;;;;;:37;2566:104;;;;-1:-1:-1;;;2566:104:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2680:28:13;;;;;;;:15;:28;;;;;;:35;;-1:-1:-1;;2680:35:13;2711:4;2680:35;;;;;;2851:23;;2880:61;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2880:61:13;;;;;;2904:23;2880:61;;2680:28;;2739:24;;2851:23;;;2880:61;;2904:23;;2880:61;;;;2904:23;;2880:61;-1:-1:-1;;2880:61:13;;;;2680:35;2880:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2880:61:13;;;;;;;;;;38:4:-1;25:18;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;2880:61:13;;;179:29:-1;;;;160:49;;2851:91:13;;;;;;-1:-1:-1;2851:91:13;;-1:-1:-1;2851:91:13;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2851:91:13;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2725:217:13;;;;2960:6;2952:59;;;;-1:-1:-1;;;2952:59:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3169:4;3152:22;;3146:29;3201:63;3146:29;3227:1;3230:11;3227:1;;3249:14;3201:11;:63::i;:::-;3194:70;;;;;;2150:1121;;;;;:::o;358:47::-;;;;;;;;;;;;;;;:::o;3367:155::-;3426:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3462:10:13;3452:21;;;;:9;:21;;;;;;:28;;-1:-1:-1;;3452:28:13;3476:4;3452:28;;;3495:20;;;3452:21;3495:20;3367:155;;:::o;443:45::-;;;;;;;;;;;;;;;:::o;969:31:17:-;;;;:::o;292:37:13:-;;;;;;;;;;;;;;;-1:-1:-1;;292:37:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1182:759::-;1545:18;1526:16;:37;1518:108;;;;-1:-1:-1;;;1518:108:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1636:23;:50;;-1:-1:-1;;;;;;1636:50:13;-1:-1:-1;;;;;1636:50:13;;;;;1696;:23;1722:24;;1696:50;:::i;:::-;;1756:178;1783:7;1800:17;1827:18;1855:16;1881:17;1908:1;1919:14;1756:17;:178::i;:::-;1182:759;;;;;;;;;:::o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:1;2159:459;-1:-1:-1;;;2159:459:66:o;3073:130::-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;3141:1683:17:-;3389:17;3357:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3444:1:17;3434:7;:11;3426:52;;;;;-1:-1:-1;;;3426:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;3507:16;;3496:7;:27;;3488:84;;;;-1:-1:-1;;;3488:84:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:1;3590:7;:11;3582:52;;;;;-1:-1:-1;;;3582:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:14;;3706:3;:21;;3698:82;;;;-1:-1:-1;;;3698:82:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3859:16;;3852:3;:23;;3844:76;;;;-1:-1:-1;;;3844:76:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3985:15;;3953:48;;;3978:4;3953:48;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3953:48:17;;;;;;;3943:59;;;;;;-1:-1:-1;4030:22:17;;4050:1;4030:22;:19;:22;:::i;:::-;4012:15;:40;-1:-1:-1;;;;;4087:16:17;;4063:21;4087:16;;;:7;:16;;;;;;;;:27;;;;;;;;4124:23;;;4232:3;:13;;4211:18;;;:34;4269:11;;:24;;4140:7;4269:24;:15;:24;:::i;:::-;4255:11;:38;4321:15;;:28;;4341:7;4321:28;:19;:28;:::i;:::-;4303:15;:46;4359:13;4375:54;4416:12;4375:36;4400:10;4375:20;:7;4387;4375:20;:11;:20;:::i;:::-;:24;:36;:24;:36;:::i;:::-;:40;:54;:40;:54;:::i;:::-;4359:70;;4455:1;4447:5;:9;4439:39;;;;;-1:-1:-1;;;4439:39:17;;;;;;;;;;;;-1:-1:-1;;;4439:39:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;4506:15:17;;;;;;:6;:15;;;;;;:26;;4526:5;4506:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;4488:15:17;;;;;;:6;:15;;;;;:44;;;4669:16;;;4614:34;;;4488:44;4613:52;;;;;:72;4605:110;;;;;-1:-1:-1;;;4605:110:17;;;;;;;;;;;;-1:-1:-1;;;4605:110:17;;;;;;;;;;;;;;;4738:10;;:21;;4753:5;4738:21;:14;:21;:::i;:::-;4725:10;:34;4775:42;;;;;;;;;;;;;;4789:9;;-1:-1:-1;;;;;4775:42:17;;;;;;;;;;;;;;311:1:7;;3141:1683:17;;;;;;;;;:::o;5378:969::-;5665:6;;-1:-1:-1;;;;;5665:6:17;:19;5657:59;;;;;-1:-1:-1;;;5657:59:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5734:20:17;;5726:54;;;;;-1:-1:-1;;;5726:54:17;;;;;;;;;;;;-1:-1:-1;;;5726:54:17;;;;;;;;;;;;;;;5816:17;5798:15;:35;5790:106;;;;-1:-1:-1;;;5790:106:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5935:15;5914:17;:36;;5906:83;;;;-1:-1:-1;;;5906:83:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:16;:36;;;6046:20;:40;;;6096:14;:32;;;6138:16;:36;;;6184:6;:16;;-1:-1:-1;;;;;;6184:16:17;-1:-1:-1;;;;;6184:16:17;;;;;6210;:36;;;6256:16;:36;;;6302:38;6325:14;6302:22;:38::i;:::-;5378:969;;;;;;;:::o;3718:338:66:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:66;-1:-1:-1;;;1888:5:66;;;1732:187::o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;658:187:7;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o;132:3392:13:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;132:3392:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;132:3392:13;;;-1:-1:-1;132:3392:13;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;","source":"pragma solidity 0.5.13;\n\nimport \"./Locking4Reputation.sol\";\n\n/**\n * @title A scheme for external locking Tokens for reputation\n */\n\ncontract ExternalLocking4Reputation is Locking4Reputation {\n\n event Register(address indexed _beneficiary);\n\n address public externalLockingContract;\n string public getBalanceFuncSignature;\n\n // locker -> bool\n mapping(address => bool) public externalLockers;\n // beneficiary -> bool\n mapping(address => bool) public registrar;\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _reputationReward the total reputation this contract will reward\n * for the token locking\n * @param _claimingStartTime claiming starting period time.\n * @param _claimingEndTime the claiming end time.\n * claiming is disable after this time.\n * @param _redeemEnableTime redeem enable time .\n * redeem reputation can be done after this time.\n * @param _externalLockingContract the contract which lock the token.\n * @param _getBalanceFuncSignature get balance function signature\n * e.g \"lockedTokenBalances(address)\"\n */\n function initialize(\n Avatar _avatar,\n uint256 _reputationReward,\n uint256 _claimingStartTime,\n uint256 _claimingEndTime,\n uint256 _redeemEnableTime,\n address _externalLockingContract,\n string calldata _getBalanceFuncSignature,\n bytes32 _agreementHash)\n external\n {\n require(_claimingEndTime > _claimingStartTime, \"_claimingEndTime should be greater than _claimingStartTime\");\n externalLockingContract = _externalLockingContract;\n getBalanceFuncSignature = _getBalanceFuncSignature;\n super._initialize(\n _avatar,\n _reputationReward,\n _claimingStartTime,\n _claimingEndTime,\n _redeemEnableTime,\n 1,\n _agreementHash);\n }\n\n /**\n * @dev claim function\n * @param _beneficiary the beneficiary address to claim for\n * if _beneficiary == 0 the claim will be for the msg.sender.\n * @return claimId\n */\n function claim(address _beneficiary, bytes32 _agreementHash) public returns(bytes32) {\n require(avatar != Avatar(0), \"should initialize first\");\n address beneficiary;\n if (_beneficiary == address(0)) {\n beneficiary = msg.sender;\n } else {\n require(registrar[_beneficiary], \"beneficiary should be register\");\n beneficiary = _beneficiary;\n }\n require(externalLockers[beneficiary] == false, \"claiming twice for the same beneficiary is not allowed\");\n externalLockers[beneficiary] = true;\n (bool result, bytes memory returnValue) =\n // solhint-disable-next-line avoid-call-value,avoid-low-level-calls\n externalLockingContract.call(abi.encodeWithSignature(getBalanceFuncSignature, beneficiary));\n require(result, \"call to external contract should succeed\");\n uint256 lockedAmount;\n // solhint-disable-next-line no-inline-assembly\n assembly {\n lockedAmount := mload(add(returnValue, 0x20))\n }\n return super._lock(lockedAmount, 1, beneficiary, 1, 1, _agreementHash);\n }\n\n /**\n * @dev register function\n * register for external locking claim\n */\n function register(bytes32 _agreementHash) public onlyAgree(_agreementHash) {\n registrar[msg.sender] = true;\n emit Register(msg.sender);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/ExternalLocking4Reputation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ExternalLocking4Reputation.sol","exportedSymbols":{"ExternalLocking4Reputation":[6486]},"id":6487,"nodeType":"SourceUnit","nodes":[{"id":6305,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:13"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","file":"./Locking4Reputation.sol","id":6306,"nodeType":"ImportDirective","scope":6487,"sourceUnit":7594,"src":"25:34:13","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6307,"name":"Locking4Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":7593,"src":"171:18:13","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}},"id":6308,"nodeType":"InheritanceSpecifier","src":"171:18:13"}],"contractDependencies":[2302,7593],"contractKind":"contract","documentation":"@title A scheme for external locking Tokens for reputation","fullyImplemented":true,"id":6486,"linearizedBaseContracts":[6486,7593,2302],"name":"ExternalLocking4Reputation","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":6312,"name":"Register","nodeType":"EventDefinition","parameters":{"id":6311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6310,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6312,"src":"212:28:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6309,"name":"address","nodeType":"ElementaryTypeName","src":"212:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"211:30:13"},"src":"197:45:13"},{"constant":false,"id":6314,"name":"externalLockingContract","nodeType":"VariableDeclaration","scope":6486,"src":"248:38:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6313,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":6316,"name":"getBalanceFuncSignature","nodeType":"VariableDeclaration","scope":6486,"src":"292:37:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6315,"name":"string","nodeType":"ElementaryTypeName","src":"292:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":false,"id":6320,"name":"externalLockers","nodeType":"VariableDeclaration","scope":6486,"src":"358:47:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6319,"keyType":{"id":6317,"name":"address","nodeType":"ElementaryTypeName","src":"366:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"358:24:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6318,"name":"bool","nodeType":"ElementaryTypeName","src":"377:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"constant":false,"id":6324,"name":"registrar","nodeType":"VariableDeclaration","scope":6486,"src":"443:45:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6323,"keyType":{"id":6321,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"443:28:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6322,"name":"bool","nodeType":"ElementaryTypeName","src":"466:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"body":{"id":6370,"nodeType":"Block","src":"1508:433:13","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6344,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6332,"src":"1526:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":6345,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"1545:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1526:37:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f636c61696d696e67456e6454696d652073686f756c642062652067726561746572207468616e205f636c61696d696e67537461727454696d65","id":6347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1565:60:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f43cd45023caad6fa78d92af28dc95821751fdd2341c795a7ce3d3a5ccfc4125","typeString":"literal_string \"_claimingEndTime should be greater than _claimingStartTime\""},"value":"_claimingEndTime should be greater than _claimingStartTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f43cd45023caad6fa78d92af28dc95821751fdd2341c795a7ce3d3a5ccfc4125","typeString":"literal_string \"_claimingEndTime should be greater than _claimingStartTime\""}],"id":6343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1518:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1518:108:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6349,"nodeType":"ExpressionStatement","src":"1518:108:13"},{"expression":{"argumentTypes":null,"id":6352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6350,"name":"externalLockingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6314,"src":"1636:23:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6351,"name":"_externalLockingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"1662:24:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1636:50:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6353,"nodeType":"ExpressionStatement","src":"1636:50:13"},{"expression":{"argumentTypes":null,"id":6356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6354,"name":"getBalanceFuncSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"1696:23:13","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6355,"name":"_getBalanceFuncSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"1722:24:13","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"1696:50:13","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6357,"nodeType":"ExpressionStatement","src":"1696:50:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6361,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6326,"src":"1783:7:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":6362,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6328,"src":"1800:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6363,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"1827:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6364,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6332,"src":"1855:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6365,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6334,"src":"1881:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1908:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":6367,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"1919:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":6358,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21188,"src":"1756:5:13","typeDescriptions":{"typeIdentifier":"t_super$_ExternalLocking4Reputation_$6486","typeString":"contract super ExternalLocking4Reputation"}},"id":6360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":7592,"src":"1756:17:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Avatar_$337_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (contract Avatar,uint256,uint256,uint256,uint256,uint256,bytes32)"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1756:178:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6369,"nodeType":"ExpressionStatement","src":"1756:178:13"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for the token locking\n@param _claimingStartTime claiming starting period time.\n@param _claimingEndTime the claiming end time.\n claiming is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _externalLockingContract the contract which lock the token.\n@param _getBalanceFuncSignature get balance function signature\n e.g \"lockedTokenBalances(address)\"","id":6371,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6326,"name":"_avatar","nodeType":"VariableDeclaration","scope":6371,"src":"1211:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6325,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1211:6:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6328,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":6371,"src":"1235:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6327,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6330,"name":"_claimingStartTime","nodeType":"VariableDeclaration","scope":6371,"src":"1270:26:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6329,"name":"uint256","nodeType":"ElementaryTypeName","src":"1270:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6332,"name":"_claimingEndTime","nodeType":"VariableDeclaration","scope":6371,"src":"1306:24:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6331,"name":"uint256","nodeType":"ElementaryTypeName","src":"1306:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6334,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":6371,"src":"1340:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1340:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6336,"name":"_externalLockingContract","nodeType":"VariableDeclaration","scope":6371,"src":"1375:32:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6335,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6338,"name":"_getBalanceFuncSignature","nodeType":"VariableDeclaration","scope":6371,"src":"1417:40:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6337,"name":"string","nodeType":"ElementaryTypeName","src":"1417:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":6340,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":6371,"src":"1467:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1467:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1201:289:13"},"returnParameters":{"id":6342,"nodeType":"ParameterList","parameters":[],"src":"1508:0:13"},"scope":6486,"src":"1182:759:13","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6463,"nodeType":"Block","src":"2235:1036:13","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6381,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2253:6:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2270:1:13","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":6382,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2263:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2263:9:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2253:19:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73686f756c6420696e697469616c697a65206669727374","id":6386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2274:25:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""},"value":"should initialize first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""}],"id":6380,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2245:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2245:55:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6388,"nodeType":"ExpressionStatement","src":"2245:55:13"},{"assignments":[6390],"declarations":[{"constant":false,"id":6390,"name":"beneficiary","nodeType":"VariableDeclaration","scope":6463,"src":"2310:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6389,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":6391,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2310:19:13"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6392,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"2343:12:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:1:13","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":6393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2359:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2359:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2343:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6414,"nodeType":"Block","src":"2426:131:13","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6404,"name":"registrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"2448:9:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6406,"indexExpression":{"argumentTypes":null,"id":6405,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"2458:12:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2448:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62656e65666963696172792073686f756c64206265207265676973746572","id":6407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2473:32:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ea7a1e9fa31cef2874e739c66382dac4b84526b8b6a2427afa00104ff337dead","typeString":"literal_string \"beneficiary should be register\""},"value":"beneficiary should be register"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea7a1e9fa31cef2874e739c66382dac4b84526b8b6a2427afa00104ff337dead","typeString":"literal_string \"beneficiary should be register\""}],"id":6403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2440:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:66:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6409,"nodeType":"ExpressionStatement","src":"2440:66:13"},{"expression":{"argumentTypes":null,"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6410,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2520:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6411,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"2534:12:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2520:26:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6413,"nodeType":"ExpressionStatement","src":"2520:26:13"}]},"id":6415,"nodeType":"IfStatement","src":"2339:218:13","trueBody":{"id":6402,"nodeType":"Block","src":"2371:49:13","statements":[{"expression":{"argumentTypes":null,"id":6400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6397,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2385:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6398,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2399:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2399:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2385:24:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6401,"nodeType":"ExpressionStatement","src":"2385:24:13"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6417,"name":"externalLockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6320,"src":"2574:15:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6419,"indexExpression":{"argumentTypes":null,"id":6418,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2590:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2574:28:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":6420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2606:5:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2574:37:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636c61696d696e6720747769636520666f72207468652073616d652062656e6566696369617279206973206e6f7420616c6c6f776564","id":6422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2613:56:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c797443103e3b630ad9d7b3dbf1b4a67aea7116a7770e00d639804b7458fe5bd","typeString":"literal_string \"claiming twice for the same beneficiary is not allowed\""},"value":"claiming twice for the same beneficiary is not allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c797443103e3b630ad9d7b3dbf1b4a67aea7116a7770e00d639804b7458fe5bd","typeString":"literal_string \"claiming twice for the same beneficiary is not allowed\""}],"id":6416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2566:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2566:104:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6424,"nodeType":"ExpressionStatement","src":"2566:104:13"},{"expression":{"argumentTypes":null,"id":6429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6425,"name":"externalLockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6320,"src":"2680:15:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6427,"indexExpression":{"argumentTypes":null,"id":6426,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2696:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2680:28:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2711:4:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2680:35:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6430,"nodeType":"ExpressionStatement","src":"2680:35:13"},{"assignments":[6432,6434],"declarations":[{"constant":false,"id":6432,"name":"result","nodeType":"VariableDeclaration","scope":6463,"src":"2726:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6431,"name":"bool","nodeType":"ElementaryTypeName","src":"2726:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":6434,"name":"returnValue","nodeType":"VariableDeclaration","scope":6463,"src":"2739:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6433,"name":"bytes","nodeType":"ElementaryTypeName","src":"2739:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":6443,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6439,"name":"getBalanceFuncSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"2904:23:13","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"id":6440,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2929:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":6437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2880:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2880:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2880:61:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":6435,"name":"externalLockingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6314,"src":"2851:23:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2851:28:13","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2851:91:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2725:217:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6445,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6432,"src":"2960:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616c6c20746f2065787465726e616c20636f6e74726163742073686f756c642073756363656564","id":6446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2968:42:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0aee880375833f4119d9f67d7e91d1f55cd11578de475f8f1242b127c621e305","typeString":"literal_string \"call to external contract should succeed\""},"value":"call to external contract should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0aee880375833f4119d9f67d7e91d1f55cd11578de475f8f1242b127c621e305","typeString":"literal_string \"call to external contract should succeed\""}],"id":6444,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2952:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:59:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6448,"nodeType":"ExpressionStatement","src":"2952:59:13"},{"assignments":[6450],"declarations":[{"constant":false,"id":6450,"name":"lockedAmount","nodeType":"VariableDeclaration","scope":6463,"src":"3021:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3021:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":6451,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3021:20:13"},{"externalReferences":[{"lockedAmount":{"declaration":6450,"isOffset":false,"isSlot":false,"src":"3130:12:13","valueSize":1}},{"returnValue":{"declaration":6434,"isOffset":false,"isSlot":false,"src":"3156:11:13","valueSize":1}}],"id":6452,"nodeType":"InlineAssembly","operations":"{\n lockedAmount := mload(add(returnValue, 0x20))\n}","src":"3107:78:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6455,"name":"lockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"3213:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":6456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3227:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":6457,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"3230:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"31","id":6458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3243:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"hexValue":"31","id":6459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":6460,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6375,"src":"3249:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":6453,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21188,"src":"3201:5:13","typeDescriptions":{"typeIdentifier":"t_super$_ExternalLocking4Reputation_$6486","typeString":"contract super ExternalLocking4Reputation"}},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_lock","nodeType":"MemberAccess","referencedDeclaration":7508,"src":"3201:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,address,uint256,uint256,bytes32) returns (bytes32)"}},"id":6461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3201:63:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6379,"id":6462,"nodeType":"Return","src":"3194:70:13"}]},"documentation":"@dev claim function\n@param _beneficiary the beneficiary address to claim for\n if _beneficiary == 0 the claim will be for the msg.sender.\n@return claimId","id":6464,"implemented":true,"kind":"function","modifiers":[],"name":"claim","nodeType":"FunctionDefinition","parameters":{"id":6376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6373,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6464,"src":"2165:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6372,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6375,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":6464,"src":"2187:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2187:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2164:46:13"},"returnParameters":{"id":6379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6378,"name":"","nodeType":"VariableDeclaration","scope":6464,"src":"2226:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2226:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2225:9:13"},"scope":6486,"src":"2150:1121:13","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6484,"nodeType":"Block","src":"3442:80:13","statements":[{"expression":{"argumentTypes":null,"id":6477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6472,"name":"registrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"3452:9:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6475,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6473,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3462:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3462:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3452:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3476:4:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3452:28:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6478,"nodeType":"ExpressionStatement","src":"3452:28:13"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3504:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3504:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":6479,"name":"Register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6312,"src":"3495:8:13","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3495:20:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6483,"nodeType":"EmitStatement","src":"3490:25:13"}]},"documentation":"@dev register function\n register for external locking claim","id":6485,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":6469,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6466,"src":"3426:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6470,"modifierName":{"argumentTypes":null,"id":6468,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"3416:9:13","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3416:25:13"}],"name":"register","nodeType":"FunctionDefinition","parameters":{"id":6467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6466,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":6485,"src":"3385:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3385:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3384:24:13"},"returnParameters":{"id":6471,"nodeType":"ParameterList","parameters":[],"src":"3442:0:13"},"scope":6486,"src":"3367:155:13","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":6487,"src":"132:3392:13"}],"src":"0:3525:13"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ExternalLocking4Reputation.sol","exportedSymbols":{"ExternalLocking4Reputation":[6486]},"id":6487,"nodeType":"SourceUnit","nodes":[{"id":6305,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:13"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","file":"./Locking4Reputation.sol","id":6306,"nodeType":"ImportDirective","scope":6487,"sourceUnit":7594,"src":"25:34:13","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6307,"name":"Locking4Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":7593,"src":"171:18:13","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}},"id":6308,"nodeType":"InheritanceSpecifier","src":"171:18:13"}],"contractDependencies":[2302,7593],"contractKind":"contract","documentation":"@title A scheme for external locking Tokens for reputation","fullyImplemented":true,"id":6486,"linearizedBaseContracts":[6486,7593,2302],"name":"ExternalLocking4Reputation","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":6312,"name":"Register","nodeType":"EventDefinition","parameters":{"id":6311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6310,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6312,"src":"212:28:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6309,"name":"address","nodeType":"ElementaryTypeName","src":"212:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"211:30:13"},"src":"197:45:13"},{"constant":false,"id":6314,"name":"externalLockingContract","nodeType":"VariableDeclaration","scope":6486,"src":"248:38:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6313,"name":"address","nodeType":"ElementaryTypeName","src":"248:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":6316,"name":"getBalanceFuncSignature","nodeType":"VariableDeclaration","scope":6486,"src":"292:37:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":6315,"name":"string","nodeType":"ElementaryTypeName","src":"292:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"public"},{"constant":false,"id":6320,"name":"externalLockers","nodeType":"VariableDeclaration","scope":6486,"src":"358:47:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6319,"keyType":{"id":6317,"name":"address","nodeType":"ElementaryTypeName","src":"366:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"358:24:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6318,"name":"bool","nodeType":"ElementaryTypeName","src":"377:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"constant":false,"id":6324,"name":"registrar","nodeType":"VariableDeclaration","scope":6486,"src":"443:45:13","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6323,"keyType":{"id":6321,"name":"address","nodeType":"ElementaryTypeName","src":"451:7:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"443:28:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6322,"name":"bool","nodeType":"ElementaryTypeName","src":"466:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"body":{"id":6370,"nodeType":"Block","src":"1508:433:13","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6344,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6332,"src":"1526:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":6345,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"1545:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1526:37:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f636c61696d696e67456e6454696d652073686f756c642062652067726561746572207468616e205f636c61696d696e67537461727454696d65","id":6347,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1565:60:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f43cd45023caad6fa78d92af28dc95821751fdd2341c795a7ce3d3a5ccfc4125","typeString":"literal_string \"_claimingEndTime should be greater than _claimingStartTime\""},"value":"_claimingEndTime should be greater than _claimingStartTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f43cd45023caad6fa78d92af28dc95821751fdd2341c795a7ce3d3a5ccfc4125","typeString":"literal_string \"_claimingEndTime should be greater than _claimingStartTime\""}],"id":6343,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1518:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1518:108:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6349,"nodeType":"ExpressionStatement","src":"1518:108:13"},{"expression":{"argumentTypes":null,"id":6352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6350,"name":"externalLockingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6314,"src":"1636:23:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6351,"name":"_externalLockingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6336,"src":"1662:24:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1636:50:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6353,"nodeType":"ExpressionStatement","src":"1636:50:13"},{"expression":{"argumentTypes":null,"id":6356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6354,"name":"getBalanceFuncSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"1696:23:13","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6355,"name":"_getBalanceFuncSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6338,"src":"1722:24:13","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"1696:50:13","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":6357,"nodeType":"ExpressionStatement","src":"1696:50:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6361,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6326,"src":"1783:7:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":6362,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6328,"src":"1800:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6363,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6330,"src":"1827:18:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6364,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6332,"src":"1855:16:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6365,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6334,"src":"1881:17:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":6366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1908:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":6367,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6340,"src":"1919:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":6358,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21188,"src":"1756:5:13","typeDescriptions":{"typeIdentifier":"t_super$_ExternalLocking4Reputation_$6486","typeString":"contract super ExternalLocking4Reputation"}},"id":6360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":7592,"src":"1756:17:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Avatar_$337_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (contract Avatar,uint256,uint256,uint256,uint256,uint256,bytes32)"}},"id":6368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1756:178:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6369,"nodeType":"ExpressionStatement","src":"1756:178:13"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for the token locking\n@param _claimingStartTime claiming starting period time.\n@param _claimingEndTime the claiming end time.\n claiming is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _externalLockingContract the contract which lock the token.\n@param _getBalanceFuncSignature get balance function signature\n e.g \"lockedTokenBalances(address)\"","id":6371,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6326,"name":"_avatar","nodeType":"VariableDeclaration","scope":6371,"src":"1211:14:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6325,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1211:6:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6328,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":6371,"src":"1235:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6327,"name":"uint256","nodeType":"ElementaryTypeName","src":"1235:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6330,"name":"_claimingStartTime","nodeType":"VariableDeclaration","scope":6371,"src":"1270:26:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6329,"name":"uint256","nodeType":"ElementaryTypeName","src":"1270:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6332,"name":"_claimingEndTime","nodeType":"VariableDeclaration","scope":6371,"src":"1306:24:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6331,"name":"uint256","nodeType":"ElementaryTypeName","src":"1306:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6334,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":6371,"src":"1340:25:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6333,"name":"uint256","nodeType":"ElementaryTypeName","src":"1340:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6336,"name":"_externalLockingContract","nodeType":"VariableDeclaration","scope":6371,"src":"1375:32:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6335,"name":"address","nodeType":"ElementaryTypeName","src":"1375:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6338,"name":"_getBalanceFuncSignature","nodeType":"VariableDeclaration","scope":6371,"src":"1417:40:13","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":6337,"name":"string","nodeType":"ElementaryTypeName","src":"1417:6:13","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":6340,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":6371,"src":"1467:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1467:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1201:289:13"},"returnParameters":{"id":6342,"nodeType":"ParameterList","parameters":[],"src":"1508:0:13"},"scope":6486,"src":"1182:759:13","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6463,"nodeType":"Block","src":"2235:1036:13","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6381,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2253:6:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2270:1:13","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":6382,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2263:6:13","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2263:9:13","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2253:19:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73686f756c6420696e697469616c697a65206669727374","id":6386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2274:25:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""},"value":"should initialize first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""}],"id":6380,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2245:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2245:55:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6388,"nodeType":"ExpressionStatement","src":"2245:55:13"},{"assignments":[6390],"declarations":[{"constant":false,"id":6390,"name":"beneficiary","nodeType":"VariableDeclaration","scope":6463,"src":"2310:19:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6389,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":6391,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2310:19:13"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6392,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"2343:12:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6394,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2367:1:13","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":6393,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2359:7:13","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2359:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2343:26:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6414,"nodeType":"Block","src":"2426:131:13","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6404,"name":"registrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"2448:9:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6406,"indexExpression":{"argumentTypes":null,"id":6405,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"2458:12:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2448:23:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"62656e65666963696172792073686f756c64206265207265676973746572","id":6407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2473:32:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ea7a1e9fa31cef2874e739c66382dac4b84526b8b6a2427afa00104ff337dead","typeString":"literal_string \"beneficiary should be register\""},"value":"beneficiary should be register"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ea7a1e9fa31cef2874e739c66382dac4b84526b8b6a2427afa00104ff337dead","typeString":"literal_string \"beneficiary should be register\""}],"id":6403,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2440:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2440:66:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6409,"nodeType":"ExpressionStatement","src":"2440:66:13"},{"expression":{"argumentTypes":null,"id":6412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6410,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2520:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6411,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6373,"src":"2534:12:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2520:26:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6413,"nodeType":"ExpressionStatement","src":"2520:26:13"}]},"id":6415,"nodeType":"IfStatement","src":"2339:218:13","trueBody":{"id":6402,"nodeType":"Block","src":"2371:49:13","statements":[{"expression":{"argumentTypes":null,"id":6400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6397,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2385:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6398,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2399:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2399:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2385:24:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6401,"nodeType":"ExpressionStatement","src":"2385:24:13"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6417,"name":"externalLockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6320,"src":"2574:15:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6419,"indexExpression":{"argumentTypes":null,"id":6418,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2590:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2574:28:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":6420,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2606:5:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2574:37:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636c61696d696e6720747769636520666f72207468652073616d652062656e6566696369617279206973206e6f7420616c6c6f776564","id":6422,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2613:56:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c797443103e3b630ad9d7b3dbf1b4a67aea7116a7770e00d639804b7458fe5bd","typeString":"literal_string \"claiming twice for the same beneficiary is not allowed\""},"value":"claiming twice for the same beneficiary is not allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c797443103e3b630ad9d7b3dbf1b4a67aea7116a7770e00d639804b7458fe5bd","typeString":"literal_string \"claiming twice for the same beneficiary is not allowed\""}],"id":6416,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2566:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6423,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2566:104:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6424,"nodeType":"ExpressionStatement","src":"2566:104:13"},{"expression":{"argumentTypes":null,"id":6429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6425,"name":"externalLockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6320,"src":"2680:15:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6427,"indexExpression":{"argumentTypes":null,"id":6426,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2696:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2680:28:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6428,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2711:4:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2680:35:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6430,"nodeType":"ExpressionStatement","src":"2680:35:13"},{"assignments":[6432,6434],"declarations":[{"constant":false,"id":6432,"name":"result","nodeType":"VariableDeclaration","scope":6463,"src":"2726:11:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6431,"name":"bool","nodeType":"ElementaryTypeName","src":"2726:4:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":6434,"name":"returnValue","nodeType":"VariableDeclaration","scope":6463,"src":"2739:24:13","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6433,"name":"bytes","nodeType":"ElementaryTypeName","src":"2739:5:13","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":6443,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6439,"name":"getBalanceFuncSignature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6316,"src":"2904:23:13","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"argumentTypes":null,"id":6440,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"2929:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":6437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2880:3:13","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2880:23:13","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":6441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2880:61:13","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":6435,"name":"externalLockingContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6314,"src":"2851:23:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2851:28:13","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2851:91:13","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2725:217:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6445,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6432,"src":"2960:6:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616c6c20746f2065787465726e616c20636f6e74726163742073686f756c642073756363656564","id":6446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2968:42:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_0aee880375833f4119d9f67d7e91d1f55cd11578de475f8f1242b127c621e305","typeString":"literal_string \"call to external contract should succeed\""},"value":"call to external contract should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0aee880375833f4119d9f67d7e91d1f55cd11578de475f8f1242b127c621e305","typeString":"literal_string \"call to external contract should succeed\""}],"id":6444,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2952:7:13","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:59:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6448,"nodeType":"ExpressionStatement","src":"2952:59:13"},{"assignments":[6450],"declarations":[{"constant":false,"id":6450,"name":"lockedAmount","nodeType":"VariableDeclaration","scope":6463,"src":"3021:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6449,"name":"uint256","nodeType":"ElementaryTypeName","src":"3021:7:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":6451,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3021:20:13"},{"externalReferences":[{"lockedAmount":{"declaration":6450,"isOffset":false,"isSlot":false,"src":"3130:12:13","valueSize":1}},{"returnValue":{"declaration":6434,"isOffset":false,"isSlot":false,"src":"3156:11:13","valueSize":1}}],"id":6452,"nodeType":"InlineAssembly","operations":"{\n lockedAmount := mload(add(returnValue, 0x20))\n}","src":"3107:78:13"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6455,"name":"lockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6450,"src":"3213:12:13","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"31","id":6456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3227:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":6457,"name":"beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6390,"src":"3230:11:13","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"31","id":6458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3243:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"hexValue":"31","id":6459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3246:1:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":6460,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6375,"src":"3249:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":6453,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21188,"src":"3201:5:13","typeDescriptions":{"typeIdentifier":"t_super$_ExternalLocking4Reputation_$6486","typeString":"contract super ExternalLocking4Reputation"}},"id":6454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_lock","nodeType":"MemberAccess","referencedDeclaration":7508,"src":"3201:11:13","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,address,uint256,uint256,bytes32) returns (bytes32)"}},"id":6461,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3201:63:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":6379,"id":6462,"nodeType":"Return","src":"3194:70:13"}]},"documentation":"@dev claim function\n@param _beneficiary the beneficiary address to claim for\n if _beneficiary == 0 the claim will be for the msg.sender.\n@return claimId","id":6464,"implemented":true,"kind":"function","modifiers":[],"name":"claim","nodeType":"FunctionDefinition","parameters":{"id":6376,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6373,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6464,"src":"2165:20:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6372,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:13","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6375,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":6464,"src":"2187:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2187:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2164:46:13"},"returnParameters":{"id":6379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6378,"name":"","nodeType":"VariableDeclaration","scope":6464,"src":"2226:7:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6377,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2226:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2225:9:13"},"scope":6486,"src":"2150:1121:13","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6484,"nodeType":"Block","src":"3442:80:13","statements":[{"expression":{"argumentTypes":null,"id":6477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6472,"name":"registrar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6324,"src":"3452:9:13","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6475,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6473,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3462:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3462:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3452:21:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3476:4:13","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3452:28:13","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6478,"nodeType":"ExpressionStatement","src":"3452:28:13"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"3504:3:13","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3504:10:13","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":6479,"name":"Register","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6312,"src":"3495:8:13","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3495:20:13","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6483,"nodeType":"EmitStatement","src":"3490:25:13"}]},"documentation":"@dev register function\n register for external locking claim","id":6485,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":6469,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6466,"src":"3426:14:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6470,"modifierName":{"argumentTypes":null,"id":6468,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"3416:9:13","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3416:25:13"}],"name":"register","nodeType":"FunctionDefinition","parameters":{"id":6467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6466,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":6485,"src":"3385:22:13","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3385:7:13","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3384:24:13"},"returnParameters":{"id":6471,"nodeType":"ParameterList","parameters":[],"src":"3442:0:13"},"scope":6486,"src":"3367:155:13","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":6487,"src":"132:3392:13"}],"src":"0:3525:13"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.112Z","devdoc":{"methods":{"claim(address,bytes32)":{"details":"claim function","params":{"_beneficiary":"the beneficiary address to claim for if _beneficiary == 0 the claim will be for the msg.sender."},"return":"claimId"},"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"initialize(address,uint256,uint256,uint256,uint256,address,string,bytes32)":{"details":"initialize","params":{"_avatar":"the avatar to mint reputation from","_claimingEndTime":"the claiming end time. claiming is disable after this time.","_claimingStartTime":"claiming starting period time.","_externalLockingContract":"the contract which lock the token.","_getBalanceFuncSignature":"get balance function signature e.g \"lockedTokenBalances(address)\"","_redeemEnableTime":"redeem enable time . redeem reputation can be done after this time.","_reputationReward":"the total reputation this contract will reward for the token locking"}},"redeem(address)":{"details":"redeem reputation function","params":{"_beneficiary":"the beneficiary for the release"},"return":"uint256 reputation rewarded"},"register(bytes32)":{"details":"register function register for external locking claim"}},"title":"A scheme for external locking Tokens for reputation"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ExternalTokenLockerMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ExternalTokenLockerMock.json new file mode 100644 index 00000000..e67e7cb3 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ExternalTokenLockerMock.json @@ -0,0 +1 @@ +{"contractName":"ExternalTokenLockerMock","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockedTokenBalances","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"lockedTokenBalances\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/ExternalTokenLockerMock.sol\":\"ExternalTokenLockerMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/ExternalTokenLockerMock.sol\":{\"keccak256\":\"0xccc5d1bbc0e3dca036e96eb082bfce89938ad07ba5c05e445a031f08db55ca73\",\"urls\":[\"bzz-raw://fcfb5e10b7249cf42c4e506521ef59dc38bc907d73f07e2c7e9f8e5b9d471403\",\"dweb:/ipfs/QmeNYSXZFZr7BJpuDYoGfawhjhBq4dAaNqos8HoFjbYDXP\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]}},\"version\":1}","sourceMap":"90:400:30:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;90:400:30;;788:96:63;867:10;788:96;:::o;90:400:30:-;;;;;;;","deployedSourceMap":"90:400:30:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;90:400:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;225:130;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;225:130:30;;;;;;-1:-1:-1;;;;;225:130:30;;:::i;:::-;;361:127;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;361:127:30;-1:-1:-1;;;;;361:127:30;;:::i;:::-;;;;;;;;;;;;;;;;1642:137:67;;;:::i;163:55:30:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;163:55:30;-1:-1:-1;;;;;163:55:30;;:::i;857:77:67:-;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;1928:107;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;225:130:30:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;305:33:30;;;;;:19;:33;;;;;:43;225:130::o;361:127::-;-1:-1:-1;;;;;448:33:30;422:7;448:33;;;:19;:33;;;;;;;361:127::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;163:55:30:-;;;;;;;;;;;;;:::o;857:77:67:-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;1928:107::-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\ncontract ExternalTokenLockerMock is Ownable {\n\n // user => amount\n mapping (address => uint256) public lockedTokenBalances;\n\n function lock(uint256 _amount, address _beneficiary) public onlyOwner {\n lockedTokenBalances[_beneficiary] = _amount;\n }\n\n function balanceOf(address _beneficiary) public view returns(uint256) {\n return lockedTokenBalances[_beneficiary];\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/ExternalTokenLockerMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ExternalTokenLockerMock.sol","exportedSymbols":{"ExternalTokenLockerMock":[8967]},"id":8968,"nodeType":"SourceUnit","nodes":[{"id":8931,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:30"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":8932,"nodeType":"ImportDirective","scope":8968,"sourceUnit":20510,"src":"25:63:30","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8933,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"126:7:30","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":8934,"nodeType":"InheritanceSpecifier","src":"126:7:30"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8967,"linearizedBaseContracts":[8967,20509,20058],"name":"ExternalTokenLockerMock","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8938,"name":"lockedTokenBalances","nodeType":"VariableDeclaration","scope":8967,"src":"163:55:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8937,"keyType":{"id":8935,"name":"address","nodeType":"ElementaryTypeName","src":"172:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"163:28:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8936,"name":"uint256","nodeType":"ElementaryTypeName","src":"183:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"body":{"id":8953,"nodeType":"Block","src":"295:60:30","statements":[{"expression":{"argumentTypes":null,"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8947,"name":"lockedTokenBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8938,"src":"305:19:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8949,"indexExpression":{"argumentTypes":null,"id":8948,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8942,"src":"325:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"305:33:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8950,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8940,"src":"341:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"305:43:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8952,"nodeType":"ExpressionStatement","src":"305:43:30"}]},"documentation":null,"id":8954,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":8945,"modifierName":{"argumentTypes":null,"id":8944,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"285:9:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"285:9:30"}],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":8943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8940,"name":"_amount","nodeType":"VariableDeclaration","scope":8954,"src":"239:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8939,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8942,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8954,"src":"256:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8941,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"238:39:30"},"returnParameters":{"id":8946,"nodeType":"ParameterList","parameters":[],"src":"295:0:30"},"scope":8967,"src":"225:130:30","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8965,"nodeType":"Block","src":"431:57:30","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8961,"name":"lockedTokenBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8938,"src":"448:19:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8963,"indexExpression":{"argumentTypes":null,"id":8962,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"468:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"448:33:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8960,"id":8964,"nodeType":"Return","src":"441:40:30"}]},"documentation":null,"id":8966,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":8957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8956,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8966,"src":"380:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8955,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"379:22:30"},"returnParameters":{"id":8960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8959,"name":"","nodeType":"VariableDeclaration","scope":8966,"src":"422:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8958,"name":"uint256","nodeType":"ElementaryTypeName","src":"422:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"421:9:30"},"scope":8967,"src":"361:127:30","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":8968,"src":"90:400:30"}],"src":"0:491:30"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/ExternalTokenLockerMock.sol","exportedSymbols":{"ExternalTokenLockerMock":[8967]},"id":8968,"nodeType":"SourceUnit","nodes":[{"id":8931,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:30"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":8932,"nodeType":"ImportDirective","scope":8968,"sourceUnit":20510,"src":"25:63:30","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8933,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"126:7:30","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":8934,"nodeType":"InheritanceSpecifier","src":"126:7:30"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":8967,"linearizedBaseContracts":[8967,20509,20058],"name":"ExternalTokenLockerMock","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":8938,"name":"lockedTokenBalances","nodeType":"VariableDeclaration","scope":8967,"src":"163:55:30","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":8937,"keyType":{"id":8935,"name":"address","nodeType":"ElementaryTypeName","src":"172:7:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"163:28:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":8936,"name":"uint256","nodeType":"ElementaryTypeName","src":"183:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"body":{"id":8953,"nodeType":"Block","src":"295:60:30","statements":[{"expression":{"argumentTypes":null,"id":8951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8947,"name":"lockedTokenBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8938,"src":"305:19:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8949,"indexExpression":{"argumentTypes":null,"id":8948,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8942,"src":"325:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"305:33:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8950,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8940,"src":"341:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"305:43:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8952,"nodeType":"ExpressionStatement","src":"305:43:30"}]},"documentation":null,"id":8954,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":8945,"modifierName":{"argumentTypes":null,"id":8944,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"285:9:30","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"285:9:30"}],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":8943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8940,"name":"_amount","nodeType":"VariableDeclaration","scope":8954,"src":"239:15:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8939,"name":"uint256","nodeType":"ElementaryTypeName","src":"239:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8942,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8954,"src":"256:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8941,"name":"address","nodeType":"ElementaryTypeName","src":"256:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"238:39:30"},"returnParameters":{"id":8946,"nodeType":"ParameterList","parameters":[],"src":"295:0:30"},"scope":8967,"src":"225:130:30","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":8965,"nodeType":"Block","src":"431:57:30","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8961,"name":"lockedTokenBalances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8938,"src":"448:19:30","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":8963,"indexExpression":{"argumentTypes":null,"id":8962,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8956,"src":"468:12:30","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"448:33:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8960,"id":8964,"nodeType":"Return","src":"441:40:30"}]},"documentation":null,"id":8966,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":8957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8956,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8966,"src":"380:20:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8955,"name":"address","nodeType":"ElementaryTypeName","src":"380:7:30","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"379:22:30"},"returnParameters":{"id":8960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8959,"name":"","nodeType":"VariableDeclaration","scope":8966,"src":"422:7:30","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8958,"name":"uint256","nodeType":"ElementaryTypeName","src":"422:7:30","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"421:9:30"},"scope":8967,"src":"361:127:30","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":8968,"src":"90:400:30"}],"src":"0:491:30"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.145Z","devdoc":{"methods":{"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/FixedReputationAllocation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/FixedReputationAllocation.json new file mode 100644 index 00000000..116c4c28 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/FixedReputationAllocation.json @@ -0,0 +1 @@ +{"contractName":"FixedReputationAllocation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"}],"name":"BeneficiaryAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"beneficiaries","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiaryReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"numberOfBeneficiaries","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","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":"reputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_reputationReward","type":"uint256"},{"internalType":"uint256","name":"_redeemEnableTime","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"addBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_beneficiaries","type":"address[]"}],"name":"addBeneficiaries","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"enable","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"BeneficiaryAddressAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_beneficiaries\",\"type\":\"address[]\"}],\"name\":\"addBeneficiaries\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"addBeneficiary\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"beneficiaries\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"beneficiaryReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"enable\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_redeemEnableTime\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isEnable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numberOfBeneficiaries\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"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\":\"reputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addBeneficiaries(address[])\":{\"details\":\"add addBeneficiaries function\",\"params\":{\"_beneficiaries\":\"addresses\"}},\"addBeneficiary(address)\":{\"details\":\"addBeneficiary function\",\"params\":{\"_beneficiary\":\"to be whitelisted\"}},\"enable()\":{\"details\":\"enable function\"},\"initialize(address,uint256,uint256)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar to mint reputation from\",\"_redeemEnableTime\":\"time to enable redeem\",\"_reputationReward\":\"the total reputation this contract will reward\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"redeem(address)\":{\"details\":\"redeem reputation function\",\"params\":{\"_beneficiary\":\"the beneficiary for the release\"},\"return\":\"bool\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"A fixed reputation allocation contract This scheme can be used to allocate a pre define amount of reputation to whitelisted beneficiaries.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/FixedReputationAllocation.sol\":\"FixedReputationAllocation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/FixedReputationAllocation.sol\":{\"keccak256\":\"0xfccabe194da10ea86c40785ae2026f9520d1e5234525d371c2696fc881a4225f\",\"urls\":[\"bzz-raw://29b33fe07fbb6268459bdee00e3d56439e892c11a6f578aff4fe3e4a057f39cb\",\"dweb:/ipfs/QmUhrVWCvenYcD4DgJSKLTqQcVqYMJeFJdjcT3nQPQQd3T\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"293:2859:14:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;293:2859:14;;788:96:63;867:10;788:96;:::o;293:2859:14:-;;;;;;;","deployedSourceMap":"293:2859:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;293:2859:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;537:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;537:45:14;-1:-1:-1;;;;;537:45:14;;:::i;:::-;;;;;;;;;;;;;;;;;;678:36;;;:::i;:::-;;;;;;;;;;;;;;;;758:31;;;:::i;652:20::-;;;:::i;2718:202::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2718:202:14;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2718:202:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2718:202:14;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2718:202:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;2718:202:14;;-1:-1:-1;2718:202:14;;-1:-1:-1;;;;;2718:202:14:i;:::-;;2270:345;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2270:345:14;-1:-1:-1;;;;;2270:345:14;;:::i;589:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;589:20:14;;;;;;;;;;;;;;1642:137:67;;;:::i;1025:367:14:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1025:367:14;;;;;;;;;;;;;:::i;857:77:67:-;;;:::i;1208:92::-;;;:::i;1532:635:14:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1532:635:14;-1:-1:-1;;;;;1532:635:14;;:::i;2970:180::-;;;:::i;720:32::-;;;:::i;615:31::-;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;537:45:14:-;;;;;;;;;;;;;;;:::o;678:36::-;;;;:::o;758:31::-;;;;:::o;652:20::-;;;;;;:::o;2718:202::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2809:9:14;2804:110;2828:14;:21;2824:1;:25;2804:110;;;2870:33;2885:14;2900:1;2885:17;;;;;;;;;;;;;;2870:14;:33::i;:::-;2851:3;;2804:110;;;;2718:202;:::o;2270:345::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2352:8:14;;;;2351:9;2343:68;;;;-1:-1:-1;;;2343:68:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2427:27:14;;;;;;:13;:27;;;;;;;;2422:187;;-1:-1:-1;;;;;2470:27:14;;;;;;2500:4;2470:27;;;;;;;;:34;;-1:-1:-1;;2470:34:14;;;;;2518:21;:23;;;;;;;;2561:37;;;2470:27;2561:37;2422:187;2270:345;:::o;589:20::-;;;-1:-1:-1;;;;;589:20:14;;:::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;1025:367:14:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1152:6:14;;-1:-1:-1;;;;;1152:6:14;:19;1144:59;;;;;-1:-1:-1;;;1144:59:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1221:20:14;;1213:54;;;;;-1:-1:-1;;;1213:54:14;;;;;;;;;;;;-1:-1:-1;;;1213:54:14;;;;;;;;;;;;;;;1277:16;:36;;;;1323:16;:36;1369:6;:16;;-1:-1:-1;;;;;;1369:16:14;-1:-1:-1;;;;;1369:16:14;;;;;;;;;;1025:367::o;857:77:67:-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;1532:635:14:-;1609:8;;1585:4;;1609:8;;1601:41;;;;;-1:-1:-1;;;1601:41:14;;;;;;;;;;;;-1:-1:-1;;;1601:41:14;;;;;;;;;;;;;;;-1:-1:-1;;;;;1660:27:14;;;;;;:13;:27;;;;;;;;1652:94;;;;-1:-1:-1;;;1652:94:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1756:27:14;;1786:5;1756:27;;;:13;:27;;;;;:35;;-1:-1:-1;;1756:35:14;;;1869:16;;1863:3;:22;1855:65;;;;;-1:-1:-1;;;1855:65:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;1967:6;;;;;;;;;-1:-1:-1;;;;;1967:6:14;-1:-1:-1;;;;;1967:12:14;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1967:14:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1967:14:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1967:14:14;2007:17;;2048:6;;1947:109;;;-1:-1:-1;;;1947:109:14;;;;;;;;;-1:-1:-1;;;;;1947:109:14;;;;;;;2048:6;;;1947:109;;;;;:59;;;;;:109;;;;;1967:14;;1947:109;;;;;;;;2048:6;1947:59;:109;;;5:2:-1;;;;30:1;27;20:12;5:2;1947:109:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1947:109:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1947:109:14;1930:153;;;;;-1:-1:-1;;;1930:153:14;;;;;;;;;;;;-1:-1:-1;;;1930:153:14;;;;;;;;;;;;;;;2120:17;;2099:39;;;;;;;-1:-1:-1;;;;;2099:39:14;;;;;;;;;;;;;-1:-1:-1;2156:4:14;1532:635;;;:::o;2970:180::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;3015:8:14;:15;;-1:-1:-1;;3015:15:14;3026:4;3015:15;;;3121:21;;3100:16;;:43;;;:20;:43;:::i;:::-;3080:17;:63;2970:180::o;720:32::-;;;;:::o;615:31::-;;;;:::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;788:96:63:-;867:10;788:96;:::o;3073:130:66:-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3150:46;3073:130;-1:-1:-1;;;3073:130:66:o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;3718:338:66:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o","source":"pragma solidity 0.5.13;\n\nimport \"../controller/Controller.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title A fixed reputation allocation contract\n * This scheme can be used to allocate a pre define amount of reputation to whitelisted\n * beneficiaries.\n */\ncontract FixedReputationAllocation is Ownable {\n using SafeMath for uint256;\n\n event Redeem(address indexed _beneficiary, uint256 _amount);\n event BeneficiaryAddressAdded(address indexed _beneficiary);\n\n // beneficiary -> exist\n mapping(address => bool) public beneficiaries;\n\n Avatar public avatar;\n uint256 public reputationReward;\n bool public isEnable;\n uint256 public numberOfBeneficiaries;\n uint256 public beneficiaryReward;\n uint256 public redeemEnableTime;\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _reputationReward the total reputation this contract will reward\n * @param _redeemEnableTime time to enable redeem\n */\n function initialize(Avatar _avatar, uint256 _reputationReward, uint256 _redeemEnableTime) external onlyOwner {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n reputationReward = _reputationReward;\n redeemEnableTime = _redeemEnableTime;\n avatar = _avatar;\n }\n\n /**\n * @dev redeem reputation function\n * @param _beneficiary the beneficiary for the release\n * @return bool\n */\n function redeem(address _beneficiary) public returns(bool) {\n require(isEnable, \"require to be enable\");\n require(beneficiaries[_beneficiary], \"require _beneficiary to exist in the beneficiaries map\");\n beneficiaries[_beneficiary] = false;\n // solhint-disable-next-line not-rely-on-time\n require(now > redeemEnableTime, \"require now > redeemEnableTime\");\n require(\n Controller(\n avatar.owner())\n .mintReputation(beneficiaryReward, _beneficiary, address(avatar)), \"mint reputation failed\");\n\n emit Redeem(_beneficiary, beneficiaryReward);\n\n return true;\n }\n\n /**\n * @dev addBeneficiary function\n * @param _beneficiary to be whitelisted\n */\n function addBeneficiary(address _beneficiary) public onlyOwner {\n require(!isEnable, \"can add beneficiary only if not already enable\");\n\n if (!beneficiaries[_beneficiary]) {\n beneficiaries[_beneficiary] = true;\n numberOfBeneficiaries++;\n\n emit BeneficiaryAddressAdded(_beneficiary);\n }\n }\n\n /**\n * @dev add addBeneficiaries function\n * @param _beneficiaries addresses\n */\n function addBeneficiaries(address[] memory _beneficiaries) public onlyOwner {\n for (uint256 i = 0; i < _beneficiaries.length; i++) {\n addBeneficiary(_beneficiaries[i]);\n }\n }\n\n /**\n * @dev enable function\n */\n function enable() public onlyOwner {\n isEnable = true;\n // Calculate beneficiary reward\n beneficiaryReward = reputationReward.div(numberOfBeneficiaries);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/FixedReputationAllocation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/FixedReputationAllocation.sol","exportedSymbols":{"FixedReputationAllocation":[6698]},"id":6699,"nodeType":"SourceUnit","nodes":[{"id":6488,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:14"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":6489,"nodeType":"ImportDirective","scope":6699,"sourceUnit":1798,"src":"25:38:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":6490,"nodeType":"ImportDirective","scope":6699,"sourceUnit":20510,"src":"64:63:14","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6491,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"331:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":6492,"nodeType":"InheritanceSpecifier","src":"331:7:14"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title A fixed reputation allocation contract\nThis scheme can be used to allocate a pre define amount of reputation to whitelisted\nbeneficiaries.","fullyImplemented":true,"id":6698,"linearizedBaseContracts":[6698,20509,20058],"name":"FixedReputationAllocation","nodeType":"ContractDefinition","nodes":[{"id":6495,"libraryName":{"contractScope":null,"id":6493,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"351:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"345:27:14","typeName":{"id":6494,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":6501,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":6500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6497,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6501,"src":"391:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6496,"name":"address","nodeType":"ElementaryTypeName","src":"391:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6499,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":6501,"src":"421:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6498,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"390:47:14"},"src":"378:60:14"},{"anonymous":false,"documentation":null,"id":6505,"name":"BeneficiaryAddressAdded","nodeType":"EventDefinition","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6503,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6505,"src":"473:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6502,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"472:30:14"},"src":"443:60:14"},{"constant":false,"id":6509,"name":"beneficiaries","nodeType":"VariableDeclaration","scope":6698,"src":"537:45:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6508,"keyType":{"id":6506,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"537:24:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6507,"name":"bool","nodeType":"ElementaryTypeName","src":"556:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"constant":false,"id":6511,"name":"avatar","nodeType":"VariableDeclaration","scope":6698,"src":"589:20:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6510,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"589:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":6513,"name":"reputationReward","nodeType":"VariableDeclaration","scope":6698,"src":"615:31:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6512,"name":"uint256","nodeType":"ElementaryTypeName","src":"615:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":6515,"name":"isEnable","nodeType":"VariableDeclaration","scope":6698,"src":"652:20:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6514,"name":"bool","nodeType":"ElementaryTypeName","src":"652:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"public"},{"constant":false,"id":6517,"name":"numberOfBeneficiaries","nodeType":"VariableDeclaration","scope":6698,"src":"678:36:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6516,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":6519,"name":"beneficiaryReward","nodeType":"VariableDeclaration","scope":6698,"src":"720:32:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6518,"name":"uint256","nodeType":"ElementaryTypeName","src":"720:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":6521,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":6698,"src":"758:31:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6520,"name":"uint256","nodeType":"ElementaryTypeName","src":"758:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":6562,"nodeType":"Block","src":"1134:258:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6533,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"1152:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1169:1:14","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":6534,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1162:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1162:9:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1152:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":6538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1173:29:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":6532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1144:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1144:59:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6540,"nodeType":"ExpressionStatement","src":"1144:59:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6542,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6523,"src":"1221:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1239:1:14","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":6543,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1232:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1232:9:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1221:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":6547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1243:23:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":6541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1213:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1213:54:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6549,"nodeType":"ExpressionStatement","src":"1213:54:14"},{"expression":{"argumentTypes":null,"id":6552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6550,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"1277:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6551,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6525,"src":"1296:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1277:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6553,"nodeType":"ExpressionStatement","src":"1277:36:14"},{"expression":{"argumentTypes":null,"id":6556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6554,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6521,"src":"1323:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6555,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"1342:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1323:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6557,"nodeType":"ExpressionStatement","src":"1323:36:14"},{"expression":{"argumentTypes":null,"id":6560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6558,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"1369:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6559,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6523,"src":"1378:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1369:16:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6561,"nodeType":"ExpressionStatement","src":"1369:16:14"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n@param _redeemEnableTime time to enable redeem","id":6563,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6530,"modifierName":{"argumentTypes":null,"id":6529,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1124:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1124:9:14"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6523,"name":"_avatar","nodeType":"VariableDeclaration","scope":6563,"src":"1045:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6522,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1045:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6525,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":6563,"src":"1061:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6527,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":6563,"src":"1088:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1044:70:14"},"returnParameters":{"id":6531,"nodeType":"ParameterList","parameters":[],"src":"1134:0:14"},"scope":6698,"src":"1025:367:14","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6618,"nodeType":"Block","src":"1591:576:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6571,"name":"isEnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"1609:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7265717569726520746f20626520656e61626c65","id":6572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:22:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_43517c6db448f253fc6974e66a1d714d6028dcee0ee33845d123d49b5aa22c01","typeString":"literal_string \"require to be enable\""},"value":"require to be enable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43517c6db448f253fc6974e66a1d714d6028dcee0ee33845d123d49b5aa22c01","typeString":"literal_string \"require to be enable\""}],"id":6570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1601:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1601:41:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6574,"nodeType":"ExpressionStatement","src":"1601:41:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6576,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"1660:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6578,"indexExpression":{"argumentTypes":null,"id":6577,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"1674:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1660:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657175697265205f62656e656669636961727920746f20657869737420696e207468652062656e65666963696172696573206d6170","id":6579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1689:56:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e7781f9b4082f17e713832162992adca015e5918585a77787acc5805ecfd5be2","typeString":"literal_string \"require _beneficiary to exist in the beneficiaries map\""},"value":"require _beneficiary to exist in the beneficiaries map"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7781f9b4082f17e713832162992adca015e5918585a77787acc5805ecfd5be2","typeString":"literal_string \"require _beneficiary to exist in the beneficiaries map\""}],"id":6575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1652:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1652:94:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6581,"nodeType":"ExpressionStatement","src":"1652:94:14"},{"expression":{"argumentTypes":null,"id":6586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6582,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"1756:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6584,"indexExpression":{"argumentTypes":null,"id":6583,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"1770:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1756:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":6585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1786:5:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1756:35:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6587,"nodeType":"ExpressionStatement","src":"1756:35:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6589,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"1863:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":6590,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6521,"src":"1869:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1863:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657175697265206e6f77203e2072656465656d456e61626c6554696d65","id":6592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1887:32:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7f73d0db0a23a87fcf892f51dea6b76a5ce09d844be9c29313d8fe8e09a25072","typeString":"literal_string \"require now > redeemEnableTime\""},"value":"require now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f73d0db0a23a87fcf892f51dea6b76a5ce09d844be9c29313d8fe8e09a25072","typeString":"literal_string \"require now > redeemEnableTime\""}],"id":6588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1855:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1855:65:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6594,"nodeType":"ExpressionStatement","src":"1855:65:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6602,"name":"beneficiaryReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"2007:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6603,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"2026:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6605,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"2048:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2040:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2040:15:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6597,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"1967:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1967:12:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1967:14:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6596,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1947:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:35:14","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":6601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"1947:59:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:109:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e206661696c6564","id":6608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2058:24:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_907c6cea84d6d1fb1bda01b61899f9d66d12a8cc9889d36fa264c85f0dd5718e","typeString":"literal_string \"mint reputation failed\""},"value":"mint reputation failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_907c6cea84d6d1fb1bda01b61899f9d66d12a8cc9889d36fa264c85f0dd5718e","typeString":"literal_string \"mint reputation failed\""}],"id":6595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1930:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1930:153:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6610,"nodeType":"ExpressionStatement","src":"1930:153:14"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6612,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"2106:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6613,"name":"beneficiaryReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"2120:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6611,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6501,"src":"2099:6:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2099:39:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6615,"nodeType":"EmitStatement","src":"2094:44:14"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":6616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2156:4:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6569,"id":6617,"nodeType":"Return","src":"2149:11:14"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary for the release\n@return bool","id":6619,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":6566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6565,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6619,"src":"1548:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6564,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1547:22:14"},"returnParameters":{"id":6569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6568,"name":"","nodeType":"VariableDeclaration","scope":6619,"src":"1585:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6567,"name":"bool","nodeType":"ElementaryTypeName","src":"1585:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1584:6:14"},"scope":6698,"src":"1532:635:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6651,"nodeType":"Block","src":"2333:282:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2351:9:14","subExpression":{"argumentTypes":null,"id":6627,"name":"isEnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"2352:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e206164642062656e6566696369617279206f6e6c79206966206e6f7420616c726561647920656e61626c65","id":6629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2362:48:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1ebc168bfc4672c35b590adaf4fca74b957b142a57c74d17aebd204528397e42","typeString":"literal_string \"can add beneficiary only if not already enable\""},"value":"can add beneficiary only if not already enable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ebc168bfc4672c35b590adaf4fca74b957b142a57c74d17aebd204528397e42","typeString":"literal_string \"can add beneficiary only if not already enable\""}],"id":6626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2343:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2343:68:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6631,"nodeType":"ExpressionStatement","src":"2343:68:14"},{"condition":{"argumentTypes":null,"id":6635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2426:28:14","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6632,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"2427:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6634,"indexExpression":{"argumentTypes":null,"id":6633,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"2441:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2427:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6650,"nodeType":"IfStatement","src":"2422:187:14","trueBody":{"id":6649,"nodeType":"Block","src":"2456:153:14","statements":[{"expression":{"argumentTypes":null,"id":6640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6636,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"2470:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6638,"indexExpression":{"argumentTypes":null,"id":6637,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"2484:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2470:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2500:4:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2470:34:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6641,"nodeType":"ExpressionStatement","src":"2470:34:14"},{"expression":{"argumentTypes":null,"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2518:23:14","subExpression":{"argumentTypes":null,"id":6642,"name":"numberOfBeneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"2518:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6644,"nodeType":"ExpressionStatement","src":"2518:23:14"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6646,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"2585:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6645,"name":"BeneficiaryAddressAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"2561:23:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2561:37:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6648,"nodeType":"EmitStatement","src":"2556:42:14"}]}}]},"documentation":"@dev addBeneficiary function\n@param _beneficiary to be whitelisted","id":6652,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6624,"modifierName":{"argumentTypes":null,"id":6623,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2323:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2323:9:14"}],"name":"addBeneficiary","nodeType":"FunctionDefinition","parameters":{"id":6622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6652,"src":"2294:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6620,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2293:22:14"},"returnParameters":{"id":6625,"nodeType":"ParameterList","parameters":[],"src":"2333:0:14"},"scope":6698,"src":"2270:345:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6679,"nodeType":"Block","src":"2794:126:14","statements":[{"body":{"id":6677,"nodeType":"Block","src":"2856:58:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6672,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"2885:14:14","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6674,"indexExpression":{"argumentTypes":null,"id":6673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"2900:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2885:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6671,"name":"addBeneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6652,"src":"2870:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2870:33:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6676,"nodeType":"ExpressionStatement","src":"2870:33:14"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"2824:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6665,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"2828:14:14","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2828:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2824:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6678,"initializationExpression":{"assignments":[6661],"declarations":[{"constant":false,"id":6661,"name":"i","nodeType":"VariableDeclaration","scope":6678,"src":"2809:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2809:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":6663,"initialValue":{"argumentTypes":null,"hexValue":"30","id":6662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2821:1:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2809:13:14"},"loopExpression":{"expression":{"argumentTypes":null,"id":6669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2851:3:14","subExpression":{"argumentTypes":null,"id":6668,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"2851:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6670,"nodeType":"ExpressionStatement","src":"2851:3:14"},"nodeType":"ForStatement","src":"2804:110:14"}]},"documentation":"@dev add addBeneficiaries function\n@param _beneficiaries addresses","id":6680,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6658,"modifierName":{"argumentTypes":null,"id":6657,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2784:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2784:9:14"}],"name":"addBeneficiaries","nodeType":"FunctionDefinition","parameters":{"id":6656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6655,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":6680,"src":"2744:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6653,"name":"address","nodeType":"ElementaryTypeName","src":"2744:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6654,"length":null,"nodeType":"ArrayTypeName","src":"2744:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"2743:33:14"},"returnParameters":{"id":6659,"nodeType":"ParameterList","parameters":[],"src":"2794:0:14"},"scope":6698,"src":"2718:202:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6696,"nodeType":"Block","src":"3005:145:14","statements":[{"expression":{"argumentTypes":null,"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6685,"name":"isEnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"3015:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3026:4:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3015:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6688,"nodeType":"ExpressionStatement","src":"3015:15:14"},{"expression":{"argumentTypes":null,"id":6694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6689,"name":"beneficiaryReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"3080:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6692,"name":"numberOfBeneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"3121:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":6690,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"3100:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"3100:20:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":6693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3100:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3080:63:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6695,"nodeType":"ExpressionStatement","src":"3080:63:14"}]},"documentation":"@dev enable function","id":6697,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6683,"modifierName":{"argumentTypes":null,"id":6682,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2995:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2995:9:14"}],"name":"enable","nodeType":"FunctionDefinition","parameters":{"id":6681,"nodeType":"ParameterList","parameters":[],"src":"2985:2:14"},"returnParameters":{"id":6684,"nodeType":"ParameterList","parameters":[],"src":"3005:0:14"},"scope":6698,"src":"2970:180:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":6699,"src":"293:2859:14"}],"src":"0:3153:14"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/FixedReputationAllocation.sol","exportedSymbols":{"FixedReputationAllocation":[6698]},"id":6699,"nodeType":"SourceUnit","nodes":[{"id":6488,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:14"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":6489,"nodeType":"ImportDirective","scope":6699,"sourceUnit":1798,"src":"25:38:14","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":6490,"nodeType":"ImportDirective","scope":6699,"sourceUnit":20510,"src":"64:63:14","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6491,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"331:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":6492,"nodeType":"InheritanceSpecifier","src":"331:7:14"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title A fixed reputation allocation contract\nThis scheme can be used to allocate a pre define amount of reputation to whitelisted\nbeneficiaries.","fullyImplemented":true,"id":6698,"linearizedBaseContracts":[6698,20509,20058],"name":"FixedReputationAllocation","nodeType":"ContractDefinition","nodes":[{"id":6495,"libraryName":{"contractScope":null,"id":6493,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"351:8:14","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"345:27:14","typeName":{"id":6494,"name":"uint256","nodeType":"ElementaryTypeName","src":"364:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":6501,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":6500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6497,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6501,"src":"391:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6496,"name":"address","nodeType":"ElementaryTypeName","src":"391:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6499,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":6501,"src":"421:15:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6498,"name":"uint256","nodeType":"ElementaryTypeName","src":"421:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"390:47:14"},"src":"378:60:14"},{"anonymous":false,"documentation":null,"id":6505,"name":"BeneficiaryAddressAdded","nodeType":"EventDefinition","parameters":{"id":6504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6503,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6505,"src":"473:28:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6502,"name":"address","nodeType":"ElementaryTypeName","src":"473:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"472:30:14"},"src":"443:60:14"},{"constant":false,"id":6509,"name":"beneficiaries","nodeType":"VariableDeclaration","scope":6698,"src":"537:45:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":6508,"keyType":{"id":6506,"name":"address","nodeType":"ElementaryTypeName","src":"545:7:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"537:24:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":6507,"name":"bool","nodeType":"ElementaryTypeName","src":"556:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"constant":false,"id":6511,"name":"avatar","nodeType":"VariableDeclaration","scope":6698,"src":"589:20:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6510,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"589:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":6513,"name":"reputationReward","nodeType":"VariableDeclaration","scope":6698,"src":"615:31:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6512,"name":"uint256","nodeType":"ElementaryTypeName","src":"615:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":6515,"name":"isEnable","nodeType":"VariableDeclaration","scope":6698,"src":"652:20:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6514,"name":"bool","nodeType":"ElementaryTypeName","src":"652:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"public"},{"constant":false,"id":6517,"name":"numberOfBeneficiaries","nodeType":"VariableDeclaration","scope":6698,"src":"678:36:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6516,"name":"uint256","nodeType":"ElementaryTypeName","src":"678:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":6519,"name":"beneficiaryReward","nodeType":"VariableDeclaration","scope":6698,"src":"720:32:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6518,"name":"uint256","nodeType":"ElementaryTypeName","src":"720:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":6521,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":6698,"src":"758:31:14","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6520,"name":"uint256","nodeType":"ElementaryTypeName","src":"758:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":6562,"nodeType":"Block","src":"1134:258:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6533,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"1152:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6535,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1169:1:14","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":6534,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1162:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1162:9:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1152:19:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":6538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1173:29:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":6532,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1144:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1144:59:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6540,"nodeType":"ExpressionStatement","src":"1144:59:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6542,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6523,"src":"1221:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6544,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1239:1:14","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":6543,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1232:6:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6545,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1232:9:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1221:20:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":6547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1243:23:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":6541,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1213:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1213:54:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6549,"nodeType":"ExpressionStatement","src":"1213:54:14"},{"expression":{"argumentTypes":null,"id":6552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6550,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"1277:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6551,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6525,"src":"1296:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1277:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6553,"nodeType":"ExpressionStatement","src":"1277:36:14"},{"expression":{"argumentTypes":null,"id":6556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6554,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6521,"src":"1323:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6555,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6527,"src":"1342:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1323:36:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6557,"nodeType":"ExpressionStatement","src":"1323:36:14"},{"expression":{"argumentTypes":null,"id":6560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6558,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"1369:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6559,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6523,"src":"1378:7:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1369:16:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6561,"nodeType":"ExpressionStatement","src":"1369:16:14"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n@param _redeemEnableTime time to enable redeem","id":6563,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6530,"modifierName":{"argumentTypes":null,"id":6529,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1124:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1124:9:14"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6523,"name":"_avatar","nodeType":"VariableDeclaration","scope":6563,"src":"1045:14:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6522,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1045:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6525,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":6563,"src":"1061:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6524,"name":"uint256","nodeType":"ElementaryTypeName","src":"1061:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6527,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":6563,"src":"1088:25:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6526,"name":"uint256","nodeType":"ElementaryTypeName","src":"1088:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1044:70:14"},"returnParameters":{"id":6531,"nodeType":"ParameterList","parameters":[],"src":"1134:0:14"},"scope":6698,"src":"1025:367:14","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6618,"nodeType":"Block","src":"1591:576:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6571,"name":"isEnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"1609:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7265717569726520746f20626520656e61626c65","id":6572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:22:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_43517c6db448f253fc6974e66a1d714d6028dcee0ee33845d123d49b5aa22c01","typeString":"literal_string \"require to be enable\""},"value":"require to be enable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_43517c6db448f253fc6974e66a1d714d6028dcee0ee33845d123d49b5aa22c01","typeString":"literal_string \"require to be enable\""}],"id":6570,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1601:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1601:41:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6574,"nodeType":"ExpressionStatement","src":"1601:41:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6576,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"1660:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6578,"indexExpression":{"argumentTypes":null,"id":6577,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"1674:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1660:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657175697265205f62656e656669636961727920746f20657869737420696e207468652062656e65666963696172696573206d6170","id":6579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1689:56:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e7781f9b4082f17e713832162992adca015e5918585a77787acc5805ecfd5be2","typeString":"literal_string \"require _beneficiary to exist in the beneficiaries map\""},"value":"require _beneficiary to exist in the beneficiaries map"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7781f9b4082f17e713832162992adca015e5918585a77787acc5805ecfd5be2","typeString":"literal_string \"require _beneficiary to exist in the beneficiaries map\""}],"id":6575,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1652:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1652:94:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6581,"nodeType":"ExpressionStatement","src":"1652:94:14"},{"expression":{"argumentTypes":null,"id":6586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6582,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"1756:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6584,"indexExpression":{"argumentTypes":null,"id":6583,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"1770:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1756:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":6585,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1786:5:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"1756:35:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6587,"nodeType":"ExpressionStatement","src":"1756:35:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6589,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"1863:3:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":6590,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6521,"src":"1869:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1863:22:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657175697265206e6f77203e2072656465656d456e61626c6554696d65","id":6592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1887:32:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7f73d0db0a23a87fcf892f51dea6b76a5ce09d844be9c29313d8fe8e09a25072","typeString":"literal_string \"require now > redeemEnableTime\""},"value":"require now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7f73d0db0a23a87fcf892f51dea6b76a5ce09d844be9c29313d8fe8e09a25072","typeString":"literal_string \"require now > redeemEnableTime\""}],"id":6588,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1855:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6593,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1855:65:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6594,"nodeType":"ExpressionStatement","src":"1855:65:14"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6602,"name":"beneficiaryReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"2007:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":6603,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"2026:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6605,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"2048:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2040:7:14","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2040:15:14","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6597,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6511,"src":"1967:6:14","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1967:12:14","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":6599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1967:14:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6596,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1947:10:14","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":6600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:35:14","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":6601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"1947:59:14","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":6607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:109:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e206661696c6564","id":6608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2058:24:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_907c6cea84d6d1fb1bda01b61899f9d66d12a8cc9889d36fa264c85f0dd5718e","typeString":"literal_string \"mint reputation failed\""},"value":"mint reputation failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_907c6cea84d6d1fb1bda01b61899f9d66d12a8cc9889d36fa264c85f0dd5718e","typeString":"literal_string \"mint reputation failed\""}],"id":6595,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1930:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1930:153:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6610,"nodeType":"ExpressionStatement","src":"1930:153:14"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6612,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6565,"src":"2106:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":6613,"name":"beneficiaryReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"2120:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6611,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6501,"src":"2099:6:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":6614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2099:39:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6615,"nodeType":"EmitStatement","src":"2094:44:14"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":6616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2156:4:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6569,"id":6617,"nodeType":"Return","src":"2149:11:14"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary for the release\n@return bool","id":6619,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":6566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6565,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6619,"src":"1548:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6564,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1547:22:14"},"returnParameters":{"id":6569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6568,"name":"","nodeType":"VariableDeclaration","scope":6619,"src":"1585:4:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6567,"name":"bool","nodeType":"ElementaryTypeName","src":"1585:4:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1584:6:14"},"scope":6698,"src":"1532:635:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6651,"nodeType":"Block","src":"2333:282:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2351:9:14","subExpression":{"argumentTypes":null,"id":6627,"name":"isEnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"2352:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e206164642062656e6566696369617279206f6e6c79206966206e6f7420616c726561647920656e61626c65","id":6629,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2362:48:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1ebc168bfc4672c35b590adaf4fca74b957b142a57c74d17aebd204528397e42","typeString":"literal_string \"can add beneficiary only if not already enable\""},"value":"can add beneficiary only if not already enable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1ebc168bfc4672c35b590adaf4fca74b957b142a57c74d17aebd204528397e42","typeString":"literal_string \"can add beneficiary only if not already enable\""}],"id":6626,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2343:7:14","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2343:68:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6631,"nodeType":"ExpressionStatement","src":"2343:68:14"},{"condition":{"argumentTypes":null,"id":6635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2426:28:14","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6632,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"2427:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6634,"indexExpression":{"argumentTypes":null,"id":6633,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"2441:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2427:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":6650,"nodeType":"IfStatement","src":"2422:187:14","trueBody":{"id":6649,"nodeType":"Block","src":"2456:153:14","statements":[{"expression":{"argumentTypes":null,"id":6640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6636,"name":"beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6509,"src":"2470:13:14","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":6638,"indexExpression":{"argumentTypes":null,"id":6637,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"2484:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2470:27:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2500:4:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2470:34:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6641,"nodeType":"ExpressionStatement","src":"2470:34:14"},{"expression":{"argumentTypes":null,"id":6643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2518:23:14","subExpression":{"argumentTypes":null,"id":6642,"name":"numberOfBeneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"2518:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6644,"nodeType":"ExpressionStatement","src":"2518:23:14"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6646,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6621,"src":"2585:12:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6645,"name":"BeneficiaryAddressAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6505,"src":"2561:23:14","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2561:37:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6648,"nodeType":"EmitStatement","src":"2556:42:14"}]}}]},"documentation":"@dev addBeneficiary function\n@param _beneficiary to be whitelisted","id":6652,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6624,"modifierName":{"argumentTypes":null,"id":6623,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2323:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2323:9:14"}],"name":"addBeneficiary","nodeType":"FunctionDefinition","parameters":{"id":6622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6621,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":6652,"src":"2294:20:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6620,"name":"address","nodeType":"ElementaryTypeName","src":"2294:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2293:22:14"},"returnParameters":{"id":6625,"nodeType":"ParameterList","parameters":[],"src":"2333:0:14"},"scope":6698,"src":"2270:345:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6679,"nodeType":"Block","src":"2794:126:14","statements":[{"body":{"id":6677,"nodeType":"Block","src":"2856:58:14","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6672,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"2885:14:14","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6674,"indexExpression":{"argumentTypes":null,"id":6673,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"2900:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2885:17:14","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6671,"name":"addBeneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6652,"src":"2870:14:14","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6675,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2870:33:14","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6676,"nodeType":"ExpressionStatement","src":"2870:33:14"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6667,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6664,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"2824:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6665,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6655,"src":"2828:14:14","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2828:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2824:25:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6678,"initializationExpression":{"assignments":[6661],"declarations":[{"constant":false,"id":6661,"name":"i","nodeType":"VariableDeclaration","scope":6678,"src":"2809:9:14","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6660,"name":"uint256","nodeType":"ElementaryTypeName","src":"2809:7:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":6663,"initialValue":{"argumentTypes":null,"hexValue":"30","id":6662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2821:1:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2809:13:14"},"loopExpression":{"expression":{"argumentTypes":null,"id":6669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2851:3:14","subExpression":{"argumentTypes":null,"id":6668,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6661,"src":"2851:1:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6670,"nodeType":"ExpressionStatement","src":"2851:3:14"},"nodeType":"ForStatement","src":"2804:110:14"}]},"documentation":"@dev add addBeneficiaries function\n@param _beneficiaries addresses","id":6680,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6658,"modifierName":{"argumentTypes":null,"id":6657,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2784:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2784:9:14"}],"name":"addBeneficiaries","nodeType":"FunctionDefinition","parameters":{"id":6656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6655,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":6680,"src":"2744:31:14","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6653,"name":"address","nodeType":"ElementaryTypeName","src":"2744:7:14","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6654,"length":null,"nodeType":"ArrayTypeName","src":"2744:9:14","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"}],"src":"2743:33:14"},"returnParameters":{"id":6659,"nodeType":"ParameterList","parameters":[],"src":"2794:0:14"},"scope":6698,"src":"2718:202:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":6696,"nodeType":"Block","src":"3005:145:14","statements":[{"expression":{"argumentTypes":null,"id":6687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6685,"name":"isEnable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6515,"src":"3015:8:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6686,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3026:4:14","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3015:15:14","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6688,"nodeType":"ExpressionStatement","src":"3015:15:14"},{"expression":{"argumentTypes":null,"id":6694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6689,"name":"beneficiaryReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6519,"src":"3080:17:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6692,"name":"numberOfBeneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6517,"src":"3121:21:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":6690,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6513,"src":"3100:16:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"3100:20:14","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":6693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3100:43:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3080:63:14","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6695,"nodeType":"ExpressionStatement","src":"3080:63:14"}]},"documentation":"@dev enable function","id":6697,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6683,"modifierName":{"argumentTypes":null,"id":6682,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2995:9:14","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2995:9:14"}],"name":"enable","nodeType":"FunctionDefinition","parameters":{"id":6681,"nodeType":"ParameterList","parameters":[],"src":"2985:2:14"},"returnParameters":{"id":6684,"nodeType":"ParameterList","parameters":[],"src":"3005:0:14"},"scope":6698,"src":"2970:180:14","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":6699,"src":"293:2859:14"}],"src":"0:3153:14"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.115Z","devdoc":{"methods":{"addBeneficiaries(address[])":{"details":"add addBeneficiaries function","params":{"_beneficiaries":"addresses"}},"addBeneficiary(address)":{"details":"addBeneficiary function","params":{"_beneficiary":"to be whitelisted"}},"enable()":{"details":"enable function"},"initialize(address,uint256,uint256)":{"details":"initialize","params":{"_avatar":"the avatar to mint reputation from","_redeemEnableTime":"time to enable redeem","_reputationReward":"the total reputation this contract will reward"}},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"redeem(address)":{"details":"redeem reputation function","params":{"_beneficiary":"the beneficiary for the release"},"return":"bool"},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"A fixed reputation allocation contract This scheme can be used to allocate a pre define amount of reputation to whitelisted beneficiaries."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Forwarder.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Forwarder.json new file mode 100644 index 00000000..7824aabb --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Forwarder.json @@ -0,0 +1 @@ +{"contractName":"Forwarder","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"expirationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_expirationTime","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unregisterSelf","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"expirationTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_expirationTime\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unregisterSelf\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"initialize(address,uint256)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar of the dao to forward the call to\",\"_expirationTime\":\"the expirationTime to forwardCall\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"unregisterSelf()\":{\"details\":\"unregisterSelf function\",\"return\":\"bool\"}},\"title\":\"A scheme to forward a call to a dao. The scheme can unregister itself when its expirationTime reached.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/Forwarder.sol\":\"Forwarder\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Forwarder.sol\":{\"keccak256\":\"0x40846830f0cb8fec982e4e760833456ab4a983892df0be3bea346c8917c53f55\",\"urls\":[\"bzz-raw://b1cbbd6d93aa13b6fecb74d68e3c8e3a395bb7537b381e55e7f90e5b7bc4acf6\",\"dweb:/ipfs/QmPmnWwtE4fBa5VAAE6d7nuv5HvZUt1L48CK8wmvikgieM\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"262:1332:15:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;262:1332:15;;788:96:63;867:10;788:96;:::o;262:1332:15:-;;;;;;;","deployedSourceMap":"262:1332:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;262:1332:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;628:3:15;611:14;;:20;603:53;;;;;-1:-1:-1;;;603:53:15;;;;;;;;;;;;-1:-1:-1;;;603:53:15;;;;;;;;;;;;;;;742:6;;:14;;;-1:-1:-1;;;742:14:15;;;;726:11;;-1:-1:-1;;;;;742:6:15;;:12;;:14;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;742:14:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;742:14:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;742:14:15;:29;;-1:-1:-1;;;;;742:19:15;;;;762:8;;;;742:29;762:8;;;;742:29;1:33:-1;742:29:15;;45:16:-1;;;-1:-1;742:29:15;;-1:-1:-1;742:29:15;;-1:-1:-1;;742:29:15;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;725:46:15;;;789:6;781:15;;;;;;1117:1:67;262:1332:15;299:20;;;:::i;:::-;;;;-1:-1:-1;;;;;299:20:15;;;;;;;;;;;;;;1345:247;;;:::i;:::-;;;;;;;;;;;;;;;;;;1642:137:67;;;:::i;:::-;;857:77;;;:::i;1208:92::-;;;:::i;979:288:15:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;979:288:15;;;;;;;;:::i;325:29::-;;;:::i;:::-;;;;;;;;;;;;;;;;1928:107:67;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;299:20:15:-;;;-1:-1:-1;;;;;299:20:15;;:::o;1345:247::-;1386:4;1481:3;1463:14;;:21;;1455:55;;;;;-1:-1:-1;;;1455:55:15;;;;;;;;;;;;-1:-1:-1;;;1455:55:15;;;;;;;;;;;;;;;1538:6;;;;;;;;;-1:-1:-1;;;;;1538:6:15;-1:-1:-1;;;;;1538:12:15;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1538:14:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1538:14:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1538:14:15;1577:6;;1527:58;;;-1:-1:-1;;;1527:58:15;;-1:-1:-1;;;;;1577:6:15;;;1527:58;;;;;;:41;;;;;;;:58;;;;;1538:14;;1527:58;;;;;;;1577:6;1527:41;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;1527:58:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1527:58:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1527:58:15;;-1:-1:-1;1345:247:15;:::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;979:288:15:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1077:6:15;;-1:-1:-1;;;;;1077:6:15;:19;1069:59;;;;;-1:-1:-1;;;1069:59:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1146:20:15;;1138:54;;;;;-1:-1:-1;;;1138:54:15;;;;;;;;;;;;-1:-1:-1;;;1138:54:15;;;;;;;;;;;;;;;1202:6;:16;;-1:-1:-1;;;;;;1202:16:15;-1:-1:-1;;;;;1202:16:15;;;;;;;;;;;1228:14;:32;979:288::o;325:29::-;;;;:::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity 0.5.13;\n\nimport \"../controller/Controller.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n/**\n * @title A scheme to forward a call to a dao.\n * The scheme can unregister itself when its expirationTime reached.\n */\n\n\ncontract Forwarder is Ownable {\n\n Avatar public avatar;\n uint256 public expirationTime;\n\n /**\n * @dev forwardCall forward a call to the dao controller\n */\n // solhint-disable-next-line no-complex-fallback,payable-fallback\n function () external onlyOwner {\n // solhint-disable-next-line not-rely-on-time\n require(expirationTime > now, \"expirationTime > now\");\n // solhint-disable-next-line avoid-low-level-calls\n (bool result,) = avatar.owner().call(msg.data);\n require(result);\n }\n\n /**\n * @dev initialize\n * @param _avatar the avatar of the dao to forward the call to\n * @param _expirationTime the expirationTime to forwardCall\n */\n function initialize(Avatar _avatar, uint256 _expirationTime) external onlyOwner {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n avatar = _avatar;\n expirationTime = _expirationTime;\n }\n\n /**\n * @dev unregisterSelf function\n * @return bool\n */\n function unregisterSelf() public returns(bool) {\n // solhint-disable-next-line not-rely-on-time\n require(expirationTime <= now, \"expirationTime <= now\");\n return Controller(avatar.owner()).unregisterSelf(address(avatar));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/Forwarder.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Forwarder.sol","exportedSymbols":{"Forwarder":[6796]},"id":6797,"nodeType":"SourceUnit","nodes":[{"id":6700,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:15"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":6701,"nodeType":"ImportDirective","scope":6797,"sourceUnit":1798,"src":"25:38:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":6702,"nodeType":"ImportDirective","scope":6797,"sourceUnit":20510,"src":"64:63:15","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6703,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"284:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":6704,"nodeType":"InheritanceSpecifier","src":"284:7:15"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title A scheme to forward a call to a dao.\n The scheme can unregister itself when its expirationTime reached.","fullyImplemented":true,"id":6796,"linearizedBaseContracts":[6796,20509,20058],"name":"Forwarder","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":6706,"name":"avatar","nodeType":"VariableDeclaration","scope":6796,"src":"299:20:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6705,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"299:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":6708,"name":"expirationTime","nodeType":"VariableDeclaration","scope":6796,"src":"325:29:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6707,"name":"uint256","nodeType":"ElementaryTypeName","src":"325:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":6734,"nodeType":"Block","src":"539:264:15","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6714,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"611:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":6715,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"628:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"611:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"65787069726174696f6e54696d65203e206e6f77","id":6717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"633:22:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e25a77ff7fc36f4c14dd6593b93632f3c32ce86ea5b3a5c1d8bcd7cf938cfc32","typeString":"literal_string \"expirationTime > now\""},"value":"expirationTime > now"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e25a77ff7fc36f4c14dd6593b93632f3c32ce86ea5b3a5c1d8bcd7cf938cfc32","typeString":"literal_string \"expirationTime > now\""}],"id":6713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"603:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"603:53:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6719,"nodeType":"ExpressionStatement","src":"603:53:15"},{"assignments":[6721,null],"declarations":[{"constant":false,"id":6721,"name":"result","nodeType":"VariableDeclaration","scope":6734,"src":"726:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6720,"name":"bool","nodeType":"ElementaryTypeName","src":"726:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":6729,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6726,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"762:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"762:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6722,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"742:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"742:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":6724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"742:14:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"742:19:15","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"742:29:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"725:46:15"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6731,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"789:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"781:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":6732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"781:15:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6733,"nodeType":"ExpressionStatement","src":"781:15:15"}]},"documentation":"@dev forwardCall forward a call to the dao controller","id":6735,"implemented":true,"kind":"fallback","modifiers":[{"arguments":null,"id":6711,"modifierName":{"argumentTypes":null,"id":6710,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"529:9:15","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"529:9:15"}],"name":"","nodeType":"FunctionDefinition","parameters":{"id":6709,"nodeType":"ParameterList","parameters":[],"src":"517:2:15"},"returnParameters":{"id":6712,"nodeType":"ParameterList","parameters":[],"src":"539:0:15"},"scope":6796,"src":"508:295:15","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6770,"nodeType":"Block","src":"1059:208:15","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6745,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1077:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1094: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":6746,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1087:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1087:9:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1077:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":6750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1098:29:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":6744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1069:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1069:59:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6752,"nodeType":"ExpressionStatement","src":"1069:59:15"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6754,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"1146:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1164: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":6755,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1157:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1157:9:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1146:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":6759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1168:23:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":6753,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1138:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:54:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6761,"nodeType":"ExpressionStatement","src":"1138:54:15"},{"expression":{"argumentTypes":null,"id":6764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6762,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1202:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6763,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"1211:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1202:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6765,"nodeType":"ExpressionStatement","src":"1202:16:15"},{"expression":{"argumentTypes":null,"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6766,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"1228:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6767,"name":"_expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6739,"src":"1245:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1228:32:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6769,"nodeType":"ExpressionStatement","src":"1228:32:15"}]},"documentation":"@dev initialize\n@param _avatar the avatar of the dao to forward the call to\n@param _expirationTime the expirationTime to forwardCall","id":6771,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6742,"modifierName":{"argumentTypes":null,"id":6741,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1049:9:15","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1049:9:15"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"name":"_avatar","nodeType":"VariableDeclaration","scope":6771,"src":"999:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6736,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"999:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6739,"name":"_expirationTime","nodeType":"VariableDeclaration","scope":6771,"src":"1015:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1015:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"998:41:15"},"returnParameters":{"id":6743,"nodeType":"ParameterList","parameters":[],"src":"1059:0:15"},"scope":6796,"src":"979:288:15","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6794,"nodeType":"Block","src":"1392:200:15","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6777,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"1463:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":6778,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"1481:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1463:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"65787069726174696f6e54696d65203c3d206e6f77","id":6780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1486:23:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8e674f0ffaff003a955b59668f363832e69d77d254771c3d2790eaf43009e0d0","typeString":"literal_string \"expirationTime <= now\""},"value":"expirationTime <= now"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e674f0ffaff003a955b59668f363832e69d77d254771c3d2790eaf43009e0d0","typeString":"literal_string \"expirationTime <= now\""}],"id":6776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1455:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1455:55:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6782,"nodeType":"ExpressionStatement","src":"1455:55:15"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6790,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1577:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1569:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1569:15:15","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6784,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1538:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1538:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1538:14:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6783,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1527:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1527:26:15","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterSelf","nodeType":"MemberAccess","referencedDeclaration":996,"src":"1527:41:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":6792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1527:58:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6775,"id":6793,"nodeType":"Return","src":"1520:65:15"}]},"documentation":"@dev unregisterSelf function\n@return bool","id":6795,"implemented":true,"kind":"function","modifiers":[],"name":"unregisterSelf","nodeType":"FunctionDefinition","parameters":{"id":6772,"nodeType":"ParameterList","parameters":[],"src":"1368:2:15"},"returnParameters":{"id":6775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6774,"name":"","nodeType":"VariableDeclaration","scope":6795,"src":"1386:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6773,"name":"bool","nodeType":"ElementaryTypeName","src":"1386:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1385:6:15"},"scope":6796,"src":"1345:247:15","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":6797,"src":"262:1332:15"}],"src":"0:1595:15"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Forwarder.sol","exportedSymbols":{"Forwarder":[6796]},"id":6797,"nodeType":"SourceUnit","nodes":[{"id":6700,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:15"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":6701,"nodeType":"ImportDirective","scope":6797,"sourceUnit":1798,"src":"25:38:15","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":6702,"nodeType":"ImportDirective","scope":6797,"sourceUnit":20510,"src":"64:63:15","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6703,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"284:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":6704,"nodeType":"InheritanceSpecifier","src":"284:7:15"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title A scheme to forward a call to a dao.\n The scheme can unregister itself when its expirationTime reached.","fullyImplemented":true,"id":6796,"linearizedBaseContracts":[6796,20509,20058],"name":"Forwarder","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":6706,"name":"avatar","nodeType":"VariableDeclaration","scope":6796,"src":"299:20:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6705,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"299:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":6708,"name":"expirationTime","nodeType":"VariableDeclaration","scope":6796,"src":"325:29:15","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6707,"name":"uint256","nodeType":"ElementaryTypeName","src":"325:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":6734,"nodeType":"Block","src":"539:264:15","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6714,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"611:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":6715,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"628:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"611:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"65787069726174696f6e54696d65203e206e6f77","id":6717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"633:22:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e25a77ff7fc36f4c14dd6593b93632f3c32ce86ea5b3a5c1d8bcd7cf938cfc32","typeString":"literal_string \"expirationTime > now\""},"value":"expirationTime > now"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e25a77ff7fc36f4c14dd6593b93632f3c32ce86ea5b3a5c1d8bcd7cf938cfc32","typeString":"literal_string \"expirationTime > now\""}],"id":6713,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"603:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"603:53:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6719,"nodeType":"ExpressionStatement","src":"603:53:15"},{"assignments":[6721,null],"declarations":[{"constant":false,"id":6721,"name":"result","nodeType":"VariableDeclaration","scope":6734,"src":"726:11:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6720,"name":"bool","nodeType":"ElementaryTypeName","src":"726:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},null],"id":6729,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6726,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"762:3:15","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"data","nodeType":"MemberAccess","referencedDeclaration":null,"src":"762:8:15","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6722,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"742:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"742:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":6724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"742:14:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"742:19:15","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"742:29:15","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"725:46:15"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6731,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6721,"src":"789:6:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":6730,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"781:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":6732,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"781:15:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6733,"nodeType":"ExpressionStatement","src":"781:15:15"}]},"documentation":"@dev forwardCall forward a call to the dao controller","id":6735,"implemented":true,"kind":"fallback","modifiers":[{"arguments":null,"id":6711,"modifierName":{"argumentTypes":null,"id":6710,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"529:9:15","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"529:9:15"}],"name":"","nodeType":"FunctionDefinition","parameters":{"id":6709,"nodeType":"ParameterList","parameters":[],"src":"517:2:15"},"returnParameters":{"id":6712,"nodeType":"ParameterList","parameters":[],"src":"539:0:15"},"scope":6796,"src":"508:295:15","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6770,"nodeType":"Block","src":"1059:208:15","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6745,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1077:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1094: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":6746,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1087:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1087:9:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1077:19:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":6750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1098:29:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":6744,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1069:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1069:59:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6752,"nodeType":"ExpressionStatement","src":"1069:59:15"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6754,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"1146:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6756,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1164: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":6755,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1157:6:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6757,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1157:9:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1146:20:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":6759,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1168:23:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":6753,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1138:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1138:54:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6761,"nodeType":"ExpressionStatement","src":"1138:54:15"},{"expression":{"argumentTypes":null,"id":6764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6762,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1202:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6763,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6737,"src":"1211:7:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1202:16:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6765,"nodeType":"ExpressionStatement","src":"1202:16:15"},{"expression":{"argumentTypes":null,"id":6768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6766,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"1228:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6767,"name":"_expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6739,"src":"1245:15:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1228:32:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6769,"nodeType":"ExpressionStatement","src":"1228:32:15"}]},"documentation":"@dev initialize\n@param _avatar the avatar of the dao to forward the call to\n@param _expirationTime the expirationTime to forwardCall","id":6771,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":6742,"modifierName":{"argumentTypes":null,"id":6741,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1049:9:15","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1049:9:15"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6737,"name":"_avatar","nodeType":"VariableDeclaration","scope":6771,"src":"999:14:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6736,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"999:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6739,"name":"_expirationTime","nodeType":"VariableDeclaration","scope":6771,"src":"1015:23:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6738,"name":"uint256","nodeType":"ElementaryTypeName","src":"1015:7:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"998:41:15"},"returnParameters":{"id":6743,"nodeType":"ParameterList","parameters":[],"src":"1059:0:15"},"scope":6796,"src":"979:288:15","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6794,"nodeType":"Block","src":"1392:200:15","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6777,"name":"expirationTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6708,"src":"1463:14:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":6778,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"1481:3:15","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1463:21:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"65787069726174696f6e54696d65203c3d206e6f77","id":6780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1486:23:15","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8e674f0ffaff003a955b59668f363832e69d77d254771c3d2790eaf43009e0d0","typeString":"literal_string \"expirationTime <= now\""},"value":"expirationTime <= now"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8e674f0ffaff003a955b59668f363832e69d77d254771c3d2790eaf43009e0d0","typeString":"literal_string \"expirationTime <= now\""}],"id":6776,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1455:7:15","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1455:55:15","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6782,"nodeType":"ExpressionStatement","src":"1455:55:15"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6790,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1577:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6789,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1569:7:15","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1569:15:15","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":6784,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6706,"src":"1538:6:15","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1538:12:15","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":6786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1538:14:15","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6783,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1527:10:15","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":6787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1527:26:15","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":6788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterSelf","nodeType":"MemberAccess","referencedDeclaration":996,"src":"1527:41:15","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":6792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1527:58:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6775,"id":6793,"nodeType":"Return","src":"1520:65:15"}]},"documentation":"@dev unregisterSelf function\n@return bool","id":6795,"implemented":true,"kind":"function","modifiers":[],"name":"unregisterSelf","nodeType":"FunctionDefinition","parameters":{"id":6772,"nodeType":"ParameterList","parameters":[],"src":"1368:2:15"},"returnParameters":{"id":6775,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6774,"name":"","nodeType":"VariableDeclaration","scope":6795,"src":"1386:4:15","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6773,"name":"bool","nodeType":"ElementaryTypeName","src":"1386:4:15","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1385:6:15"},"scope":6796,"src":"1345:247:15","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":6797,"src":"262:1332:15"}],"src":"0:1595:15"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.117Z","devdoc":{"methods":{"initialize(address,uint256)":{"details":"initialize","params":{"_avatar":"the avatar of the dao to forward the call to","_expirationTime":"the expirationTime to forwardCall"}},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"unregisterSelf()":{"details":"unregisterSelf function","return":"bool"}},"title":"A scheme to forward a call to a dao. The scheme can unregister itself when its expirationTime reached."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenericScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenericScheme.json new file mode 100644 index 00000000..08344a4e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenericScheme.json @@ -0,0 +1 @@ +{"contractName":"GenericScheme","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"_callData","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"NewCallProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"ProposalDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"_genericCallReturnValue","type":"bytes"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"}],"name":"ProposalExecutedByVotingMachine","type":"event"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"contractToCall","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationProposals","outputs":[{"internalType":"bytes","name":"callData","type":"bytes"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"exist","type":"bool"},{"internalType":"bool","name":"passed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"voteParams","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"votingMachine","outputs":[{"internalType":"contract IntVoteInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"contract IntVoteInterface","name":"_votingMachine","type":"address"},{"internalType":"bytes32","name":"_voteParams","type":"bytes32"},{"internalType":"address","name":"_contractToCall","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_decision","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"execute","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes","name":"_callData","type":"bytes"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeCall","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"NewCallProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"ProposalDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_genericCallReturnValue\",\"type\":\"bytes\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"ProposalExecutedByVotingMachine\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contractToCall\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_decision\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_votingMachine\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_contractToCall\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationProposals\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"passed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_callData\",\"type\":\"bytes\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeCall\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"voteParams\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingMachine\",\"outputs\":[{\"internalType\":\"contract IntVoteInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A scheme for proposing and executing calls to an arbitrary function on a specific contract on behalf of the organization avatar.\",\"methods\":{\"execute(bytes32)\":{\"details\":\"execution of proposals after it has been decided by the voting machine\",\"params\":{\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_decision\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"bool success\"},\"initialize(address,address,bytes32,address)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar to mint reputation from\",\"_contractToCall\":\"the target contract this scheme will call to\",\"_voteParams\":\"voting machine parameters.\",\"_votingMachine\":\"the voting machines address to\"}},\"proposeCall(bytes,uint256,string)\":{\"details\":\"propose to call on behalf of the _avatar The function trigger NewCallProposal event\",\"params\":{\"_callData\":\"- The abi encode data for the call\",\"_descriptionHash\":\"proposal description hash\",\"_value\":\"value(ETH) to transfer with the call\"},\"return\":\"an id which represents the proposal\"}},\"title\":\"GenericScheme.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/GenericScheme.sol\":\"GenericScheme\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/GenericScheme.sol\":{\"keccak256\":\"0xc256b1ca0e436ee52c6dee9ffe353af11ae8886e8c56955f32b90810237d37bd\",\"urls\":[\"bzz-raw://11e035440c22453c50293a91bfcf1a1743f04304a0842828ae5e66a981ef3ebd\",\"dweb:/ipfs/QmPPhksY5R9TqR8h7pTALVEcLYn8BbnZ89yYDYbz2hKzmK\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"415:4788:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:4788:16;;;;;;;","deployedSourceMap":"415:4788:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;415:4788:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1278:37;;;:::i;:::-;;;;-1:-1:-1;;;;;1278:37:16;;;;;;;;;;;;;;1387:20;;;:::i;598:73:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;1973:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2666:345;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2445:696:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2445:696:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1698:452;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1698:452:16;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1352:29;;;:::i;2325:335:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;4511:689:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4511:689:16;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4511:689:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4511:689:16;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4511:689:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4511:689:16;;;;;;;;;-1:-1:-1;4511:689:16;;;;-1:-1:-1;4511:689:16;;;;-1:-1:-1;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;4511:689:16;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4511:689:16;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4511:689:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4511:689:16;;-1:-1:-1;4511:689:16;;-1:-1:-1;;;;;4511:689:16:i;678:401:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;1212:59:16:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1212:59:16;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1212:59:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:25;;;:::i;3312:851::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3312:851:16;;:::i;1085:401:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;1278:37:16:-;;;-1:-1:-1;;;;;1278:37:16;;:::o;1387:20::-;;;-1:-1:-1;;;;;1387:20:16;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;1973:346::-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;-1:-1:-1;;1973:346:50;;;;;:::o;2666:345::-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2445:696:16;443:10:50;2569:4:16;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;2544:11:16;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;2585:29:16;2617:34;;;:21;:34;;;;;2669:14;;;;;;2661:50;;;;;-1:-1:-1;;;2661:50:16;;;;;;;;;;;;-1:-1:-1;;;2661:50:16;;;;;;;;;;;;;;;2729:15;;;;;;;;;:24;2721:57;;;;;-1:-1:-1;;;2721:57:16;;;;;;;;;;;;-1:-1:-1;;;2721:57:16;;;;;;;;;;;;;;;2793:9;2806:1;2793:14;2789:237;;;2823:15;;;:22;;-1:-1:-1;;2823:22:16;;;;;2859:20;2867:11;2859:7;:20::i;:::-;2789:237;;;2917:34;;;;:21;:34;;;;;;2910:41;2917:34;;2910:41;:::i;:::-;-1:-1:-1;2910:41:16;;;;;;;;;;;;;-1:-1:-1;;2910:41:16;;;2994:6;;2970:45;;3003:11;;-1:-1:-1;;;;;2994:6:16;;;;2970:45;;;2789:237;3081:6;;3041:72;;;;;;;;3090:11;;-1:-1:-1;;;;;3081:6:16;;3041:72;;;;;;;;;;-1:-1:-1;3130:4:16;;2445:696;-1:-1:-1;;;;2445:696:16:o;1698:452::-;1886:6;;-1:-1:-1;;;;;1886:6:16;:19;1878:59;;;;;-1:-1:-1;;;1878:59:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1955:20:16;;1947:54;;;;;-1:-1:-1;;;1947:54:16;;;;;;;;;;;;-1:-1:-1;;;1947:54:16;;;;;;;;;;;;;;;2011:6;:16;;-1:-1:-1;;;;;2011:16:16;;;-1:-1:-1;;;;;;2011:16:16;;;;;;;2037:13;:30;;;;;;;;;;;;;;;-1:-1:-1;2077:24:16;;;;2111:14;:32;;;;;;;;;;;1698:452::o;1352:29::-;;;-1:-1:-1;;;;;1352:29:16;;:::o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;4511:689:16:-;4671:13;;;4696:10;;4728:6;;4671:65;;;-1:-1:-1;;;4671:65:16;;;;;;;;;;;;;;;;4708:10;4671:65;;;;-1:-1:-1;;;;;4728:6:16;;;4671:65;;;;;;4627:7;;;;4671:13;;;;;:21;;:65;;;;;;;;;;;;;;4627:7;4671:13;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;4671:65:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4671:65:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4671:65:16;4783:136;;;;;;;;;;;4671:65;4783:136;;;;;;4877:4;4783:136;;;;;;-1:-1:-1;4783:136:16;;;;;;4747:33;;;;;;;;;;:172;;;;4671:65;;-1:-1:-1;4783:136:16;;4747:33;;:172;;:33;;:172;;;;:::i;:::-;-1:-1:-1;4747:172:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4747:172:16;;;;;;;;;;-1:-1:-1;;4747:172:16;;;;;;;;;;;;;;;4981:89;;;;;;;5020:12;4981:89;;5053:6;;;-1:-1:-1;;;;;5053:6:16;;;4981:89;;;;;;4951:13;;;;-1:-1:-1;4929:37:16;;;;;;;;;:49;;;;;;;;:141;;;;;;;;;;;;-1:-1:-1;;;;;;4929:141:16;;;;;;;;;;;5109:6;5085:81;;;;;;;;;;;;;;;;;;;;;;4929:49;;5109:6;;;;;5085:81;;;;;;5149:16;;5085:81;;;;;;;;;;;;;;;;;;;;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;5085:81:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5085:81:16;;;;;;;;;;;;;;;;;;;;;;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;5085:81:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5183:10;4511:689;-1:-1:-1;;;;4511:689:16:o;678:401:50:-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;1212:59:16:-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1212:59:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1212:59:16;;;;;;;;;;;;;;;;;-1:-1:-1;1212:59:16;;;;;;:::o;1321:25::-;;;;:::o;3312:851::-;3367:29;3399:34;;;:21;:34;;;;;3451:14;;;;;;3443:50;;;;;-1:-1:-1;;;3443:50:16;;;;;;;;;;;;-1:-1:-1;;;3443:50:16;;;;;;;;;;;;;;;3511:15;;;;;;;;;3503:66;;;;-1:-1:-1;;;3503:66:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3579:14;;;:22;;-1:-1:-1;;3579:22:16;;;3713:6;;:14;;;-1:-1:-1;;;3713:14:16;;;;3611:35;;3596:5;;;;-1:-1:-1;;;;;3713:6:16;;;;:12;;:14;;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;3713:14:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3713:14:16;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3713:14:16;3805;;;3840:6;;3805:14;3848;;;;3782:81;;-1:-1:-1;;;3782:81:16;;-1:-1:-1;;;;;3805:14:16;;;3782:81;;;;;;3840:6;;;3782:81;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3782:81:16;;;;3805:14;3782:81;;;;;;;;;;;;;;;;3713:14;;-1:-1:-1;3782:22:16;;;;;;3805:14;3821:8;;3840:6;;3782:81;;;;;;;;;3821:8;;3782:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3782:81:16;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3782:81:16;;;;;;39:16:-1;36:1;17:17;2:54;101:4;3782:81:16;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;3782:81:16;;;;;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;3782:81:16;;420:4:-1;411:14;;;;3782:81:16;;;;;411:14:-1;3782:81:16;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;3782:81:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3782:81:16;;-1:-1:-1;3738:125:16;;-1:-1:-1;3738:125:16;;-1:-1:-1;;3873:284:16;;;-1:-1:-1;3873:284:16;;3907:34;;;;:21;:34;;;;;;3900:41;3907:34;;3900:41;:::i;:::-;-1:-1:-1;3900:41:16;;;;;;;;;;;;;-1:-1:-1;;3900:41:16;;;3984:6;;3960:45;;3993:11;;-1:-1:-1;;;;;3984:6:16;;;;3960:45;;;4049:6;;4024:70;;;;;;;;;;;;;;;4058:11;;-1:-1:-1;;;;;4049:6:16;;4024:70;;4071:22;;4024:70;;;;;;;;;;;;;4049: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;4024:70:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3873:284;;;4125:14;;;:21;;-1:-1:-1;;4125:21:16;4142:4;4125:21;;;3873:284;3312:851;;;;;:::o;1085:401:50:-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;415:4788:16;;;;;;;;;;-1:-1:-1;415:4788:16;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;415:4788:16;;;-1:-1:-1;415:4788:16;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\n/**\n * @title GenericScheme.\n * @dev A scheme for proposing and executing calls to an arbitrary function\n * on a specific contract on behalf of the organization avatar.\n */\ncontract GenericScheme is VotingMachineCallbacks, ProposalExecuteInterface {\n event NewCallProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n bytes _callData,\n uint256 _value,\n string _descriptionHash\n );\n\n event ProposalExecuted(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n bytes _genericCallReturnValue\n );\n\n event ProposalExecutedByVotingMachine(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n int256 _param\n );\n\n event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n // Details of a voting proposal:\n struct CallProposal {\n bytes callData;\n uint256 value;\n bool exist;\n bool passed;\n }\n\n mapping(bytes32=>CallProposal) public organizationProposals;\n\n IntVoteInterface public votingMachine;\n bytes32 public voteParams;\n address public contractToCall;\n Avatar public avatar;\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _votingMachine the voting machines address to\n * @param _voteParams voting machine parameters.\n * @param _contractToCall the target contract this scheme will call to\n */\n function initialize(\n Avatar _avatar,\n IntVoteInterface _votingMachine,\n bytes32 _voteParams,\n address _contractToCall\n )\n external\n {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n avatar = _avatar;\n votingMachine = _votingMachine;\n voteParams = _voteParams;\n contractToCall = _contractToCall;\n }\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _decision a parameter of the voting result, 1 yes and 2 is no.\n * @return bool success\n */\n function executeProposal(bytes32 _proposalId, int256 _decision)\n external\n onlyVotingMachine(_proposalId)\n returns(bool) {\n CallProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.exist, \"must be a live proposal\");\n require(proposal.passed == false, \"cannot execute twice\");\n\n if (_decision == 1) {\n proposal.passed = true;\n execute(_proposalId);\n } else {\n delete organizationProposals[_proposalId];\n emit ProposalDeleted(address(avatar), _proposalId);\n }\n\n emit ProposalExecutedByVotingMachine(address(avatar), _proposalId, _decision);\n return true;\n }\n\n /**\n * @dev execution of proposals after it has been decided by the voting machine\n * @param _proposalId the ID of the voting in the voting machine\n */\n function execute(bytes32 _proposalId) public {\n CallProposal storage proposal = organizationProposals[_proposalId];\n require(proposal.exist, \"must be a live proposal\");\n require(proposal.passed, \"proposal must passed by voting machine\");\n proposal.exist = false;\n bytes memory genericCallReturnValue;\n bool success;\n Controller controller = Controller(avatar.owner());\n (success, genericCallReturnValue) =\n controller.genericCall(contractToCall, proposal.callData, avatar, proposal.value);\n if (success) {\n delete organizationProposals[_proposalId];\n emit ProposalDeleted(address(avatar), _proposalId);\n emit ProposalExecuted(address(avatar), _proposalId, genericCallReturnValue);\n } else {\n proposal.exist = true;\n }\n }\n\n /**\n * @dev propose to call on behalf of the _avatar\n * The function trigger NewCallProposal event\n * @param _callData - The abi encode data for the call\n * @param _value value(ETH) to transfer with the call\n * @param _descriptionHash proposal description hash\n * @return an id which represents the proposal\n */\n function proposeCall(bytes memory _callData, uint256 _value, string memory _descriptionHash)\n public\n returns(bytes32)\n {\n bytes32 proposalId = votingMachine.propose(2, voteParams, msg.sender, address(avatar));\n\n organizationProposals[proposalId] = CallProposal({\n callData: _callData,\n value: _value,\n exist: true,\n passed: false\n });\n proposalsInfo[address(votingMachine)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:avatar\n });\n emit NewCallProposal(address(avatar), proposalId, _callData, _value, _descriptionHash);\n return proposalId;\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/GenericScheme.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/GenericScheme.sol","exportedSymbols":{"GenericScheme":[7128]},"id":7129,"nodeType":"SourceUnit","nodes":[{"id":6798,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:16"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":6799,"nodeType":"ImportDirective","scope":7129,"sourceUnit":19817,"src":"25:71:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":6800,"nodeType":"ImportDirective","scope":7129,"sourceUnit":20032,"src":"97:86:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":6801,"nodeType":"ImportDirective","scope":7129,"sourceUnit":14651,"src":"184:54:16","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6802,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"441:22:16","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":6803,"nodeType":"InheritanceSpecifier","src":"441:22:16"},{"arguments":null,"baseName":{"contractScope":null,"id":6804,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"465:24:16","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":6805,"nodeType":"InheritanceSpecifier","src":"465:24:16"}],"contractDependencies":[14650,19828,20031],"contractKind":"contract","documentation":"@title GenericScheme.\n@dev A scheme for proposing and executing calls to an arbitrary function\non a specific contract on behalf of the organization avatar.","fullyImplemented":true,"id":7128,"linearizedBaseContracts":[7128,19828,14650,20031],"name":"GenericScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":6817,"name":"NewCallProposal","nodeType":"EventDefinition","parameters":{"id":6816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6807,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6817,"src":"527:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6806,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6809,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6817,"src":"560:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6811,"indexed":false,"name":"_callData","nodeType":"VariableDeclaration","scope":6817,"src":"597:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6810,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":6813,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":6817,"src":"624:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6812,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6815,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":6817,"src":"648:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6814,"name":"string","nodeType":"ElementaryTypeName","src":"648:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"517:161:16"},"src":"496:183:16"},{"anonymous":false,"documentation":null,"id":6825,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":6824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6819,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6825,"src":"717:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6818,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6821,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6825,"src":"750:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"750:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6823,"indexed":false,"name":"_genericCallReturnValue","nodeType":"VariableDeclaration","scope":6825,"src":"787:29:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6822,"name":"bytes","nodeType":"ElementaryTypeName","src":"787:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"707:115:16"},"src":"685:138:16"},{"anonymous":false,"documentation":null,"id":6833,"name":"ProposalExecutedByVotingMachine","nodeType":"EventDefinition","parameters":{"id":6832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6827,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6833,"src":"876:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6826,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6829,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6833,"src":"909:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"909:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6831,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":6833,"src":"946:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6830,"name":"int256","nodeType":"ElementaryTypeName","src":"946:6:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"866:99:16"},"src":"829:137:16"},{"anonymous":false,"documentation":null,"id":6839,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":6838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6835,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6839,"src":"994:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6834,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6837,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6839,"src":"1019:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1019:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"993:54:16"},"src":"972:76:16"},{"canonicalName":"GenericScheme.CallProposal","id":6848,"members":[{"constant":false,"id":6841,"name":"callData","nodeType":"VariableDeclaration","scope":6848,"src":"1121:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":6840,"name":"bytes","nodeType":"ElementaryTypeName","src":"1121:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":6843,"name":"value","nodeType":"VariableDeclaration","scope":6848,"src":"1145:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1145:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6845,"name":"exist","nodeType":"VariableDeclaration","scope":6848,"src":"1168:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6844,"name":"bool","nodeType":"ElementaryTypeName","src":"1168:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":6847,"name":"passed","nodeType":"VariableDeclaration","scope":6848,"src":"1188:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6846,"name":"bool","nodeType":"ElementaryTypeName","src":"1188:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"CallProposal","nodeType":"StructDefinition","scope":7128,"src":"1091:115:16","visibility":"public"},{"constant":false,"id":6852,"name":"organizationProposals","nodeType":"VariableDeclaration","scope":7128,"src":"1212:59:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal)"},"typeName":{"id":6851,"keyType":{"id":6849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1220:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1212:30:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal)"},"valueType":{"contractScope":null,"id":6850,"name":"CallProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":6848,"src":"1229:12:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":6854,"name":"votingMachine","nodeType":"VariableDeclaration","scope":7128,"src":"1278:37:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":6853,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1278:16:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":6856,"name":"voteParams","nodeType":"VariableDeclaration","scope":7128,"src":"1321:25:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1321:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":false,"id":6858,"name":"contractToCall","nodeType":"VariableDeclaration","scope":7128,"src":"1352:29:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6857,"name":"address","nodeType":"ElementaryTypeName","src":"1352:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":6860,"name":"avatar","nodeType":"VariableDeclaration","scope":7128,"src":"1387:20:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6859,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1387:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"body":{"id":6905,"nodeType":"Block","src":"1868:282:16","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6872,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"1886:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1903:1:16","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":6873,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1896:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1896:9:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1886:19:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1907:29:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":6871,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1878:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1878:59:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6879,"nodeType":"ExpressionStatement","src":"1878:59:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6881,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6862,"src":"1955:7:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1973:1:16","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":6882,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1966:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:9:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1955:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":6886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1977:23:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":6880,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1947:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:54:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6888,"nodeType":"ExpressionStatement","src":"1947:54:16"},{"expression":{"argumentTypes":null,"id":6891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6889,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"2011:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6890,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6862,"src":"2020:7:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2011:16:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6892,"nodeType":"ExpressionStatement","src":"2011:16:16"},{"expression":{"argumentTypes":null,"id":6895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6893,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6854,"src":"2037:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6894,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6864,"src":"2053:14:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"2037:30:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":6896,"nodeType":"ExpressionStatement","src":"2037:30:16"},{"expression":{"argumentTypes":null,"id":6899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6897,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"2077:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6898,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6866,"src":"2090:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2077:24:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6900,"nodeType":"ExpressionStatement","src":"2077:24:16"},{"expression":{"argumentTypes":null,"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6901,"name":"contractToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6858,"src":"2111:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6902,"name":"_contractToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6868,"src":"2128:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2111:32:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6904,"nodeType":"ExpressionStatement","src":"2111:32:16"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _votingMachine the voting machines address to\n@param _voteParams voting machine parameters.\n@param _contractToCall the target contract this scheme will call to","id":6906,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6862,"name":"_avatar","nodeType":"VariableDeclaration","scope":6906,"src":"1727:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6861,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1727:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6864,"name":"_votingMachine","nodeType":"VariableDeclaration","scope":6906,"src":"1751:31:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":6863,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1751:16:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":6866,"name":"_voteParams","nodeType":"VariableDeclaration","scope":6906,"src":"1792:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1792:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6868,"name":"_contractToCall","nodeType":"VariableDeclaration","scope":6906,"src":"1821:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6867,"name":"address","nodeType":"ElementaryTypeName","src":"1821:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1717:133:16"},"returnParameters":{"id":6870,"nodeType":"ParameterList","parameters":[],"src":"1868:0:16"},"scope":7128,"src":"1698:452:16","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6976,"nodeType":"Block","src":"2575:566:16","statements":[{"assignments":[6919],"declarations":[{"constant":false,"id":6919,"name":"proposal","nodeType":"VariableDeclaration","scope":6976,"src":"2585:29:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"},"typeName":{"contractScope":null,"id":6918,"name":"CallProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":6848,"src":"2585:12:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"}},"value":null,"visibility":"internal"}],"id":6923,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6920,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"2617:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":6922,"indexExpression":{"argumentTypes":null,"id":6921,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2639:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2617:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2585:66:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6925,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"2669:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"2669:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d7573742062652061206c6976652070726f706f73616c","id":6927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2685:25:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""},"value":"must be a live proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""}],"id":6924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2661:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2661:50:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6929,"nodeType":"ExpressionStatement","src":"2661:50:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6931,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"2729:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"passed","nodeType":"MemberAccess","referencedDeclaration":6847,"src":"2729:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":6933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2748:5:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2729:24:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e6e6f742065786563757465207477696365","id":6935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2755:22:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7b3876c942e94ad0cc3990c159a8c9b0b0869192d64665aba5348f604ca4a452","typeString":"literal_string \"cannot execute twice\""},"value":"cannot execute twice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b3876c942e94ad0cc3990c159a8c9b0b0869192d64665aba5348f604ca4a452","typeString":"literal_string \"cannot execute twice\""}],"id":6930,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2721:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2721:57:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6937,"nodeType":"ExpressionStatement","src":"2721:57:16"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6938,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6910,"src":"2793:9:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":6939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2793:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6964,"nodeType":"Block","src":"2896:130:16","statements":[{"expression":{"argumentTypes":null,"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2910:41:16","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6952,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"2917:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":6954,"indexExpression":{"argumentTypes":null,"id":6953,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2939:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2917:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6956,"nodeType":"ExpressionStatement","src":"2910:41:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6959,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"2994:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2986:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2986:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6961,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"3003:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6957,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6839,"src":"2970:15:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":6962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2970:45:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6963,"nodeType":"EmitStatement","src":"2965:50:16"}]},"id":6965,"nodeType":"IfStatement","src":"2789:237:16","trueBody":{"id":6951,"nodeType":"Block","src":"2809:81:16","statements":[{"expression":{"argumentTypes":null,"id":6945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6941,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"2823:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"passed","nodeType":"MemberAccess","referencedDeclaration":6847,"src":"2823:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2841:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2823:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6946,"nodeType":"ExpressionStatement","src":"2823:22:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6948,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2867:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6947,"name":"execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"2859:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":6949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2859:20:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6950,"nodeType":"ExpressionStatement","src":"2859:20:16"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6968,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3081:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3073:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3073:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6970,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"3090:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6971,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6910,"src":"3103:9:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6966,"name":"ProposalExecutedByVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6833,"src":"3041:31:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3041:72:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6973,"nodeType":"EmitStatement","src":"3036:77:16"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":6974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3130:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6917,"id":6975,"nodeType":"Return","src":"3123:11:16"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _decision a parameter of the voting result, 1 yes and 2 is no.\n@return bool success","id":6977,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":6913,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2544:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6914,"modifierName":{"argumentTypes":null,"id":6912,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2526:17:16","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2526:30:16"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":6911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6908,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6977,"src":"2470:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2470:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6910,"name":"_decision","nodeType":"VariableDeclaration","scope":6977,"src":"2491:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6909,"name":"int256","nodeType":"ElementaryTypeName","src":"2491:6:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2469:39:16"},"returnParameters":{"id":6917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6916,"name":"","nodeType":"VariableDeclaration","scope":6977,"src":"2569:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6915,"name":"bool","nodeType":"ElementaryTypeName","src":"2569:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2568:6:16"},"scope":7128,"src":"2445:696:16","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":7064,"nodeType":"Block","src":"3357:806:16","statements":[{"assignments":[6983],"declarations":[{"constant":false,"id":6983,"name":"proposal","nodeType":"VariableDeclaration","scope":7064,"src":"3367:29:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"},"typeName":{"contractScope":null,"id":6982,"name":"CallProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":6848,"src":"3367:12:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"}},"value":null,"visibility":"internal"}],"id":6987,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6984,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"3399:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":6986,"indexExpression":{"argumentTypes":null,"id":6985,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3421:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3399:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3367:66:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6989,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3451:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"3451:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d7573742062652061206c6976652070726f706f73616c","id":6991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3467:25:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""},"value":"must be a live proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""}],"id":6988,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3443:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3443:50:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6993,"nodeType":"ExpressionStatement","src":"3443:50:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6995,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3511:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"passed","nodeType":"MemberAccess","referencedDeclaration":6847,"src":"3511:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3528:40:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cf2bc59c228b9810b54d50be96c53055b6b67deedfc78cc18b233698a7dd1612","typeString":"literal_string \"proposal must passed by voting machine\""},"value":"proposal must passed by voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cf2bc59c228b9810b54d50be96c53055b6b67deedfc78cc18b233698a7dd1612","typeString":"literal_string \"proposal must passed by voting machine\""}],"id":6994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3503:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3503:66:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6999,"nodeType":"ExpressionStatement","src":"3503:66:16"},{"expression":{"argumentTypes":null,"id":7004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7000,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3579:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"3579:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":7003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3596:5:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3579:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7005,"nodeType":"ExpressionStatement","src":"3579:22:16"},{"assignments":[7007],"declarations":[{"constant":false,"id":7007,"name":"genericCallReturnValue","nodeType":"VariableDeclaration","scope":7064,"src":"3611:35:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7006,"name":"bytes","nodeType":"ElementaryTypeName","src":"3611:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":7008,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3611:35:16"},{"assignments":[7010],"declarations":[{"constant":false,"id":7010,"name":"success","nodeType":"VariableDeclaration","scope":7064,"src":"3656:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7009,"name":"bool","nodeType":"ElementaryTypeName","src":"3656:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":7011,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3656:12:16"},{"assignments":[7013],"declarations":[{"constant":false,"id":7013,"name":"controller","nodeType":"VariableDeclaration","scope":7064,"src":"3678:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":7012,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"3678:10:16","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":7019,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":7015,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3713:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"3713:12:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3713:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7014,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"3702:10:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":7018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3702:26:16","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"3678:50:16"},{"expression":{"argumentTypes":null,"id":7032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":7020,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7010,"src":"3739:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":7021,"name":"genericCallReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7007,"src":"3748:22:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":7022,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3738:33:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7025,"name":"contractToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6858,"src":"3805:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7026,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3821:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callData","nodeType":"MemberAccess","referencedDeclaration":6841,"src":"3821:17:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"id":7028,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3840:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7029,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3848:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6843,"src":"3848:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7023,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7013,"src":"3782:10:16","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":7024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":1475,"src":"3782:22:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_contract$_Avatar_$337_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,contract Avatar,uint256) external returns (bool,bytes memory)"}},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3782:81:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"3738:125:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7033,"nodeType":"ExpressionStatement","src":"3738:125:16"},{"condition":{"argumentTypes":null,"id":7034,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7010,"src":"3877:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7062,"nodeType":"Block","src":"4111:46:16","statements":[{"expression":{"argumentTypes":null,"id":7060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7056,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"4125:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"4125:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":7059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4142:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4125:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7061,"nodeType":"ExpressionStatement","src":"4125:21:16"}]},"id":7063,"nodeType":"IfStatement","src":"3873:284:16","trueBody":{"id":7055,"nodeType":"Block","src":"3886:219:16","statements":[{"expression":{"argumentTypes":null,"id":7038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3900:41:16","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7035,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"3907:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":7037,"indexExpression":{"argumentTypes":null,"id":7036,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3929:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3907:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7039,"nodeType":"ExpressionStatement","src":"3900:41:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7042,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3984:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3976:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3976:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7044,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3993:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7040,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6839,"src":"3960:15:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3960:45:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7046,"nodeType":"EmitStatement","src":"3955:50:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7049,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"4049:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4041:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4041:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7051,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"4058:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7052,"name":"genericCallReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7007,"src":"4071:22:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7047,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6825,"src":"4024:16:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory)"}},"id":7053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4024:70:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7054,"nodeType":"EmitStatement","src":"4019:75:16"}]}}]},"documentation":"@dev execution of proposals after it has been decided by the voting machine\n@param _proposalId the ID of the voting in the voting machine","id":7065,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":6980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6979,"name":"_proposalId","nodeType":"VariableDeclaration","scope":7065,"src":"3329:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3329:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3328:21:16"},"returnParameters":{"id":6981,"nodeType":"ParameterList","parameters":[],"src":"3357:0:16"},"scope":7128,"src":"3312:851:16","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7126,"nodeType":"Block","src":"4640:560:16","statements":[{"assignments":[7077],"declarations":[{"constant":false,"id":7077,"name":"proposalId","nodeType":"VariableDeclaration","scope":7126,"src":"4650:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4650:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":7088,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":7080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4693:1:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"id":7081,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"4696:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7082,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4708:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4708:10:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7085,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"4728:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4720:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4720:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":7078,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6854,"src":"4671:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4671:21:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":7087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4671:65:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4650:86:16"},{"expression":{"argumentTypes":null,"id":7098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7089,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"4747:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":7091,"indexExpression":{"argumentTypes":null,"id":7090,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"4769:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4747:33:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7093,"name":"_callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"4820:9:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":7094,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"4850:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"74727565","id":7095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4877:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"hexValue":"66616c7365","id":7096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4903:5:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7092,"name":"CallProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"4783:12:16","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CallProposal_$6848_storage_ptr_$","typeString":"type(struct GenericScheme.CallProposal storage pointer)"}},"id":7097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["callData","value","exist","passed"],"nodeType":"FunctionCall","src":"4783:136:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_memory","typeString":"struct GenericScheme.CallProposal memory"}},"src":"4747:172:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"id":7099,"nodeType":"ExpressionStatement","src":"4747:172:16"},{"expression":{"argumentTypes":null,"id":7112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7100,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"4929:13:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":7105,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7102,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6854,"src":"4951:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":7101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4943:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4943:22:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4929:37:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":7106,"indexExpression":{"argumentTypes":null,"id":7104,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"4967:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4929:49:16","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7108,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5020:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5020:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7110,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"5053:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7107,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"4981:12:16","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":7111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"4981:89:16","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"4929:141:16","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":7113,"nodeType":"ExpressionStatement","src":"4929:141:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7116,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"5109:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5101:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5101:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7118,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"5118:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7119,"name":"_callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"5130:9:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":7120,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"5141:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7121,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"5149:16:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7114,"name":"NewCallProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6817,"src":"5085:15:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory,uint256,string memory)"}},"id":7122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5085:81:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7123,"nodeType":"EmitStatement","src":"5080:86:16"},{"expression":{"argumentTypes":null,"id":7124,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"5183:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7075,"id":7125,"nodeType":"Return","src":"5176:17:16"}]},"documentation":"@dev propose to call on behalf of the _avatar\n The function trigger NewCallProposal event\n@param _callData - The abi encode data for the call\n@param _value value(ETH) to transfer with the call\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":7127,"implemented":true,"kind":"function","modifiers":[],"name":"proposeCall","nodeType":"FunctionDefinition","parameters":{"id":7072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7067,"name":"_callData","nodeType":"VariableDeclaration","scope":7127,"src":"4532:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7066,"name":"bytes","nodeType":"ElementaryTypeName","src":"4532:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":7069,"name":"_value","nodeType":"VariableDeclaration","scope":7127,"src":"4556:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7068,"name":"uint256","nodeType":"ElementaryTypeName","src":"4556:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7071,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":7127,"src":"4572:30:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7070,"name":"string","nodeType":"ElementaryTypeName","src":"4572:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4531:72:16"},"returnParameters":{"id":7075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7074,"name":"","nodeType":"VariableDeclaration","scope":7127,"src":"4627:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4627:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4626:9:16"},"scope":7128,"src":"4511:689:16","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":7129,"src":"415:4788:16"}],"src":"0:5204:16"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/GenericScheme.sol","exportedSymbols":{"GenericScheme":[7128]},"id":7129,"nodeType":"SourceUnit","nodes":[{"id":6798,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:16"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":6799,"nodeType":"ImportDirective","scope":7129,"sourceUnit":19817,"src":"25:71:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":6800,"nodeType":"ImportDirective","scope":7129,"sourceUnit":20032,"src":"97:86:16","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":6801,"nodeType":"ImportDirective","scope":7129,"sourceUnit":14651,"src":"184:54:16","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":6802,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"441:22:16","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":6803,"nodeType":"InheritanceSpecifier","src":"441:22:16"},{"arguments":null,"baseName":{"contractScope":null,"id":6804,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"465:24:16","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":6805,"nodeType":"InheritanceSpecifier","src":"465:24:16"}],"contractDependencies":[14650,19828,20031],"contractKind":"contract","documentation":"@title GenericScheme.\n@dev A scheme for proposing and executing calls to an arbitrary function\non a specific contract on behalf of the organization avatar.","fullyImplemented":true,"id":7128,"linearizedBaseContracts":[7128,19828,14650,20031],"name":"GenericScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":6817,"name":"NewCallProposal","nodeType":"EventDefinition","parameters":{"id":6816,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6807,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6817,"src":"527:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6806,"name":"address","nodeType":"ElementaryTypeName","src":"527:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6809,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6817,"src":"560:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6808,"name":"bytes32","nodeType":"ElementaryTypeName","src":"560:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6811,"indexed":false,"name":"_callData","nodeType":"VariableDeclaration","scope":6817,"src":"597:17:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6810,"name":"bytes","nodeType":"ElementaryTypeName","src":"597:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":6813,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":6817,"src":"624:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6812,"name":"uint256","nodeType":"ElementaryTypeName","src":"624:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6815,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":6817,"src":"648:24:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6814,"name":"string","nodeType":"ElementaryTypeName","src":"648:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"517:161:16"},"src":"496:183:16"},{"anonymous":false,"documentation":null,"id":6825,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":6824,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6819,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6825,"src":"717:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6818,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6821,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6825,"src":"750:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6820,"name":"bytes32","nodeType":"ElementaryTypeName","src":"750:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6823,"indexed":false,"name":"_genericCallReturnValue","nodeType":"VariableDeclaration","scope":6825,"src":"787:29:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":6822,"name":"bytes","nodeType":"ElementaryTypeName","src":"787:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"707:115:16"},"src":"685:138:16"},{"anonymous":false,"documentation":null,"id":6833,"name":"ProposalExecutedByVotingMachine","nodeType":"EventDefinition","parameters":{"id":6832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6827,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6833,"src":"876:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6826,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6829,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6833,"src":"909:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6828,"name":"bytes32","nodeType":"ElementaryTypeName","src":"909:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6831,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":6833,"src":"946:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6830,"name":"int256","nodeType":"ElementaryTypeName","src":"946:6:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"866:99:16"},"src":"829:137:16"},{"anonymous":false,"documentation":null,"id":6839,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":6838,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6835,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":6839,"src":"994:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6834,"name":"address","nodeType":"ElementaryTypeName","src":"994:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":6837,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6839,"src":"1019:27:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6836,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1019:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"993:54:16"},"src":"972:76:16"},{"canonicalName":"GenericScheme.CallProposal","id":6848,"members":[{"constant":false,"id":6841,"name":"callData","nodeType":"VariableDeclaration","scope":6848,"src":"1121:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"},"typeName":{"id":6840,"name":"bytes","nodeType":"ElementaryTypeName","src":"1121:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":6843,"name":"value","nodeType":"VariableDeclaration","scope":6848,"src":"1145:13:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6842,"name":"uint256","nodeType":"ElementaryTypeName","src":"1145:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":6845,"name":"exist","nodeType":"VariableDeclaration","scope":6848,"src":"1168:10:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6844,"name":"bool","nodeType":"ElementaryTypeName","src":"1168:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":6847,"name":"passed","nodeType":"VariableDeclaration","scope":6848,"src":"1188:11:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6846,"name":"bool","nodeType":"ElementaryTypeName","src":"1188:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"CallProposal","nodeType":"StructDefinition","scope":7128,"src":"1091:115:16","visibility":"public"},{"constant":false,"id":6852,"name":"organizationProposals","nodeType":"VariableDeclaration","scope":7128,"src":"1212:59:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal)"},"typeName":{"id":6851,"keyType":{"id":6849,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1220:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1212:30:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal)"},"valueType":{"contractScope":null,"id":6850,"name":"CallProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":6848,"src":"1229:12:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":6854,"name":"votingMachine","nodeType":"VariableDeclaration","scope":7128,"src":"1278:37:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":6853,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1278:16:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":6856,"name":"voteParams","nodeType":"VariableDeclaration","scope":7128,"src":"1321:25:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6855,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1321:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"public"},{"constant":false,"id":6858,"name":"contractToCall","nodeType":"VariableDeclaration","scope":7128,"src":"1352:29:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6857,"name":"address","nodeType":"ElementaryTypeName","src":"1352:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":6860,"name":"avatar","nodeType":"VariableDeclaration","scope":7128,"src":"1387:20:16","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6859,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1387:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"body":{"id":6905,"nodeType":"Block","src":"1868:282:16","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6876,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6872,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"1886:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1903:1:16","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":6873,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1896:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6875,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1896:9:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1886:19:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":6877,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1907:29:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":6871,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1878:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6878,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1878:59:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6879,"nodeType":"ExpressionStatement","src":"1878:59:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":6885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6881,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6862,"src":"1955:7:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":6883,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1973:1:16","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":6882,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1966:6:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":6884,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1966:9:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1955:20:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":6886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1977:23:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":6880,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1947:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1947:54:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6888,"nodeType":"ExpressionStatement","src":"1947:54:16"},{"expression":{"argumentTypes":null,"id":6891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6889,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"2011:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6890,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6862,"src":"2020:7:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2011:16:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":6892,"nodeType":"ExpressionStatement","src":"2011:16:16"},{"expression":{"argumentTypes":null,"id":6895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6893,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6854,"src":"2037:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6894,"name":"_votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6864,"src":"2053:14:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"2037:30:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":6896,"nodeType":"ExpressionStatement","src":"2037:30:16"},{"expression":{"argumentTypes":null,"id":6899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6897,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"2077:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6898,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6866,"src":"2090:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2077:24:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":6900,"nodeType":"ExpressionStatement","src":"2077:24:16"},{"expression":{"argumentTypes":null,"id":6903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":6901,"name":"contractToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6858,"src":"2111:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":6902,"name":"_contractToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6868,"src":"2128:15:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2111:32:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6904,"nodeType":"ExpressionStatement","src":"2111:32:16"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _votingMachine the voting machines address to\n@param _voteParams voting machine parameters.\n@param _contractToCall the target contract this scheme will call to","id":6906,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":6869,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6862,"name":"_avatar","nodeType":"VariableDeclaration","scope":6906,"src":"1727:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":6861,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1727:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":6864,"name":"_votingMachine","nodeType":"VariableDeclaration","scope":6906,"src":"1751:31:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":6863,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1751:16:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":6866,"name":"_voteParams","nodeType":"VariableDeclaration","scope":6906,"src":"1792:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6865,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1792:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6868,"name":"_contractToCall","nodeType":"VariableDeclaration","scope":6906,"src":"1821:23:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6867,"name":"address","nodeType":"ElementaryTypeName","src":"1821:7:16","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1717:133:16"},"returnParameters":{"id":6870,"nodeType":"ParameterList","parameters":[],"src":"1868:0:16"},"scope":7128,"src":"1698:452:16","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":6976,"nodeType":"Block","src":"2575:566:16","statements":[{"assignments":[6919],"declarations":[{"constant":false,"id":6919,"name":"proposal","nodeType":"VariableDeclaration","scope":6976,"src":"2585:29:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"},"typeName":{"contractScope":null,"id":6918,"name":"CallProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":6848,"src":"2585:12:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"}},"value":null,"visibility":"internal"}],"id":6923,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6920,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"2617:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":6922,"indexExpression":{"argumentTypes":null,"id":6921,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2639:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2617:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2585:66:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6925,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"2669:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"2669:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d7573742062652061206c6976652070726f706f73616c","id":6927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2685:25:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""},"value":"must be a live proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""}],"id":6924,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2661:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2661:50:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6929,"nodeType":"ExpressionStatement","src":"2661:50:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6931,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"2729:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"passed","nodeType":"MemberAccess","referencedDeclaration":6847,"src":"2729:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":6933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2748:5:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"2729:24:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e6e6f742065786563757465207477696365","id":6935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2755:22:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7b3876c942e94ad0cc3990c159a8c9b0b0869192d64665aba5348f604ca4a452","typeString":"literal_string \"cannot execute twice\""},"value":"cannot execute twice"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7b3876c942e94ad0cc3990c159a8c9b0b0869192d64665aba5348f604ca4a452","typeString":"literal_string \"cannot execute twice\""}],"id":6930,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2721:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2721:57:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6937,"nodeType":"ExpressionStatement","src":"2721:57:16"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":6940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":6938,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6910,"src":"2793:9:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":6939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2806:1:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2793:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":6964,"nodeType":"Block","src":"2896:130:16","statements":[{"expression":{"argumentTypes":null,"id":6955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2910:41:16","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6952,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"2917:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":6954,"indexExpression":{"argumentTypes":null,"id":6953,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2939:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2917:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6956,"nodeType":"ExpressionStatement","src":"2910:41:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6959,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"2994:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6958,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2986:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2986:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6961,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"3003:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6957,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6839,"src":"2970:15:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":6962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2970:45:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6963,"nodeType":"EmitStatement","src":"2965:50:16"}]},"id":6965,"nodeType":"IfStatement","src":"2789:237:16","trueBody":{"id":6951,"nodeType":"Block","src":"2809:81:16","statements":[{"expression":{"argumentTypes":null,"id":6945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6941,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6919,"src":"2823:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6943,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"passed","nodeType":"MemberAccess","referencedDeclaration":6847,"src":"2823:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":6944,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2841:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2823:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6946,"nodeType":"ExpressionStatement","src":"2823:22:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6948,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2867:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":6947,"name":"execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7065,"src":"2859:7:16","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":6949,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2859:20:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6950,"nodeType":"ExpressionStatement","src":"2859:20:16"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":6968,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3081:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":6967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3073:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":6969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3073:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":6970,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"3090:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":6971,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6910,"src":"3103:9:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":6966,"name":"ProposalExecutedByVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6833,"src":"3041:31:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":6972,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3041:72:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6973,"nodeType":"EmitStatement","src":"3036:77:16"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":6974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3130:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":6917,"id":6975,"nodeType":"Return","src":"3123:11:16"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _decision a parameter of the voting result, 1 yes and 2 is no.\n@return bool success","id":6977,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":6913,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6908,"src":"2544:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":6914,"modifierName":{"argumentTypes":null,"id":6912,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2526:17:16","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2526:30:16"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":6911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6908,"name":"_proposalId","nodeType":"VariableDeclaration","scope":6977,"src":"2470:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6907,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2470:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":6910,"name":"_decision","nodeType":"VariableDeclaration","scope":6977,"src":"2491:16:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":6909,"name":"int256","nodeType":"ElementaryTypeName","src":"2491:6:16","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2469:39:16"},"returnParameters":{"id":6917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6916,"name":"","nodeType":"VariableDeclaration","scope":6977,"src":"2569:4:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6915,"name":"bool","nodeType":"ElementaryTypeName","src":"2569:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2568:6:16"},"scope":7128,"src":"2445:696:16","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":7064,"nodeType":"Block","src":"3357:806:16","statements":[{"assignments":[6983],"declarations":[{"constant":false,"id":6983,"name":"proposal","nodeType":"VariableDeclaration","scope":7064,"src":"3367:29:16","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"},"typeName":{"contractScope":null,"id":6982,"name":"CallProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":6848,"src":"3367:12:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal"}},"value":null,"visibility":"internal"}],"id":6987,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":6984,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"3399:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":6986,"indexExpression":{"argumentTypes":null,"id":6985,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3421:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3399:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3367:66:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6989,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3451:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"3451:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d7573742062652061206c6976652070726f706f73616c","id":6991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3467:25:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""},"value":"must be a live proposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9b7618557e95fd78d0534fa428f3412b09c6634e010e6458db2e4c3c5738a8bb","typeString":"literal_string \"must be a live proposal\""}],"id":6988,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3443:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3443:50:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6993,"nodeType":"ExpressionStatement","src":"3443:50:16"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":6995,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3511:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":6996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"passed","nodeType":"MemberAccess","referencedDeclaration":6847,"src":"3511:15:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c206d7573742070617373656420627920766f74696e67206d616368696e65","id":6997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3528:40:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cf2bc59c228b9810b54d50be96c53055b6b67deedfc78cc18b233698a7dd1612","typeString":"literal_string \"proposal must passed by voting machine\""},"value":"proposal must passed by voting machine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cf2bc59c228b9810b54d50be96c53055b6b67deedfc78cc18b233698a7dd1612","typeString":"literal_string \"proposal must passed by voting machine\""}],"id":6994,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3503:7:16","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":6998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3503:66:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6999,"nodeType":"ExpressionStatement","src":"3503:66:16"},{"expression":{"argumentTypes":null,"id":7004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7000,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3579:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"3579:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":7003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3596:5:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"3579:22:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7005,"nodeType":"ExpressionStatement","src":"3579:22:16"},{"assignments":[7007],"declarations":[{"constant":false,"id":7007,"name":"genericCallReturnValue","nodeType":"VariableDeclaration","scope":7064,"src":"3611:35:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7006,"name":"bytes","nodeType":"ElementaryTypeName","src":"3611:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":7008,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3611:35:16"},{"assignments":[7010],"declarations":[{"constant":false,"id":7010,"name":"success","nodeType":"VariableDeclaration","scope":7064,"src":"3656:12:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7009,"name":"bool","nodeType":"ElementaryTypeName","src":"3656:4:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":7011,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"3656:12:16"},{"assignments":[7013],"declarations":[{"constant":false,"id":7013,"name":"controller","nodeType":"VariableDeclaration","scope":7064,"src":"3678:21:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":7012,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"3678:10:16","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":7019,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":7015,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3713:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"3713:12:16","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3713:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7014,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"3702:10:16","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":7018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3702:26:16","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"3678:50:16"},{"expression":{"argumentTypes":null,"id":7032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":7020,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7010,"src":"3739:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":7021,"name":"genericCallReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7007,"src":"3748:22:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":7022,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"3738:33:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7025,"name":"contractToCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6858,"src":"3805:14:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7026,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3821:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7027,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callData","nodeType":"MemberAccess","referencedDeclaration":6841,"src":"3821:17:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"}},{"argumentTypes":null,"id":7028,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3840:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7029,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"3848:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7030,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":6843,"src":"3848:14:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_storage","typeString":"bytes storage ref"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7023,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7013,"src":"3782:10:16","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":7024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":1475,"src":"3782:22:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_contract$_Avatar_$337_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,contract Avatar,uint256) external returns (bool,bytes memory)"}},"id":7031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3782:81:16","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"3738:125:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7033,"nodeType":"ExpressionStatement","src":"3738:125:16"},{"condition":{"argumentTypes":null,"id":7034,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7010,"src":"3877:7:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":7062,"nodeType":"Block","src":"4111:46:16","statements":[{"expression":{"argumentTypes":null,"id":7060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7056,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6983,"src":"4125:8:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage_ptr","typeString":"struct GenericScheme.CallProposal storage pointer"}},"id":7058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":6845,"src":"4125:14:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":7059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4142:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4125:21:16","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7061,"nodeType":"ExpressionStatement","src":"4125:21:16"}]},"id":7063,"nodeType":"IfStatement","src":"3873:284:16","trueBody":{"id":7055,"nodeType":"Block","src":"3886:219:16","statements":[{"expression":{"argumentTypes":null,"id":7038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"3900:41:16","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7035,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"3907:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":7037,"indexExpression":{"argumentTypes":null,"id":7036,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3929:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3907:34:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7039,"nodeType":"ExpressionStatement","src":"3900:41:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7042,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"3984:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3976:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3976:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7044,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"3993:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":7040,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6839,"src":"3960:15:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":7045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3960:45:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7046,"nodeType":"EmitStatement","src":"3955:50:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7049,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"4049:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4041:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4041:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7051,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6979,"src":"4058:11:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7052,"name":"genericCallReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7007,"src":"4071:22:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7047,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6825,"src":"4024:16:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory)"}},"id":7053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4024:70:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7054,"nodeType":"EmitStatement","src":"4019:75:16"}]}}]},"documentation":"@dev execution of proposals after it has been decided by the voting machine\n@param _proposalId the ID of the voting in the voting machine","id":7065,"implemented":true,"kind":"function","modifiers":[],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":6980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6979,"name":"_proposalId","nodeType":"VariableDeclaration","scope":7065,"src":"3329:19:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":6978,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3329:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3328:21:16"},"returnParameters":{"id":6981,"nodeType":"ParameterList","parameters":[],"src":"3357:0:16"},"scope":7128,"src":"3312:851:16","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7126,"nodeType":"Block","src":"4640:560:16","statements":[{"assignments":[7077],"declarations":[{"constant":false,"id":7077,"name":"proposalId","nodeType":"VariableDeclaration","scope":7126,"src":"4650:18:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7076,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4650:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":7088,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":7080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4693:1:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"id":7081,"name":"voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6856,"src":"4696:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7082,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4708:3:16","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4708:10:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7085,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"4728:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4720:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4720:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":7078,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6854,"src":"4671:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":7079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4671:21:16","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":7087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4671:65:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4650:86:16"},{"expression":{"argumentTypes":null,"id":7098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7089,"name":"organizationProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6852,"src":"4747:21:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_CallProposal_$6848_storage_$","typeString":"mapping(bytes32 => struct GenericScheme.CallProposal storage ref)"}},"id":7091,"indexExpression":{"argumentTypes":null,"id":7090,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"4769:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4747:33:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7093,"name":"_callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"4820:9:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":7094,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"4850:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"74727565","id":7095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4877:4:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"hexValue":"66616c7365","id":7096,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4903:5:16","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":7092,"name":"CallProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6848,"src":"4783:12:16","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CallProposal_$6848_storage_ptr_$","typeString":"type(struct GenericScheme.CallProposal storage pointer)"}},"id":7097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["callData","value","exist","passed"],"nodeType":"FunctionCall","src":"4783:136:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_memory","typeString":"struct GenericScheme.CallProposal memory"}},"src":"4747:172:16","typeDescriptions":{"typeIdentifier":"t_struct$_CallProposal_$6848_storage","typeString":"struct GenericScheme.CallProposal storage ref"}},"id":7099,"nodeType":"ExpressionStatement","src":"4747:172:16"},{"expression":{"argumentTypes":null,"id":7112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7100,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"4929:13:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":7105,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7102,"name":"votingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6854,"src":"4951:13:16","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":7101,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4943:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4943:22:16","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4929:37:16","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":7106,"indexExpression":{"argumentTypes":null,"id":7104,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"4967:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4929:49:16","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7108,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5020:5:16","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7109,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5020:12:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7110,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"5053:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7107,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"4981:12:16","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":7111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"4981:89:16","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"4929:141:16","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":7113,"nodeType":"ExpressionStatement","src":"4929:141:16"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7116,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6860,"src":"5109:6:16","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5101:7:16","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5101:15:16","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7118,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"5118:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7119,"name":"_callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7067,"src":"5130:9:16","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":7120,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7069,"src":"5141:6:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7121,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7071,"src":"5149:16:16","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":7114,"name":"NewCallProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6817,"src":"5085:15:16","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,bytes memory,uint256,string memory)"}},"id":7122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5085:81:16","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7123,"nodeType":"EmitStatement","src":"5080:86:16"},{"expression":{"argumentTypes":null,"id":7124,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7077,"src":"5183:10:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7075,"id":7125,"nodeType":"Return","src":"5176:17:16"}]},"documentation":"@dev propose to call on behalf of the _avatar\n The function trigger NewCallProposal event\n@param _callData - The abi encode data for the call\n@param _value value(ETH) to transfer with the call\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":7127,"implemented":true,"kind":"function","modifiers":[],"name":"proposeCall","nodeType":"FunctionDefinition","parameters":{"id":7072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7067,"name":"_callData","nodeType":"VariableDeclaration","scope":7127,"src":"4532:22:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":7066,"name":"bytes","nodeType":"ElementaryTypeName","src":"4532:5:16","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"},{"constant":false,"id":7069,"name":"_value","nodeType":"VariableDeclaration","scope":7127,"src":"4556:14:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7068,"name":"uint256","nodeType":"ElementaryTypeName","src":"4556:7:16","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7071,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":7127,"src":"4572:30:16","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":7070,"name":"string","nodeType":"ElementaryTypeName","src":"4572:6:16","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4531:72:16"},"returnParameters":{"id":7075,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7074,"name":"","nodeType":"VariableDeclaration","scope":7127,"src":"4627:7:16","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4627:7:16","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4626:9:16"},"scope":7128,"src":"4511:689:16","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":7129,"src":"415:4788:16"}],"src":"0:5204:16"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.119Z","devdoc":{"details":"A scheme for proposing and executing calls to an arbitrary function on a specific contract on behalf of the organization avatar.","methods":{"execute(bytes32)":{"details":"execution of proposals after it has been decided by the voting machine","params":{"_proposalId":"the ID of the voting in the voting machine"}},"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_decision":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"},"return":"bool success"},"initialize(address,address,bytes32,address)":{"details":"initialize","params":{"_avatar":"the avatar to mint reputation from","_contractToCall":"the target contract this scheme will call to","_voteParams":"voting machine parameters.","_votingMachine":"the voting machines address to"}},"proposeCall(bytes,uint256,string)":{"details":"propose to call on behalf of the _avatar The function trigger NewCallProposal event","params":{"_callData":"- The abi encode data for the call","_descriptionHash":"proposal description hash","_value":"value(ETH) to transfer with the call"},"return":"an id which represents the proposal"}},"title":"GenericScheme."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocol.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocol.json new file mode 100644 index 00000000..cd4cf3db --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocol.json @@ -0,0 +1 @@ +{"contractName":"GenesisProtocol","abi":[{"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"}],"name":"CancelProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"}],"name":"CancelVoting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_confidenceThreshold","type":"uint256"}],"name":"ConfidenceLevelChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_decision","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalReputation","type":"uint256"}],"name":"ExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ExpirationCallBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"enum GenesisProtocolLogic.ExecutionState","name":"_executionState","type":"uint8"}],"name":"GPExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemDaoBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemReputation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"enum GenesisProtocolLogic.ProposalState","name":"_proposalState","type":"uint8"}],"name":"StateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"VoteProposal","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_HASH_EIP712","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NUM_OF_CHOICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"YES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"averagesDownstakesOfBoosted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"calcExecuteCallBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"executeBoosted","outputs":[{"internalType":"uint256","name":"expirationCallBounty","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256[11]","name":"_params","type":"uint256[11]"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"orgBoostedProposalsCnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizations","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"uint256","name":"queuedVoteRequiredPercentage","type":"uint256"},{"internalType":"uint256","name":"queuedVotePeriodLimit","type":"uint256"},{"internalType":"uint256","name":"boostedVotePeriodLimit","type":"uint256"},{"internalType":"uint256","name":"preBoostedVotePeriodLimit","type":"uint256"},{"internalType":"uint256","name":"thresholdConst","type":"uint256"},{"internalType":"uint256","name":"limitExponentValue","type":"uint256"},{"internalType":"uint256","name":"quietEndingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposingRepReward","type":"uint256"},{"internalType":"uint256","name":"votersReputationLossRatio","type":"uint256"},{"internalType":"uint256","name":"minimumDaoBounty","type":"uint256"},{"internalType":"uint256","name":"daoBountyConst","type":"uint256"},{"internalType":"uint256","name":"activationTime","type":"uint256"},{"internalType":"address","name":"voteOnBehalf","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"bytes32","name":"organizationId","type":"bytes32"},{"internalType":"address","name":"callbacks","type":"address"},{"internalType":"enum GenesisProtocolLogic.ProposalState","name":"state","type":"uint8"},{"internalType":"uint256","name":"winningVote","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"currentBoostedVotePeriodLimit","type":"uint256"},{"internalType":"bytes32","name":"paramsHash","type":"bytes32"},{"internalType":"uint256","name":"daoBountyRemain","type":"uint256"},{"internalType":"uint256","name":"daoBounty","type":"uint256"},{"internalType":"uint256","name":"totalStakes","type":"uint256"},{"internalType":"uint256","name":"confidenceThreshold","type":"uint256"},{"internalType":"uint256","name":"secondsFromTimeOutTillExecuteBoosted","type":"uint256"},{"internalType":"bool","name":"daoRedeemItsWinnings","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalsCnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256[3]","name":"rewards","type":"uint256[3]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeemDaoBounty","outputs":[{"internalType":"uint256","name":"redeemedAmount","type":"uint256"},{"internalType":"uint256","name":"potentialAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[11]","name":"_params","type":"uint256[11]"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"shouldBoost","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"stakesNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"bytes32","name":"_organizationId","type":"bytes32"}],"name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"stake","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"uint256","name":"_signatureType","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"stakeWithSignature","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"cancelVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"getNumberOfChoices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalTimes","outputs":[{"internalType":"uint256[3]","name":"times","type":"uint256[3]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_voter","type":"address"}],"name":"voteInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_choice","type":"uint256"}],"name":"voteStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"isVotable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"proposalStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getProposalOrganization","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_staker","type":"address"}],"name":"getStaker","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"}],"name":"voteStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"winningVote","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"state","outputs":[{"internalType":"enum GenesisProtocolLogic.ProposalState","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isAbstainAllow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getAllowedRangeOfChoices","outputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"score","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"CancelVoting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_confidenceThreshold\",\"type\":\"uint256\"}],\"name\":\"ConfidenceLevelChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_decision\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_totalReputation\",\"type\":\"uint256\"}],\"name\":\"ExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ExpirationCallBounty\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum GenesisProtocolLogic.ExecutionState\",\"name\":\"_executionState\",\"type\":\"uint8\"}],\"name\":\"GPExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemDaoBounty\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemReputation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Stake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum GenesisProtocolLogic.ProposalState\",\"name\":\"_proposalState\",\"type\":\"uint8\"}],\"name\":\"StateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"VoteProposal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DELEGATION_HASH_EIP712\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NUM_OF_CHOICES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"YES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"averagesDownstakesOfBoosted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"calcExecuteCallBounty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"cancelVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"executeBoosted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"expirationCallBounty\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllowedRangeOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256[11]\",\"name\":\"_params\",\"type\":\"uint256[11]\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalOrganization\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getProposalTimes\",\"outputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"times\",\"type\":\"uint256[3]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"}],\"name\":\"getStaker\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAbstainAllow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"isVotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orgBoostedProposalsCnt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"queuedVoteRequiredPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"queuedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"boostedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preBoostedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thresholdConst\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitExponentValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quietEndingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposingRepReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votersReputationLossRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumDaoBounty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"daoBountyConst\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"activationTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voteOnBehalf\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"proposalStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"organizationId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbacks\",\"type\":\"address\"},{\"internalType\":\"enum GenesisProtocolLogic.ProposalState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"winningVote\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentBoostedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"daoBountyRemain\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"daoBounty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalStakes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confidenceThreshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsFromTimeOutTillExecuteBoosted\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"daoRedeemItsWinnings\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalsCnt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"rewards\",\"type\":\"uint256[3]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeemDaoBounty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"redeemedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"potentialAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"score\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[11]\",\"name\":\"_params\",\"type\":\"uint256[11]\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"shouldBoost\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_signatureType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"stakeWithSignature\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"stakesNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stakingToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"state\",\"outputs\":[{\"internalType\":\"enum GenesisProtocolLogic.ProposalState\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_organizationId\",\"type\":\"bytes32\"}],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"voteInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"}],\"name\":\"voteStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_choice\",\"type\":\"uint256\"}],\"name\":\"voteStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"winningVote\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"calcExecuteCallBounty(bytes32)\":{\"details\":\"calcExecuteCallBounty calculate the execute boosted call bounty\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 executeCallBounty\"},\"cancelVote(bytes32)\":{\"details\":\"Cancel the vote of the msg.sender. cancel vote is not allow in genesisProtocol so this function doing nothing. This function is here in order to comply to the IntVoteInterface .\"},\"constructor\":{\"details\":\"Constructor\"},\"execute(bytes32)\":{\"details\":\"execute check if the proposal has been decided, and if so, execute the proposal\",\"params\":{\"_proposalId\":\"the id of the proposal\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"executeBoosted(bytes32)\":{\"details\":\"executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function. P = t/150, where t is the number of seconds passed since the the proposal's timeout. P is capped by 10%.\",\"params\":{\"_proposalId\":\"the id of the proposal\"},\"return\":\"uint256 expirationCallBounty the bounty amount for the expiration call\"},\"getAllowedRangeOfChoices()\":{\"details\":\"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\",\"return\":\"min - minimum number of choices max - maximum number of choices\"},\"getNumberOfChoices(bytes32)\":{\"details\":\"getNumberOfChoices returns the number of choices possible in this proposal\",\"return\":\"uint256 that contains number of choices\"},\"getParametersHash(uint256[11],address)\":{\"details\":\"hashParameters returns a hash of the given parameters\"},\"getProposalOrganization(bytes32)\":{\"details\":\"getProposalOrganization return the organizationId for a given proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"bytes32 organization identifier\"},\"getProposalTimes(bytes32)\":{\"details\":\"getProposalTimes returns proposals times variables.\",\"params\":{\"_proposalId\":\"id of the proposal\"},\"return\":\"proposals times array\"},\"getStaker(bytes32,address)\":{\"details\":\"getStaker return the vote and stake amount for a given proposal and staker\",\"params\":{\"_proposalId\":\"the ID of the proposal\",\"_staker\":\"staker address\"},\"return\":\"uint256 voteuint256 amount\"},\"isAbstainAllow()\":{\"details\":\"isAbstainAllow returns if the voting machine allow abstain (0)\",\"return\":\"bool true or false\"},\"isVotable(bytes32)\":{\"details\":\"isVotable check if the proposal is votable\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"bool true or false\"},\"proposalStatus(bytes32)\":{\"details\":\"proposalStatus return the total votes and stakes for a given proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 preBoostedVotes YESuint256 preBoostedVotes NOuint256 total stakes YESuint256 total stakes NO\"},\"propose(uint256,bytes32,address,address)\":{\"details\":\"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.\",\"params\":{\"_organization\":\"address\",\"_paramsHash\":\"parameters hash\",\"_proposer\":\"address\"}},\"redeem(bytes32,address)\":{\"details\":\"redeem a reward for a successful stake, vote or proposing. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.\",\"params\":{\"_beneficiary\":\"- the beneficiary address\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"rewards - [0] stakerTokenReward [1] voterReputationReward [2] proposerReputationReward\"},\"redeemDaoBounty(bytes32,address)\":{\"details\":\"redeemDaoBounty a reward for a successful stake. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.\",\"params\":{\"_beneficiary\":\"- the beneficiary address\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"redeemedAmount - redeem token amountpotentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )\"},\"score(bytes32)\":{\"details\":\"score return the proposal score\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 proposal score.\"},\"setParameters(uint256[11],address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\",\"params\":{\"_params\":\"a parameters array _params[0] - _queuedVoteRequiredPercentage, _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode. _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode. _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation state (stable) before boosted. _params[4] -_thresholdConst _params[5] -_quietEndingPeriod _params[6] -_proposingRepReward _params[7] -_votersReputationLossRatio _params[8] -_minimumDaoBounty _params[9] -_daoBountyConst _params[10] -_activationTime\",\"_voteOnBehalf\":\"- authorized to vote on behalf of others.\"}},\"shouldBoost(bytes32)\":{\"details\":\"shouldBoost check if a proposal should be shifted to boosted phase.\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"bool true or false.\"},\"stake(bytes32,uint256,uint256)\":{\"details\":\"staking function\",\"params\":{\"_amount\":\"the betting amount\",\"_proposalId\":\"id of the proposal\",\"_vote\":\"NO(2) or YES(1).\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"stakeWithSignature(bytes32,uint256,uint256,uint256,uint256,bytes)\":{\"details\":\"stakeWithSignature function\",\"params\":{\"_amount\":\"the betting amount\",\"_nonce\":\"nonce value ,it is part of the signature to ensure that a signature can be received only once.\",\"_proposalId\":\"id of the proposal\",\"_signature\":\"- signed data by the staker\",\"_signatureType\":\"signature type 1 - for web3.eth.sign 2 - for eth_signTypedData according to EIP #712.\",\"_vote\":\"NO(2) or YES(1).\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"state(bytes32)\":{\"details\":\"voteStake return the state for a given proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"ProposalState proposal state\"},\"threshold(bytes32,bytes32)\":{\"details\":\"threshold return the organization's score threshold which required by a proposal to shift to boosted state. This threshold is dynamically set and it depend on the number of boosted proposal.\",\"params\":{\"_organizationId\":\"the organization identifier\",\"_paramsHash\":\"the organization parameters hash\"},\"return\":\"uint256 organization's score threshold as real number.\"},\"vote(bytes32,uint256,uint256,address)\":{\"details\":\"voting function\",\"params\":{\"_amount\":\"the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\",\"_proposalId\":\"id of the proposal\",\"_vote\":\"NO(2) or YES(1).\",\"_voter\":\"voter address\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"voteInfo(bytes32,address)\":{\"details\":\"voteInfo returns the vote and the amount of reputation of the user committed to this proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\",\"_voter\":\"the address of the voter\"},\"return\":\"uint256 vote - the voters vote uint256 reputation - amount of reputation committed by _voter to _proposalId\"},\"voteStake(bytes32,uint256)\":{\"details\":\"voteStake return the amount stakes for a given proposal and vote\",\"params\":{\"_proposalId\":\"the ID of the proposal\",\"_vote\":\"vote number\"},\"return\":\"uint256 stake amount\"},\"voteStatus(bytes32,uint256)\":{\"details\":\"voteStatus returns the reputation voted for a proposal for a specific voting choice.\",\"params\":{\"_choice\":\"the index in the\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"voted reputation for the given choice\"},\"winningVote(bytes32)\":{\"details\":\"voteStake return the winningVote for a given proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 winningVote\"}},\"title\":\"GenesisProtocol implementation -an organization's voting machine scheme.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":\"GenesisProtocol\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"221:9987:57:-;;;775:141;8:9:-1;5:2;;;30:1;27;20:12;5:2;775:141:57;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;775:141:57;;6720:39:58;6146:42;6720:37;775:141:57;6720:37:58;;;;;:39;;:::i;:::-;6716:169;;;6775:12;:40;;-1:-1:-1;;;;;;6775:40:58;6146:42;6775:40;;;6716:169;;;6846:12;:28;;-1:-1:-1;;;;;;6846:28:58;-1:-1:-1;;;;;6846:28:58;;;;;6716:169;6294:597;775:141:57;221:9987;;557:797:71;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o;221:9987:57:-;;;;;;;","deployedSourceMap":"221:9987:57:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;221:9987:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5369:46:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5369:46:58;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5369:46:58;;;;;;;;;;;;;;21968:774;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;21968:774:58;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;21968:774:58;;-1:-1:-1;;;21968:774:58;-1:-1:-1;;;;;21968:774:58;;-1:-1:-1;21968:774:58;:::i;:::-;;;;;;;;;;;;;;;;5934:30;;;:::i;6067:211:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6067:211:57;;;;;;-1:-1:-1;;;;;6067:211:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8225:215;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8225:215:57;;;;;;-1:-1:-1;;;;;8225:215:57;;:::i;7820:148::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7820:148:57;;:::i;6007:27:58:-;;;:::i;21502:384::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21502:384:58;;;;;;;:::i;1188:162:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1188:162:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;442:220;;;:::i;5461:43:58:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5461:43:58;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5461:43:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5461:43:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5461:43:58;-1:-1:-1;;5461:43:58;3843:554:57;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;3843:554:57;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3843:554:57;;:::i;8971:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8971:131:57;;:::i;20310:350:58:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20310:350:58;;:::i;1960:1510:57:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1960:1510:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1960:1510:57;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1960:1510:57;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1960:1510:57;;-1:-1:-1;1960:1510:57;-1:-1:-1;1960:1510:57;:::i;9826:117::-;;;:::i;9531:83::-;;;:::i;9279:125::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9279:125:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18724:1396:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18724:1396:58;;;;;;-1:-1:-1;;;;;18724:1396:58;;:::i;8659:146:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8659:146:57;;;;;;;:::i;6069:26:58:-;;;:::i;:::-;;;;-1:-1:-1;;;;;6069:26:58;;;;;;;;;;;;;;7264:361:57;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7264:361:57;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20846:230:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20846:230:58;;:::i;7482:1952::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7482:1952:58;;;;;;;;-1:-1:-1;;;;;7482:1952:58;;;;;;;;;;;;:::i;11797:1829::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;11797:1829:58;;;;;;:::i;4613:123:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4613:123:57;;:::i;:::-;;5286:106;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5286:106:57;;:::i;669:44::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;669:44:57;-1:-1:-1;;;;;669:44:57;;:::i;5970:31:58:-;;;:::i;6533:150:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6533:150:57;;;;;;;:::i;5675:60:58:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5675:60:58;;:::i;5794:86::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5794:86:58;;:::i;9925:927::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9925:927:58;;:::i;6839:115:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6839:115:57;;:::i;5564:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5564:143:57;;:::i;:::-;;;;;;;;;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;5564:143:57;;;;;;;;;;;;;;;;14185:4042:58;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14185:4042:58;;;;;;-1:-1:-1;;;;;14185:4042:58;;:::i;10097:109:57:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10097:109:57;;:::i;5000:127::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5000:127:57;;:::i;5573:52:58:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5573:52:58;;:::i;5369:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5369:46:58;;:::o;21968:774::-;22154:7;22391;22154;22391:10;;;;22419:7;22427:1;22419:10;;;;22447:7;22455:1;22447:10;;;;22475:7;22483:1;22475:10;;;;22503:7;22511:1;22503:10;;;;22531:7;22539:1;22531:10;;;;22559:7;22567:1;22559:10;;;;22587:7;22595:1;22587:10;;;;22615:7;22623:1;22615:10;;;;22643:7;22651:1;22643:10;;;;22671:7;22679:2;22671:11;;;;22357:326;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;22357:326:58;;;22334:363;;;;;;22711:13;22304:430;;;;;;;;;;;-1:-1:-1;;;;;22304:430:58;-1:-1:-1;;;;;22304:430:58;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;22304:430:58;;;22281:454;;;;;;22274:461;;21968:774;;;;;:::o;5934:30::-;5963:1;5934:30;:::o;6067:211:57:-;6144:4;6150;6166:18;;:::i;:::-;-1:-1:-1;;;6187:22:57;;;;:9;:22;;;;;;;;-1:-1:-1;;;;;6187:37:57;;;;;;:29;;;;:37;;;;;;6166:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6067:211::o;8225:215::-;8304:7;8340:22;;;:9;:22;;;;;;;;-1:-1:-1;;;;;8340:39:57;;;;;;:30;;;;:39;;;;:44;;8386:46;;;8340:44;;8225:215::o;7820:148::-;7896:7;7923:22;;;:9;:22;;;;;:37;;7820:148::o;6007:27:58:-;;;;:::o;21502:384::-;21587:7;21622:39;;;:22;:39;;;;;;;;;21699:23;;;;;;;;;21745:25;;;;21737:33;;21733:97;;;21794:6;:25;;;21786:33;;21733:97;21847:21;;;;:32;;21873:5;21847:32;:25;:32;:::i;:::-;21840:39;21502:384;-1:-1:-1;;;;;21502:384:58:o;1188:162:57:-;1273:4;1296:47;1303:11;1316:5;1323:7;1332:10;1296:6;:47::i;:::-;1289:54;1188:162;-1:-1:-1;;;;1188:162:57:o;442:220::-;505:156;;;;;;;;;;;;-1:-1:-1;;;505:156:57;;;;-1:-1:-1;;;505:156:57;;;;-1:-1:-1;;;505:156:57;;;;-1:-1:-1;;;505:156:57;;;;;;22:32:-1;26:21;;;22:32;6:49;;505:156:57;;;;;;;495:167;;;;;442:220;:::o;5461:43:58:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5461:43:58;;;;;-1:-1:-1;;;5461:43:58;;;;;;;;;;;;;;;:::o;3843:554:57:-;3976:4;3951:11;7131:23:58;7142:11;7131:10;:23::i;:::-;7123:32;;;;;;3992:25:57;4020:22;;;:9;:22;;;;;4052:24;;:::i;:::-;-1:-1:-1;4090:19:57;;;;;4079:10;:31;;;;;;;;;;;4052:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4052:58:57;;;;;;;4147:33;4143:183;;4218:6;:19;;;-1:-1:-1;;;;;4204:33:57;:10;-1:-1:-1;;;;;4204:33:57;;4196:42;;;;;;-1:-1:-1;4260:6:57;4143:183;;;-1:-1:-1;4305:10:57;4143:183;4342:48;4355:11;4368:5;4375;4382:7;4342:12;:48::i;:::-;4335:55;3843:554;-1:-1:-1;;;;;;;;;3843:554:57:o;8971:131::-;9035:7;9061:22;;;:9;:22;;;;;:34;;;;8971:131::o;20310:350:58:-;20382:7;20498:22;;;:9;:22;;;;;:59;;;20425:4;;20382:7;;20468:90;;20425:4;;20468:90;:29;:90;:::i;:::-;20593:22;;;;:9;:22;;;;;;;;:34;;;:29;;;;:34;;;;;20439:119;;-1:-1:-1;20575:78:58;;20650:2;20633:19;;;20575:53;;20439:119;;20575:53;:17;:53;:::i;:::-;:57;:78;:57;:78;:::i;1960:1510:57:-;2199:4;2270:24;2308:14;2326:1;2308:19;2304:757;;;-1:-1:-1;505:156:57;;;;;;;;;;;;-1:-1:-1;;;505:156:57;;;;-1:-1:-1;;;505:156:57;;;;-1:-1:-1;;;505:156:57;;;;-1:-1:-1;;;505:156:57;;;;;;22:32:-1;26:21;;;22:32;6:49;;505:156:57;;;;;495:167;;;;;;2536:4;2486:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2486:189:57;;;;;2451:246;;;;;;2389:326;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2389:326:57;;;;;;;2362:367;;;;;2304:757;;;2814:189;;;2864:4;2814:189;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2814:189:57;;;;;;;2779:246;;;;;:271;;:269;:271::i;:::-;2760:290;;2304:757;3070:14;3087:36;3112:10;;3087:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3087:16:57;;:36;-1:-1:-1;;3087:36:57;:24;:36;;-1:-1:-1;3087:36:57:i;:::-;3070:53;-1:-1:-1;;;;;;3246:20:57;;3238:59;;;;;-1:-1:-1;;;3238:59:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3315:19:57;;;;;;:11;:19;;;;;;:29;;3307:38;;;;;;-1:-1:-1;;;;;3377:19:57;;;;;;:11;:19;;;;;;:26;;3401:1;3377:26;:23;:26;:::i;:::-;-1:-1:-1;;;;;3355:19:57;;;;;;:11;:19;;;;;:48;3420:43;3427:11;3440:5;3447:7;3367:6;3420;:43::i;:::-;3413:50;1960:1510;-1:-1:-1;;;;;;;;;;1960:1510:57:o;9826:117::-;6000:1:58;5963;9826:117:57;;:::o;9531:83::-;9579:4;9531:83;;:::o;9279:125::-;9337:13;9369:22;;;:9;:22;;;;;;;;:28;;-1:-1:-1;;;9369:28:57;;;;;9279:125::o;18724:1396:58:-;18815:22;18902;;;:9;:22;;;;;18815;;18960;18942:14;;;;-1:-1:-1;;;18942:14:58;;;;:40;;;;;;;;;18934:49;;;;;;19038:20;;;;;18993:26;19022:37;;;:15;;;:37;;;;;;;;;-1:-1:-1;;;;;19093:30:58;;;;:16;;;:30;;;;;;19151:20;;;;19022:37;;19093:30;19151:24;;;;19150:78;;-1:-1:-1;19207:20:58;;;;19192:11;;:35;19150:78;:122;;;;;6000:1;19244:8;:20;;;:27;19150:122;:162;;;;-1:-1:-1;19288:23:58;;;19150:162;19133:318;;;19418:18;19398:8;:18;;;19375:6;:20;;;:41;19374:62;;;;;;19356:80;;19133:318;19465:20;;;;;19464:171;;-1:-1:-1;19534:18:58;;;;19589:12;;19502:113;;;-1:-1:-1;;;19502:113:58;;-1:-1:-1;;;;;19589:12:58;;;19502:113;;;;;;;;;;;;19619:15;;19534:18;;;;;19502:86;;:113;;;;;;;;;;;;;;;19534:18;19502:113;;;5:2:-1;;;;30:1;27;20:12;5:2;19502:113:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19502:113:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19502:113:58;:132;;19464:171;19460:654;;;19674:1;19651:20;;;:24;19716;;;;:45;;19745:15;19716:45;:28;:45;:::i;:::-;19689:24;;;;:72;;;;19828:18;;;;19882:12;;19796:143;;;-1:-1:-1;;;19796:143:58;;-1:-1:-1;;;;;19882:12:58;;;19796:143;;;;;;;;;;;;;;;;;;;;;;;;;19828:18;;;;;19796:85;;:143;;;;;;;;;;;;;;19828:18;;19796:143;;;5:2:-1;;;;30:1;27;20:12;5:2;19796:143:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19796:143:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19796:143:58;19775:165;;;;;;20048:23;;20034:38;;;;:13;:38;;;;;;;;;;20005:98;;;;;;;19971:15;;-1:-1:-1;19971:15:58;;-1:-1:-1;;;;;20005:98:58;;;;20034:38;;;20021:11;;20005:98;;;;;;;;;;;19460:654;18724:1396;;;;;;;;:::o;8659:146:57:-;8736:7;8762:22;;;:9;:22;;;;;;;;:36;;;:29;;;;:36;;;;;;8659:146::o;6069:26:58:-;;;-1:-1:-1;;;;;6069:26:58;;:::o;7264:361:57:-;7331:7;7402:22;;;:9;:22;;;;;;;;:43;;;:38;;;:43;;;;;;5963:1:58;7463:42:57;;;;;;;7523:34;;;:29;;;;:34;;;;;;;7575:33;;;;;;7402:43;;7463:42;;7523:34;7264:361::o;20846:230:58:-;20908:4;20924:24;;:::i;:::-;20951:22;;;;:9;:22;;;;;;;;;20924:49;;;;;;;;;;;;;;;-1:-1:-1;;;;;20924:49:58;;;;;;;;;;;;;;-1:-1:-1;;;20924:49:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20924:49:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;20924:49:58;;;-1:-1:-1;;20924:49:58;;;;;;;;;;;;;;;21023:19;;;;21044:23;;20924:49;;-1:-1:-1;21013:55:58;;:9;:55::i;:::-;20991:19;20998:11;20991:6;:19::i;:::-;:77;;20846:230;-1:-1:-1;;;20846:230:58:o;7482:1952::-;7604:7;7693:23;;;;;;;;;;:38;;;7687:3;:44;7679:71;;;;;-1:-1:-1;;;7679:71:58;;;;;;;;;;;;-1:-1:-1;;;7679:71:58;;;;;;;;;;;;;;;7806:10;:23;;;;;;;;;;:52;7862:2;-1:-1:-1;7806:58:58;7798:67;;;;;;7962:12;;7939:36;;;7956:4;7939:36;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;7939:36:58;;;;;;;7929:47;;;;;;8001:19;;8018:1;8001:19;:16;:19;:::i;:::-;7986:12;:34;8057:24;;:::i;:::-;8112:10;8091:18;;;;:31;;;8168:43;;;;;;;;;;;-1:-1:-1;;8168:43:58;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;8168:43:58;;;;;;8158:54;;;;;;8132:80;;8240:20;8223:14;;;:37;;;8324:14;;;;8344:3;8324:23;;-1:-1:-1;8414:23:58;;;;;;;;;:46;;;;;8373:38;;;:87;-1:-1:-1;;;;;8470:29:58;;;:17;;;:29;8509:20;;;:25;8544:19;;;:33;;;8605:23;;8591:38;;;;;;;;8587:292;;-1:-1:-1;;;;;8663:27:58;;8659:210;;8724:23;;8710:38;;;;:13;:38;;;;;:51;;-1:-1:-1;;;;;;8710:51:58;8751:10;8710:51;;;8659:210;;;8814:23;;8800:38;;;;:13;:38;;;;;:54;;-1:-1:-1;;;;;;8800:54:58;-1:-1:-1;;;;;8800:54:58;;;;;8659:210;9013:23;;8914:17;8985:52;;;:27;:52;;;;;;;;;8942:23;;;;;;;;;:38;;;:105;;9043:3;;8942:96;;;:42;:96;:::i;:105::-;9098:10;:23;;;;;;;;;;:40;;;8914:133;;-1:-1:-1;9084:55:58;;8914:133;;9084:55;:13;:55;:::i;:::-;9057:24;;;:82;9149:21;;;;:9;:21;;;;;;;;;:32;;;;;;;;;;;;;-1:-1:-1;;;;;;9149:32:58;-1:-1:-1;;;;;9149:32:58;;;;;;;;;;;;;;9057:24;;9149:21;;:32;;-1:-1:-1;;;;9149:32:58;-1:-1:-1;;;9149:32:58;;;;;;;;;;;;;-1:-1:-1;9149:32:58;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9149:32:58;-1:-1:-1;;;;;9149:32:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;9149:32:58;;;;;;;;;;;;-1:-1:-1;;9149:32:58;;;;;;;;;;9226:24;;;;-1:-1:-1;9191:21:58;;;-1:-1:-1;9191:21:58;;;;;;;;5963:1;9191:32;;;:28;;;;:32;;;;;:59;;;;9335:23;;9321:38;;:13;:38;;;;;;;9297:103;;;;;-1:-1:-1;;;;;9297:103:58;;;;;;;;;;;;;;;;;;9321:38;;;9191:21;;9297:103;;;;;;;;;;-1:-1:-1;9417:10:58;;7482:1952;-1:-1:-1;;;;;;7482:1952:58:o;11797:1829::-;11963:7;12008:3;11994:10;;:17;;;;:37;;-1:-1:-1;12029:2:58;12015:10;;:16;;11994:37;11986:91;;;;-1:-1:-1;;;11986:91:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12109:5;12095:10;;;;:19;;;;:40;;-1:-1:-1;12131:4:58;12118:10;;;;:17;12095:40;12087:83;;;;;-1:-1:-1;;;12087:83:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;12202:3;12188:10;;;;:17;;12180:62;;;;;-1:-1:-1;;;12180:62:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12274:10;;;;12260;;;;:24;;12252:80;;;;-1:-1:-1;;;12252:80:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12350:10;;;;12342:57;;;;;-1:-1:-1;;;12342:57:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;12417:10;;;;12409:55;;;;;-1:-1:-1;;;12409:55:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;12475:18;12496:41;12514:7;12496:41;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;12523:13:58;;-1:-1:-1;12496:17:58;;-1:-1:-1;12496:41:58:i;:::-;12475:62;-1:-1:-1;12641:3:58;12693:1;12721:4;12704:216;12731:5;12727:1;:9;12704:216;;;12766:10;;;;:14;-1:-1:-1;12765:39:58;;;;-1:-1:-1;12802:1:58;12800:3;;12786:10;;;;:17;;12765:39;12761:132;;;12854:1;12840:13;:15;;;;;;12824:31;;12873:5;;12761:132;12906:3;;;;;12744:1;12742:3;12704:216;;;-1:-1:-1;12955:637:58;;;;;;;;13010:10;;12955:637;;13010:10;13057;;;;12955:637;;;;13105:10;;;;12955:637;;;;;;;;13156:10;;;;12955:637;;;;;;;;;13195:43;;13203:10;;;-1:-1:-1;;;;;13195:28:58;13232:4;13195:28;:43::i;:::-;12955:637;;;;;;;;13317:10;;;;;12955:637;;;;13361:10;;;;;12955:637;;;;13411:10;;;;;12955:637;;;;13452:10;;;;12955:637;;;;;;;13491:10;;;;12955:637;;;;;13317:10;13538:2;13530:11;;;;;;;;;12955:637;;-1:-1:-1;;;;;12955:637:58;;;;;;;;;;-1:-1:-1;12930:22:58;;;;;;;;;;;:662;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;12930:662:58;;;;;;;;;-1:-1:-1;12930:22:58;11797:1829;-1:-1:-1;;;11797:1829:58:o;4613:123:57:-;4671:11;7131:23:58;7142:11;7131:10;:23::i;:::-;7123:32;;;;;;4613:123:57;;:::o;5286:106::-;-1:-1:-1;5927:1:58;;5286:106:57:o;669:44::-;;;;;;;;;;;;;:::o;5970:31:58:-;6000:1;5970:31;:::o;6533:150:57:-;6613:7;6639:22;;;:9;:22;;;;;;;;:37;;;:28;;;;:37;;;;;;6533:150::o;5675:60:58:-;;;;;;;;;;;;-1:-1:-1;;;;;5675:60:58;;:::o;5794:86::-;;;;;;;;;;;;;:::o;9925:927::-;9987:28;10055:22;;;:9;:22;;;;;10113:21;10095:14;;;;-1:-1:-1;;;10095:14:58;;;;:39;;;;;;;;;:92;;;-1:-1:-1;10156:31:58;10138:14;;;;-1:-1:-1;;;10138:14:58;;;;:49;;;;;;;;;10095:92;10087:164;;;;-1:-1:-1;;;10087:164:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10269:21;10278:11;10269:8;:21::i;:::-;10261:57;;;;;-1:-1:-1;;;10261:57:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;10439:70;10447:61;10490:14;;;10505:1;10490:17;;10447:38;;;;;:61;:42;:61;:::i;:::-;10439:3;;:70;:7;:70;:::i;:::-;10329:45;;;:180;10543:34;10565:11;10543:21;:34::i;:::-;10610:20;;;;10520:57;;-1:-1:-1;10610:46:58;;10520:57;10610:46;:24;:46;:::i;:::-;10587:20;;;:69;10674:12;;:55;;;-1:-1:-1;;;10674:55:58;;10696:10;10674:55;;;;;;;;;;;;-1:-1:-1;;;;;10674:12:58;;;;:21;;:55;;;;;;;;;;;;;;;:12;;:55;;;5:2:-1;;;;30:1;27;20:12;5:2;10674:55:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10674:55:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10674:55:58;10666:97;;;;;-1:-1:-1;;;10666:97:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;10778:67;;;;;;;;10812:10;;10799:11;;10778:67;;;;;;;;;9925:927;;;;:::o;6839:115:57:-;6901:4;6924:23;6935:11;6924:10;:23::i;5564:143::-;5633:20;;:::i;:::-;5672:22;;;;:9;:22;;;;;;;5665:35;;;;;;;;5672:28;;5665:35;;5672:28;5665:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5564:143;;;:::o;14185:4042:58:-;14260:22;;:::i;:::-;14294:25;14322:22;;;:9;:22;;;;;14381;14363:14;;;;-1:-1:-1;;;14363:14:58;;;;:40;;;;;;;;;14362:92;;;-1:-1:-1;14425:28:58;14407:14;;;;-1:-1:-1;;;14407:14:58;;;;:46;;;;;;;;;14362:92;14354:158;;;;-1:-1:-1;;;14354:158:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14522:24;;:::i;:::-;-1:-1:-1;14560:19:58;;;;;14549:10;:31;;;;;;;;;;;14522:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14522:58:58;;;;;;;14634:30;;;;:16;;;:30;;;;;14719:20;;;;14703:37;;:15;;;:37;;;;;;14522:58;;14634:30;14799:85;14849:34;14871:11;14849:21;:34::i;:::-;6000:1;14823:20;;;;:15;;;:20;;;;;;;5963:1;14799:19;;;;;:45;;;:23;:45;:::i;:::-;:49;:85;:49;:85;:::i;:::-;14898:13;;;;14750:134;;-1:-1:-1;14898:17:58;14894:823;;14954:28;14936:14;;;;-1:-1:-1;;;14936:14:58;;;;:46;;;;;;;;;14932:744;;;15101:13;;;;15088:26;;14932:744;;;15154:20;;;;15139:11;;:35;15135:541;;;15198:11;;6000:1;15198:18;15194:468;;;15265:30;15244:8;:18;;;:51;15240:274;;;15323:20;15346:54;15381:8;:18;;;15346:30;:34;;:54;;;;:::i;:::-;15323:77;;15473:18;15440:31;15458:12;15440:6;:13;;;:17;;:31;;;;:::i;:::-;15439:52;;;;;;15426:65;;-1:-1:-1;15240:274:58;15194:468;;;15574:13;;;;15625:18;;15574:49;;15592:30;15574:49;:17;:49;:::i;:::-;15573:70;;;;;;15560:83;;15194:468;15705:1;15689:13;;;:17;14894:823;15768:29;;;;;;:38;;;:108;;-1:-1:-1;15852:23:58;;15838:38;;;;:13;:38;;;;;;-1:-1:-1;;;;;15822:54:58;;;15838:38;;15822:54;15768:108;:170;;;;-1:-1:-1;15910:28:58;15892:14;;;;-1:-1:-1;;;15892:14:58;;;;:46;;;;;;;;;;15768:170;:212;;;;;5963:1;15954:8;:20;;;:26;15768:212;15764:459;;;16143:18;;;;16021:141;;:104;16106:18;16050:54;16143:18;16073:30;16050:54;:22;:54;:::i;:::-;16049:75;;;;;;16021:7;16029:1;16021:10;;;;;;:104;:27;:104;:::i;:141::-;15996:166;;16176:29;;;:36;;-1:-1:-1;;16176:36:58;16208:4;16176:36;;;15764:459;-1:-1:-1;;;;;16274:29:58;;16252:19;16274:29;;;:15;;;:29;;;;;16318:16;;;;:21;;;;16317:45;;-1:-1:-1;16345:16:58;;;;;;16317:45;16313:944;;;16400:28;16382:14;;;;-1:-1:-1;;;16382:14:58;;;;:46;;;;;;;;;16378:835;;;16570:3;16514:54;16535:6;:32;;;16514:5;:16;;;:20;;:54;;;;:::i;:::-;16513:60;;;;;;16499:10;;;:75;16378:835;;;16623:10;;16599:20;;;;:34;16595:618;;;16653:22;6000:1;16697:8;:20;;;:27;16693:212;;;-1:-1:-1;5963:1:58;16765:28;;;;:24;;;:28;;;;;;16693:212;;;-1:-1:-1;6000:1:58;16857:29;;;;:24;;;:29;;;;;;16693:212;16994:3;16940:52;16959:6;:32;;;16940:14;:18;;:52;;;;:::i;:::-;16939:58;;;;;17176:20;;;;17151:46;;;;:24;;;:46;;;;;;17113:16;;;;16939:58;;;;;-1:-1:-1;17028:170:58;;17113:36;;16939:58;17113:36;:20;:36;:::i;:::-;17112:85;;;;;;17086:3;17030:54;17051:6;:32;;;17030:5;:16;;;:20;;:54;;;;:::i;:::-;17029:60;;;;;;;17028:170;:83;:170;:::i;:::-;17015:10;;;:183;-1:-1:-1;16595:618:58;17245:1;17226:16;;;:20;16313:944;17293:17;;;;-1:-1:-1;;;;;17293:33:58;;;:17;;:33;17292:66;;;;;6000:1;17330:8;:20;;;:27;17292:66;:101;;;;-1:-1:-1;17361:17:58;;;;-1:-1:-1;;;;;17361:17:58;:31;;17292:101;17288:214;;;17422:25;;;;17409:10;;;:38;17461:17;;;:30;;-1:-1:-1;;;;;;17461:30:58;;;17288:214;17515:10;;:15;17511:313;;17594:10;;17569:20;;;;:36;;:24;:36::i;:::-;17546:20;;;:59;17627:12;;17663:10;;17627:47;;;-1:-1:-1;;;17627:47:58;;-1:-1:-1;;;;;17627:47:58;;;;;;;;;;;;;;;;:12;;;;;:21;;:47;;;;;17663:10;;17627:47;;;;;;;:12;;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;17627:47:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17627:47:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17627:47:58;17619:90;;;;;-1:-1:-1;;;17619:90:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;17762:23;;17748:38;;;;:13;:38;;;;;;;;;;17802:10;;17728:85;;;;;;;-1:-1:-1;;;;;17728:85:58;;;;17748:38;;;17735:11;;17728:85;;;;;;;;;;;17511:313;17852:10;;;;17837:26;;17852:7;17845:1;17837:10;;:26;:31;17833:388;;17916:18;;;;-1:-1:-1;;;;;17916:18:58;17884:79;17964:26;17979:7;17987:1;17979:10;;;;17964:7;17972:1;17964:10;;:26;17992:12;18006:11;17884:134;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17884:134:58;-1:-1:-1;;;;;17884:134:58;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17884:134:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17884:134:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;18106:23:58;;18092:38;;;;:13;17884:134;18092:38;;;;;-1:-1:-1;;;;;18037:173:58;;;;18092:38;18067:11;18037:173;18170:26;18185:7;18193:1;18185:10;;;;18170:7;18178:1;18170:10;;:26;18037:173;;;;;;;;;;;;;;;17833:388;14185:4042;;;;;;;;;;:::o;10097:109:57:-;10153:7;10180:19;10187:11;10180:6;:19::i;5000:127::-;5076:4;5055:11;7131:23:58;7142:11;7131:10;:23::i;:::-;7123:32;;;;;;5099:21:57;5108:11;5099:8;:21::i;:::-;5092:28;5000:127;-1:-1:-1;;;5000:127:57:o;5573:52:58:-;;;;;;;;;;;;;:::o;821:845:52:-;893:7;936:8;977;717:24;1071:525;1078:17;;1071:525;;1162:12;1177:3;1162:18;1185:3;1161:27;1157:192;;;1305:29;1309:10;1321:12;1305:3;:29::i;:::-;1292:42;;1157:192;1434:1;1418:17;;;;;1453;;1449:137;;1540:31;1544:12;1558;1540:3;:31::i;:::-;1525:46;;1449:137;1071:525;;29759:1814:58;29862:4;5927:1;29920:5;:23;;:36;;;;;29955:1;29947:5;:9;29920:36;29912:65;;;;;-1:-1:-1;;;29912:65:58;;;;;;;;;;;;-1:-1:-1;;;29912:65:58;;;;;;;;;;;;;;;30005:1;29995:7;:11;29987:51;;;;;-1:-1:-1;;;29987:51:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;30053:21;30062:11;30053:8;:21::i;:::-;30049:63;;;-1:-1:-1;30097:4:58;30090:11;;30049:63;30121:25;30149:22;;;:9;:22;;;;;30205:24;30187:14;;;;-1:-1:-1;;;30187:14:58;;;;:42;;;;;;;;;;30186:100;;;;-1:-1:-1;30265:20:58;30247:14;;;;-1:-1:-1;;;30247:14:58;;;;:38;;;;;;;;;;30186:100;30182:143;;;30309:5;30302:12;;;;;30182:143;-1:-1:-1;;;;;30427:25:58;;30403:21;30427:25;;;:16;;;:25;;;;;30467:13;;;;:17;;;;30466:45;;-1:-1:-1;30490:11:58;;:20;;;30466:45;30462:88;;;30534:5;30527:12;;;;;;30462:88;30602:12;;:57;;;-1:-1:-1;;;30602:57:58;;-1:-1:-1;;;;;30602:57:58;;;;;;;30645:4;30602:57;;;;;;;;;;;;30577:7;;30602:12;;;;;:25;;:57;;;;;;;;;;;;;;;30560:14;30602:12;:57;;;5:2:-1;;;;30:1;27;20:12;5:2;30602:57:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;30602:57:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;30602:57:58;30594:95;;;;;-1:-1:-1;;;30594:95:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;30722:20;;;;:32;;30747:6;30722:32;:24;:32;:::i;:::-;30699:20;;;:55;30811:13;;;;:25;;30829:6;30811:25;:17;:25;:::i;:::-;30795:13;;;:41;;;-1:-1:-1;;;;30979:52:58;30971:91;;;;;-1:-1:-1;;;30971:91:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;31153:24;;;;31104:74;;-1:-1:-1;;;31112:35:58;31104:74;:48;:74;:::i;:::-;31080:8;:20;;;:98;;31072:151;;;;;-1:-1:-1;;;31072:151:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:1;31238:5;:12;31234:98;;;31289:20;;;;:32;;31314:6;31289:32;:24;:32;:::i;:::-;31266:20;;;:55;31234:98;31341:19;;;:11;31407:22;;;:15;;;:22;;;;;;31396:34;;:6;;:34;:10;:34;:::i;:::-;31371:22;;;;:15;;;:22;;;;;;;;:59;;;;31478:23;;31464:38;;:13;:38;;;;;;;31445:83;;;;;;;;;;;;;-1:-1:-1;;;;;31445:83:58;;;;31464:38;;;31451:11;;31445:83;;;;;;;;;31545:21;31554:11;31545:8;:21::i;:::-;31538:28;29759:1814;-1:-1:-1;;;;;;;;29759:1814:58:o;35973:366::-;36036:4;36075:22;;;:9;:22;;;;;;;:28;;-1:-1:-1;;;36075:28:58;;;;36132:24;36122:6;:34;;;;;;;;;36121:88;;;-1:-1:-1;36187:21:58;36177:6;:31;;;;;;;;;36121:88;:150;;;-1:-1:-1;36239:31:58;36229:6;:41;;;;;;;;;36121:150;:201;;;-1:-1:-1;36301:20:58;36291:6;:30;;;;;;;;;;35973:366;-1:-1:-1;;;35973:366:58:o;32312:2954::-;32417:4;5927:1;32441:5;:23;;:36;;;;;32476:1;32468:5;:9;32441:36;32433:63;;;;;-1:-1:-1;;;32433:63:58;;;;;;;;;;;;-1:-1:-1;;;32433:63:58;;;;;;;;;;;;;;;32510:21;32519:11;32510:8;:21::i;:::-;32506:63;;;-1:-1:-1;32554:4:58;32547:11;;32506:63;32579:24;;:::i;:::-;-1:-1:-1;32606:10:58;32617:22;;;:9;:22;;;;;;;;:33;;;;;32606:45;;;;;;;;32579:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;32579:72:58;;;;;;;32689:22;;;;;;32821:18;;;;32789:85;;-1:-1:-1;;;32789:85:58;;;;;;;;;;;;;;;;;;;;32579:72;;32617:22;;32606:10;;32821:18;;;;;32789:64;;:85;;;;;;;;;;32821:18;32789:85;;;5:2:-1;;;;30:1;27;20:12;5:2;32789:85:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;32789:85:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32789:85:58;;-1:-1:-1;32892:14:58;32884:54;;;;;-1:-1:-1;;;32884:54:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;32970:4;32956:10;:18;;32948:49;;;;;-1:-1:-1;;;32948:49:58;;;;;;;;;;;;-1:-1:-1;;;32948:49:58;;;;;;;;;;;;;;;33021:4;33039:8;33035:55;;-1:-1:-1;33069:10:58;33035:55;-1:-1:-1;;;;;33161:23:58;;;;;;:15;;;:23;;;;;:34;;;:39;33157:82;;33223:5;33216:12;;;;;;;;33157:82;33310:21;;;;:14;;;:21;;;;;;33302:30;;:3;;:30;:7;:30;:::i;:::-;33278:21;;;;:14;;;:21;;;;;;:54;;;33529:20;;;;33514:36;;;;;33490:21;;;;-1:-1:-1;33490:60:58;33489:183;;-1:-1:-1;33606:20:58;;;;;33591:36;;;;:14;;;:36;;;;;;;33569:18;;;;;;:58;33568:103;;;;;6000:1;33644:8;:20;;;:27;33568:103;33485:1004;;;33710:21;33692:14;;;;-1:-1:-1;;;33692:14:58;;;;:39;;;;;;;;;:206;;;;-1:-1:-1;33872:24:58;;;;33840:29;;;;:56;33817:14;;;33832:1;33817:17;;33811:3;:23;33810:87;;33692:206;:274;;;-1:-1:-1;33935:31:58;33917:14;;;;-1:-1:-1;;;33917:14:58;;;;:49;;;;;;;;;33692:274;33688:749;;;34044:31;34026:14;;;;-1:-1:-1;;;34026:14:58;;;;:49;;;;;;;;;34022:298;;34140:24;;;;34099:38;;;:65;34186:14;;;:48;;-1:-1:-1;;;;34186:48:58;-1:-1:-1;;;34186:48:58;;;;;34261:40;;34273:11;;34261:40;;-1:-1:-1;;;34286:14:58;;;;;;34261:40;34286:14;34203:31;34261:40;;;;;;;;;;;;;;;;;;;;;;;34022:298;34419:3;34399:17;;;:23;33688:749;34450:20;;;:28;;;33485:1004;34524:186;;;;;;;;;;;;;;;;;;;;34629:24;34611:14;;;;-1:-1:-1;;;34611:14:58;;;;:42;;;;;;;;;34610:88;;;-1:-1:-1;34677:20:58;34659:14;;;;-1:-1:-1;;;34659:14:58;;;;:38;;;;;;;;;34610:88;34524:186;;;;-1:-1:-1;;;;;34498:23:58;;;;;;:15;;;:23;;;;;;;;;:212;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;34498:212:58;;;;;;;;;;34743:24;34725:14;;;;-1:-1:-1;;;34725:14:58;;;;:42;;;;;;;;;34724:88;;;-1:-1:-1;34791:20:58;34773:14;;;;-1:-1:-1;;;34773:14:58;;;;:38;;;;;;;;;34724:88;34720:402;;;34870:31;;;;:24;;;:31;;;;;;34862:40;;:3;;:40;:7;:40;:::i;:::-;34828:31;;;;:24;;;:31;;;;;:74;;;;34945:32;;;;34988:3;;34945:41;;34982:3;34945:41;:36;:41;:::i;:::-;34944:47;;;;;35037:18;;;;35005:106;;;-1:-1:-1;;;35005:106:58;;34944:47;;;;35005:106;;;;;;-1:-1:-1;;;;;35005:106:58;;;;;;;;;;;;;;;34944:47;;-1:-1:-1;35037:18:58;;;35005:66;;:106;;;;;;;;;;;;;;35037:18;;35005:106;;;5:2:-1;;;;30:1;27;20:12;5:2;35005:106:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;35005:106:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;34720:402:58;35176:23;;35162:38;;;;:13;:38;;;;;;;;;;35136:85;;;;;;;;;;;;;-1:-1:-1;;;;;35136:85:58;;;;35162:38;;;35149:11;;35136:85;;;;;;;;;35238:21;35247:11;35238:8;:21::i;358:104:65:-;416:7;446:1;442;:5;:13;;454:1;442:13;;;-1:-1:-1;450:1:65;;435:20;-1:-1:-1;358:104:65:o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3073:130;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;3381:265:64:-;3580:58;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3580:58:64;;;;;;;3570:69;;;;;;3381:265::o;1226:1891::-;1304:7;1365:9;:16;1385:2;1365:22;1361:72;;-1:-1:-1;1419:1:64;1403:19;;1361:72;1783:4;1768:20;;1762:27;1828:4;1813:20;;1807:27;1881:4;1866:20;;1860:27;1499:9;1852:36;2799:66;2786:79;;2782:127;;;2896:1;2881:17;;;;;;;2782:127;2923:1;:7;;2928:2;2923:7;;:18;;;;;2934:1;:7;;2939:2;2934:7;;2923:18;2919:66;;;2972:1;2957:17;;;;;;;2919:66;3086:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3086:24:64;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3086:24:64;;-1:-1:-1;;3086:24:64;;;1226:1891;-1:-1:-1;;;;;;;1226:1891:64:o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;1274:134;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;35501:309:58:-;35560:7;35607:22;;;:9;:22;;;;;;;;5963:1;35782:19;;:15;;;:19;;;;;;;35743:20;;;;;;35607:22;;35735:68;;-1:-1:-1;;;;;35735:38:58;;:68;:38;:68;:::i;182:105:65:-;240:7;271:1;266;:6;;:14;;279:1;266:14;;1735:181:52;1816:7;1842:67;-1:-1:-1;;;;;1846:18:52;;;717:24;1846:29;;;;1877:20;;:31;1842:3;:67::i;23075:6412:58:-;23152:4;23131:11;7131:23;7142:11;7131:10;:23::i;:::-;7123:32;;;;;;23168:25;23196:22;;;:9;:22;;;;;23228:24;;:::i;:::-;-1:-1:-1;23266:19:58;;;;;23255:10;:31;;;;;;;;;;;;23228:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23228:58:58;;;;;23296:27;;:::i;:::-;:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23296:38:58;;;;;;;;;;;;;;-1:-1:-1;;;23296:38:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23296:38:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23296:38:58;;;-1:-1:-1;;23296:38:58;;;;;;;;;;;;;;;;23410:18;;;23378:89;;;-1:-1:-1;;;23378:89:58;;;;;;;;;;23296:38;;-1:-1:-1;23296:38:58;;-1:-1:-1;;;;;23410:18:58;;;;23378:76;;:89;;;;;;;;;;23410:18;23378:89;;;5:2:-1;;;;30:1;27;20:12;5:2;23378:89:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;23378:89:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;23378:89:58;23574:35;;23781:20;;;;23527;23766:36;;;:14;;;:36;;;;;;23378:89;;-1:-1:-1;23567:3:58;23551:19;;23550:59;;;;23527:20;;;;23766:51;-1:-1:-1;23762:3687:58;;;23916:20;23898:14;;;;-1:-1:-1;;;23898:14:58;;;;:38;;;;;;;;;23894:351;;;23973:30;23956:47;;23894:351;;;24046:24;24028:14;;;;-1:-1:-1;;;24028:14:58;;;;:42;;;;;;;;;24024:221;;;24107:35;24090:52;;24024:221;;;24198:32;24181:49;;24024:221;24258:14;;;:39;;24275:22;;24258:14;-1:-1:-1;;;;24258:39:58;-1:-1:-1;;;24275:22:58;24258:39;;;;;;23762:3687;;;24350:20;24332:14;;;;-1:-1:-1;;;24332:14:58;;;;:38;;;;;;;;;24328:944;;;24485:28;;;;24463:14;;;:17;24457:3;:23;24456:57;24452:806;;24554:28;24537:14;;:45;;-1:-1:-1;;;;24537:45:58;-1:-1:-1;;;24537:45:58;;;5963:1;24604:20;;;:25;;;5963:1;-1:-1:-1;24452:806:58;;;24764:55;24774:8;:19;;;24795:8;:23;;;24764:9;:55::i;:::-;24742:77;;24867:19;24845;24852:11;24845:6;:19::i;:::-;:41;24841:399;;;24981:14;;;:41;;-1:-1:-1;;;;24981:41:58;-1:-1:-1;;;24981:41:58;;;25138:3;25118:17;;;:23;25167:28;;;:50;;;24841:399;25308:24;25290:14;;;;-1:-1:-1;;;25290:14:58;;;;:42;;;;;;;;;25286:2153;;;25374:55;25384:8;:19;;;25405:8;:23;;;25374:9;:55::i;:::-;25540:32;;;;25352:77;;-1:-1:-1;25518:14:58;;;25533:1;25518:17;;25512:3;:23;25511:61;25507:1918;;25622:19;25600;25607:11;25600:6;:19::i;:::-;:41;25596:1258;;;25696:23;;25673:47;;;;:22;:47;;;;;;6243:4;-1:-1:-1;25669:1071:58;;;25841:14;;;;:38;;-1:-1:-1;;;;25841:38:58;-1:-1:-1;;;25841:38:58;;;26000:3;25980:17;;;:23;26056;;-1:-1:-1;26033:47:58;;;:22;:47;;;;;;;;:49;;;;;;;;26273:23;;26245:52;;:27;:52;;;;;;26663:47;;;;;;;26566:19;;;:15;;;:19;;;;;;;;26245:52;;-1:-1:-1;26663:47:58;26559:62;;;26663:47;26558:153;;;;26421:23;;26393:52;;;;:27;:52;;;;;26558:153;;;26488:224;;26393:320;;25669:1071;25596:1258;;;26794:14;;;:37;;26811:20;;26794:14;-1:-1:-1;;;;26794:37:58;-1:-1:-1;;;26811:20:58;26794:37;;25596:1258;25507:1918;;;26939:21;26963:19;26970:11;26963:6;:19::i;:::-;27025:28;;;;26939:43;;-1:-1:-1;27025:53:58;;27058:19;27025:53;:32;:53;:::i;:::-;27008:13;:70;27004:403;;27106:14;;;:37;;-1:-1:-1;;;;27106:37:58;-1:-1:-1;;;27106:37:58;;;27004:403;;;27207:13;27176:8;:28;;;:44;27172:235;;;27248:28;;;:50;;;27329:55;;;;;;;;27351:11;;27329:55;;;;;;;;;;27172:235;25507:1918;;27482:21;27464:14;;;;-1:-1:-1;;;27464:14:58;;;;:39;;;;;;;;;27463:108;;;-1:-1:-1;27539:31:58;27521:14;;;;-1:-1:-1;;;27521:14:58;;;;:49;;;;;;;;;27463:108;27459:405;;;27678:38;;;;27656:17;;;;27650:3;:23;27649:67;27645:209;;27736:14;;;:39;;-1:-1:-1;;;;27736:39:58;-1:-1:-1;;;27736:39:58;;;27810:29;;-1:-1:-1;27645:209:58;27896:19;27878:14;:37;;;;;;;;;27874:1431;;27954:29;27936:14;:47;;;;;;;;;27935:121;;;-1:-1:-1;28023:32:58;28005:14;:50;;;;;;;;;27935:121;27931:938;;;28168:26;;28145:50;;;;:22;:50;;;;;;:57;;28200:1;28145:57;:54;:57;:::i;:::-;28099:26;;28076:50;;;;:22;:50;;;;;;:126;;;;28367:26;;28344:50;;;;28416:21;28412:443;;28489:23;;28516:1;28461:52;;;:27;:52;;;;;:56;28412:443;;;28621:23;;28593:52;;;;:27;:52;;;;;;;;;5963:1;28798:19;;:15;;;:19;;;;;;;28593:52;;-1:-1:-1;28820:16:58;;28743:75;;:50;28593:52;28791:1;28774:18;;28743:50;:30;:50;:::i;:75::-;28742:94;;;;;28695:23;;28667:52;;;;:27;:52;;;;;28742:94;;;28667:169;;28412:443;27931:938;;28955:23;;28941:38;;;;:13;:38;;;;;;;;;;28993:20;;;;28887:169;;;;;;;;;;;;;-1:-1:-1;;;;;28941:38:58;;;;28916:11;;28887:169;;;;;;;;;;;29093:11;29075:46;29106:14;29075:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;29160:18;;;;29213:20;;;;29135:100;;;-1:-1:-1;;;29135:100:58;;;;;;;;;;;;;;;;-1:-1:-1;;;;;29160:18:58;;;;29135:60;;:100;;;;;;;;;;;;;;;29160:18;;29135:100;;;5:2:-1;;;;30:1;27;20:12;5:2;29135:100:58;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29135:100:58;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;29270:24:58;;;;29249:18;;;:45;27874:1431;29339:14;;;;-1:-1:-1;;;29339:14:58;;;;29318:35;;;;;;;;:11;:17;;;:35;;;;;;;;;29314:111;;29386:11;29374:40;29399:8;:14;;;;;;;;;;;;29374:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;29314:111;29460:19;29442:14;:37;;;;;;;;;;;23075:6412;-1:-1:-1;;;;;;;;;;;23075:6412:58:o;1996:383:52:-;2061:7;2261:13;;;2269:5;2261;:13;:5;2292:9;;;;;:18;2284:52;;;;;-1:-1:-1;;;2284:52:52;;;;;;;;;;;;-1:-1:-1;;;2284:52:52;;;;;;;;;;;;;;;613:2;2354:17;;1996:383;-1:-1:-1;;;1996:383:52:o;3718:338:66:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:66;-1:-1:-1;;;1888:5:66;;;1732:187::o;2462:353:52:-;2545:7;2791:15;717:24;2746:33;;2791:15;2745:62;;;;;;2462:353;-1:-1:-1;;;2462:353:52:o;221:9987:57:-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;221:9987:57;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;221:9987:57;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;221:9987:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;221:9987:57;;;-1:-1:-1;221:9987:57;:::i;:::-;;;:::o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;221:9987:57;;;-1:-1:-1;;221:9987:57:o;:::-;;;;;;;;;;;;;;;;;;557:797:71;617:4;1265:20;;1110:66;1304:15;;;;;:42;;-1:-1:-1;1323:23:71;;;557:797;-1:-1:-1;;557:797:71:o","source":"pragma solidity ^0.5.11;\n\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\nimport \"./GenesisProtocolLogic.sol\";\n\n\n/**\n * @title GenesisProtocol implementation -an organization's voting machine scheme.\n */\ncontract GenesisProtocol is IntVoteInterface, GenesisProtocolLogic {\n using ECDSA for bytes32;\n\n // Digest describing the data the user signs according EIP 712.\n // Needs to match what is passed to Metamask.\n bytes32 public constant DELEGATION_HASH_EIP712 =\n keccak256(abi.encodePacked(\n \"address GenesisProtocolAddress\",\n \"bytes32 ProposalId\",\n \"uint256 Vote\",\n \"uint256 AmountToStake\",\n \"uint256 Nonce\"\n ));\n\n mapping(address=>uint256) public stakesNonce; //stakes Nonce\n\n /**\n * @dev Constructor\n */\n constructor(IERC20 _stakingToken)\n public\n // solhint-disable-next-line no-empty-blocks\n GenesisProtocolLogic(_stakingToken) {\n }\n\n /**\n * @dev staking function\n * @param _proposalId id of the proposal\n * @param _vote NO(2) or YES(1).\n * @param _amount the betting amount\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function stake(bytes32 _proposalId, uint256 _vote, uint256 _amount) external returns(bool) {\n return _stake(_proposalId, _vote, _amount, msg.sender);\n }\n\n /**\n * @dev stakeWithSignature function\n * @param _proposalId id of the proposal\n * @param _vote NO(2) or YES(1).\n * @param _amount the betting amount\n * @param _nonce nonce value ,it is part of the signature to ensure that\n a signature can be received only once.\n * @param _signatureType signature type\n 1 - for web3.eth.sign\n 2 - for eth_signTypedData according to EIP #712.\n * @param _signature - signed data by the staker\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function stakeWithSignature(\n bytes32 _proposalId,\n uint256 _vote,\n uint256 _amount,\n uint256 _nonce,\n uint256 _signatureType,\n bytes calldata _signature\n )\n external\n returns(bool)\n {\n // Recreate the digest the user signed\n bytes32 delegationDigest;\n if (_signatureType == 2) {\n delegationDigest = keccak256(\n abi.encodePacked(\n DELEGATION_HASH_EIP712, keccak256(\n abi.encodePacked(\n address(this),\n _proposalId,\n _vote,\n _amount,\n _nonce)\n )\n )\n );\n } else {\n delegationDigest = keccak256(\n abi.encodePacked(\n address(this),\n _proposalId,\n _vote,\n _amount,\n _nonce)\n ).toEthSignedMessageHash();\n }\n address staker = delegationDigest.recover(_signature);\n //a garbage staker address due to wrong signature will revert due to lack of approval and funds.\n require(staker != address(0), \"staker address cannot be 0\");\n require(stakesNonce[staker] == _nonce);\n stakesNonce[staker] = stakesNonce[staker].add(1);\n return _stake(_proposalId, _vote, _amount, staker);\n }\n\n /**\n * @dev voting function\n * @param _proposalId id of the proposal\n * @param _vote NO(2) or YES(1).\n * @param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\n * @param _voter voter address\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function vote(bytes32 _proposalId, uint256 _vote, uint256 _amount, address _voter)\n external\n votable(_proposalId)\n returns(bool) {\n Proposal storage proposal = proposals[_proposalId];\n Parameters memory params = parameters[proposal.paramsHash];\n address voter;\n if (params.voteOnBehalf != address(0)) {\n require(msg.sender == params.voteOnBehalf);\n voter = _voter;\n } else {\n voter = msg.sender;\n }\n return internalVote(_proposalId, voter, _vote, _amount);\n }\n\n /**\n * @dev Cancel the vote of the msg.sender.\n * cancel vote is not allow in genesisProtocol so this function doing nothing.\n * This function is here in order to comply to the IntVoteInterface .\n */\n function cancelVote(bytes32 _proposalId) external votable(_proposalId) {\n //this is not allowed\n return;\n }\n\n /**\n * @dev execute check if the proposal has been decided, and if so, execute the proposal\n * @param _proposalId the id of the proposal\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function execute(bytes32 _proposalId) external votable(_proposalId) returns(bool) {\n return _execute(_proposalId);\n }\n\n /**\n * @dev getNumberOfChoices returns the number of choices possible in this proposal\n * @return uint256 that contains number of choices\n */\n function getNumberOfChoices(bytes32) external view returns(uint256) {\n return NUM_OF_CHOICES;\n }\n\n /**\n * @dev getProposalTimes returns proposals times variables.\n * @param _proposalId id of the proposal\n * @return proposals times array\n */\n function getProposalTimes(bytes32 _proposalId) external view returns(uint[3] memory times) {\n return proposals[_proposalId].times;\n }\n\n /**\n * @dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal\n * @param _proposalId the ID of the proposal\n * @param _voter the address of the voter\n * @return uint256 vote - the voters vote\n * uint256 reputation - amount of reputation committed by _voter to _proposalId\n */\n function voteInfo(bytes32 _proposalId, address _voter) external view returns(uint, uint) {\n Voter memory voter = proposals[_proposalId].voters[_voter];\n return (voter.vote, voter.reputation);\n }\n\n /**\n * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n * @param _proposalId the ID of the proposal\n * @param _choice the index in the\n * @return voted reputation for the given choice\n */\n function voteStatus(bytes32 _proposalId, uint256 _choice) external view returns(uint256) {\n return proposals[_proposalId].votes[_choice];\n }\n\n /**\n * @dev isVotable check if the proposal is votable\n * @param _proposalId the ID of the proposal\n * @return bool true or false\n */\n function isVotable(bytes32 _proposalId) external view returns(bool) {\n return _isVotable(_proposalId);\n }\n\n /**\n * @dev proposalStatus return the total votes and stakes for a given proposal\n * @param _proposalId the ID of the proposal\n * @return uint256 preBoostedVotes YES\n * @return uint256 preBoostedVotes NO\n * @return uint256 total stakes YES\n * @return uint256 total stakes NO\n */\n function proposalStatus(bytes32 _proposalId) external view returns(uint256, uint256, uint256, uint256) {\n return (\n proposals[_proposalId].preBoostedVotes[YES],\n proposals[_proposalId].preBoostedVotes[NO],\n proposals[_proposalId].stakes[YES],\n proposals[_proposalId].stakes[NO]\n );\n }\n\n /**\n * @dev getProposalOrganization return the organizationId for a given proposal\n * @param _proposalId the ID of the proposal\n * @return bytes32 organization identifier\n */\n function getProposalOrganization(bytes32 _proposalId) external view returns(bytes32) {\n return (proposals[_proposalId].organizationId);\n }\n\n /**\n * @dev getStaker return the vote and stake amount for a given proposal and staker\n * @param _proposalId the ID of the proposal\n * @param _staker staker address\n * @return uint256 vote\n * @return uint256 amount\n */\n function getStaker(bytes32 _proposalId, address _staker) external view returns(uint256, uint256) {\n return (proposals[_proposalId].stakers[_staker].vote, proposals[_proposalId].stakers[_staker].amount);\n }\n\n /**\n * @dev voteStake return the amount stakes for a given proposal and vote\n * @param _proposalId the ID of the proposal\n * @param _vote vote number\n * @return uint256 stake amount\n */\n function voteStake(bytes32 _proposalId, uint256 _vote) external view returns(uint256) {\n return proposals[_proposalId].stakes[_vote];\n }\n\n /**\n * @dev voteStake return the winningVote for a given proposal\n * @param _proposalId the ID of the proposal\n * @return uint256 winningVote\n */\n function winningVote(bytes32 _proposalId) external view returns(uint256) {\n return proposals[_proposalId].winningVote;\n }\n\n /**\n * @dev voteStake return the state for a given proposal\n * @param _proposalId the ID of the proposal\n * @return ProposalState proposal state\n */\n function state(bytes32 _proposalId) external view returns(ProposalState) {\n return proposals[_proposalId].state;\n }\n\n /**\n * @dev isAbstainAllow returns if the voting machine allow abstain (0)\n * @return bool true or false\n */\n function isAbstainAllow() external pure returns(bool) {\n return false;\n }\n\n /**\n * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n * @return min - minimum number of choices\n max - maximum number of choices\n */\n function getAllowedRangeOfChoices() external pure returns(uint256 min, uint256 max) {\n return (YES, NO);\n }\n\n /**\n * @dev score return the proposal score\n * @param _proposalId the ID of the proposal\n * @return uint256 proposal score.\n */\n function score(bytes32 _proposalId) public view returns(uint256) {\n return _score(_proposalId);\n }\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","exportedSymbols":{"GenesisProtocol":[17111]},"id":17112,"nodeType":"SourceUnit","nodes":[{"id":16620,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:57"},{"absolutePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","file":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","id":16621,"nodeType":"ImportDirective","scope":17112,"sourceUnit":20140,"src":"26:64:57","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol","file":"./GenesisProtocolLogic.sol","id":16622,"nodeType":"ImportDirective","scope":17112,"sourceUnit":19682,"src":"91:36:57","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":16623,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"249:16:57","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":16624,"nodeType":"InheritanceSpecifier","src":"249:16:57"},{"arguments":null,"baseName":{"contractScope":null,"id":16625,"name":"GenesisProtocolLogic","nodeType":"UserDefinedTypeName","referencedDeclaration":19681,"src":"267:20:57","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}},"id":16626,"nodeType":"InheritanceSpecifier","src":"267:20:57"}],"contractDependencies":[19681,19816],"contractKind":"contract","documentation":"@title GenesisProtocol implementation -an organization's voting machine scheme.","fullyImplemented":true,"id":17111,"linearizedBaseContracts":[17111,19681,19816],"name":"GenesisProtocol","nodeType":"ContractDefinition","nodes":[{"id":16629,"libraryName":{"contractScope":null,"id":16627,"name":"ECDSA","nodeType":"UserDefinedTypeName","referencedDeclaration":20139,"src":"300:5:57","typeDescriptions":{"typeIdentifier":"t_contract$_ECDSA_$20139","typeString":"library ECDSA"}},"nodeType":"UsingForDirective","src":"294:24:57","typeName":{"id":16628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"constant":true,"id":16641,"name":"DELEGATION_HASH_EIP712","nodeType":"VariableDeclaration","scope":17111,"src":"442:220:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"442:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"616464726573732047656e6573697350726f746f636f6c41646472657373","id":16634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"527:32:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f6f81c79222251f266116add8ba75554a893ee5a90e2827df720a8738b6852ea","typeString":"literal_string \"address GenesisProtocolAddress\""},"value":"address GenesisProtocolAddress"},{"argumentTypes":null,"hexValue":"627974657333322050726f706f73616c4964","id":16635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"565:20:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c82636388059bdf5f5ea03cfec7d8e327d93cc6aaa4cd8e5544d7950722aea62","typeString":"literal_string \"bytes32 ProposalId\""},"value":"bytes32 ProposalId"},{"argumentTypes":null,"hexValue":"75696e7432353620566f7465","id":16636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"591:14:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7c3f5ffe3403c4b459a64b441be5b523982a2df65457e729fee531305984ff","typeString":"literal_string \"uint256 Vote\""},"value":"uint256 Vote"},{"argumentTypes":null,"hexValue":"75696e7432353620416d6f756e74546f5374616b65","id":16637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"611:23:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eaeb9db97e42ac65bdd1048a940a8f71fc1af8b56d16e6cd3de10e163148977c","typeString":"literal_string \"uint256 AmountToStake\""},"value":"uint256 AmountToStake"},{"argumentTypes":null,"hexValue":"75696e74323536204e6f6e6365","id":16638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"640:15:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f461d9cb6c7bbc73c9b53173ca291dd54af24fcc1e3e4e673a2da79ed63c9b73","typeString":"literal_string \"uint256 Nonce\""},"value":"uint256 Nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f6f81c79222251f266116add8ba75554a893ee5a90e2827df720a8738b6852ea","typeString":"literal_string \"address GenesisProtocolAddress\""},{"typeIdentifier":"t_stringliteral_c82636388059bdf5f5ea03cfec7d8e327d93cc6aaa4cd8e5544d7950722aea62","typeString":"literal_string \"bytes32 ProposalId\""},{"typeIdentifier":"t_stringliteral_5b7c3f5ffe3403c4b459a64b441be5b523982a2df65457e729fee531305984ff","typeString":"literal_string \"uint256 Vote\""},{"typeIdentifier":"t_stringliteral_eaeb9db97e42ac65bdd1048a940a8f71fc1af8b56d16e6cd3de10e163148977c","typeString":"literal_string \"uint256 AmountToStake\""},{"typeIdentifier":"t_stringliteral_f461d9cb6c7bbc73c9b53173ca291dd54af24fcc1e3e4e673a2da79ed63c9b73","typeString":"literal_string \"uint256 Nonce\""}],"expression":{"argumentTypes":null,"id":16632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"505:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"505:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:156:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16631,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"495:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"495:167:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":16645,"name":"stakesNonce","nodeType":"VariableDeclaration","scope":17111,"src":"669:44:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":16644,"keyType":{"id":16642,"name":"address","nodeType":"ElementaryTypeName","src":"677:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"669:25:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":16643,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"body":{"id":16653,"nodeType":"Block","src":"909:7:57","statements":[]},"documentation":"@dev Constructor","id":16654,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"argumentTypes":null,"id":16650,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"894:13:57","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"id":16651,"modifierName":{"argumentTypes":null,"id":16649,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"873:20:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"nodeType":"ModifierInvocation","src":"873:35:57"}],"name":"","nodeType":"FunctionDefinition","parameters":{"id":16648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16647,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":16654,"src":"787:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":16646,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"787:6:57","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"src":"786:22:57"},"returnParameters":{"id":16652,"nodeType":"ParameterList","parameters":[],"src":"909:0:57"},"scope":17111,"src":"775:141:57","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":16673,"nodeType":"Block","src":"1279:71:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16666,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16656,"src":"1303:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16667,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"1316:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16668,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16660,"src":"1323:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16669,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1332:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1332:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":16665,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19310,"src":"1296:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,uint256,uint256,address) returns (bool)"}},"id":16671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1296:47:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16664,"id":16672,"nodeType":"Return","src":"1289:54:57"}]},"documentation":"@dev staking function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the betting amount\n@return bool true - the proposal has been executed\n false - otherwise.","id":16674,"implemented":true,"kind":"function","modifiers":[],"name":"stake","nodeType":"FunctionDefinition","parameters":{"id":16661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16656,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16674,"src":"1203:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1203:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16658,"name":"_vote","nodeType":"VariableDeclaration","scope":16674,"src":"1224:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1224:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16660,"name":"_amount","nodeType":"VariableDeclaration","scope":16674,"src":"1239:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1202:53:57"},"returnParameters":{"id":16664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16663,"name":"","nodeType":"VariableDeclaration","scope":16674,"src":"1273:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16662,"name":"bool","nodeType":"ElementaryTypeName","src":"1273:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1272:6:57"},"scope":17111,"src":"1188:162:57","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16780,"nodeType":"Block","src":"2213:1257:57","statements":[{"assignments":[16692],"declarations":[{"constant":false,"id":16692,"name":"delegationDigest","nodeType":"VariableDeclaration","scope":16780,"src":"2270:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2270:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":16693,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2270:24:57"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16694,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16684,"src":"2308:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":16695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2326:1:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2308:19:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16736,"nodeType":"Block","src":"2746:315:57","statements":[{"expression":{"argumentTypes":null,"id":16734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16719,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"2760:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16724,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"2864:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}],"id":16723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2856:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2856:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16726,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16676,"src":"2895:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16727,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"2932:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16728,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2963:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16729,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"2996:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2814:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2814:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2814:189:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16720,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2779:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:246:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":20138,"src":"2779:269:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":16733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:271:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2760:290:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16735,"nodeType":"ExpressionStatement","src":"2760:290:57"}]},"id":16737,"nodeType":"IfStatement","src":"2304:757:57","trueBody":{"id":16718,"nodeType":"Block","src":"2329:411:57","statements":[{"expression":{"argumentTypes":null,"id":16716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16697,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"2343:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16701,"name":"DELEGATION_HASH_EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"2427:22:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16706,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"2536:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}],"id":16705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2528:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2528:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16708,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16676,"src":"2567:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16709,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"2604:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16710,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2635:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16711,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"2668:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16703,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2486:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2486:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2486:189:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16702,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2451:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2451:246:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":16699,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2389:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2389:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2389:326:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16698,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2362:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2362:367:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2343:386:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16717,"nodeType":"ExpressionStatement","src":"2343:386:57"}]}},{"assignments":[16739],"declarations":[{"constant":false,"id":16739,"name":"staker","nodeType":"VariableDeclaration","scope":16780,"src":"3070:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16738,"name":"address","nodeType":"ElementaryTypeName","src":"3070:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":16744,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16742,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16686,"src":"3112:10:57","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":16740,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"3087:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":20122,"src":"3087:24:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":16743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3087:36:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3070:53:57"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16746,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3246:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3264:1:57","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":16747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3256:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3256:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3246:20:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7374616b657220616464726573732063616e6e6f742062652030","id":16751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3268:28:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3430815440156fda2758a526d662027048e6496bf994b390c4dc85badccdf423","typeString":"literal_string \"staker address cannot be 0\""},"value":"staker address cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3430815440156fda2758a526d662027048e6496bf994b390c4dc85badccdf423","typeString":"literal_string \"staker address cannot be 0\""}],"id":16745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3238:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3238:59:57","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16753,"nodeType":"ExpressionStatement","src":"3238:59:57"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16755,"name":"stakesNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"3315:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16757,"indexExpression":{"argumentTypes":null,"id":16756,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3327:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3315:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":16758,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"3338:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3315:29:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3307:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3307:38:57","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16761,"nodeType":"ExpressionStatement","src":"3307:38:57"},{"expression":{"argumentTypes":null,"id":16771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16762,"name":"stakesNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"3355:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16764,"indexExpression":{"argumentTypes":null,"id":16763,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3367:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3355:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":16769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:1:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16765,"name":"stakesNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"3377:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16767,"indexExpression":{"argumentTypes":null,"id":16766,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3389:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3377:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"3377:23:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3377:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3355:48:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16772,"nodeType":"ExpressionStatement","src":"3355:48:57"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16774,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16676,"src":"3427:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16775,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"3440:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16776,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3447:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16777,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3456:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16773,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19310,"src":"3420:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,uint256,uint256,address) returns (bool)"}},"id":16778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3420:43:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16690,"id":16779,"nodeType":"Return","src":"3413:50:57"}]},"documentation":"@dev stakeWithSignature function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the betting amount\n@param _nonce nonce value ,it is part of the signature to ensure that\na signature can be received only once.\n@param _signatureType signature type\n1 - for web3.eth.sign\n2 - for eth_signTypedData according to EIP #712.\n@param _signature - signed data by the staker\n@return bool true - the proposal has been executed\n false - otherwise.","id":16781,"implemented":true,"kind":"function","modifiers":[],"name":"stakeWithSignature","nodeType":"FunctionDefinition","parameters":{"id":16687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16676,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16781,"src":"1997:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1997:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16678,"name":"_vote","nodeType":"VariableDeclaration","scope":16781,"src":"2026:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16677,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16680,"name":"_amount","nodeType":"VariableDeclaration","scope":16781,"src":"2049:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16679,"name":"uint256","nodeType":"ElementaryTypeName","src":"2049:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16682,"name":"_nonce","nodeType":"VariableDeclaration","scope":16781,"src":"2074:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16681,"name":"uint256","nodeType":"ElementaryTypeName","src":"2074:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16684,"name":"_signatureType","nodeType":"VariableDeclaration","scope":16781,"src":"2098:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2098:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16686,"name":"_signature","nodeType":"VariableDeclaration","scope":16781,"src":"2130:25:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16685,"name":"bytes","nodeType":"ElementaryTypeName","src":"2130:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"1987:178:57"},"returnParameters":{"id":16690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16689,"name":"","nodeType":"VariableDeclaration","scope":16781,"src":"2199:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16688,"name":"bool","nodeType":"ElementaryTypeName","src":"2199:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2198:6:57"},"scope":17111,"src":"1960:1510:57","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16846,"nodeType":"Block","src":"3982:415:57","statements":[{"assignments":[16798],"declarations":[{"constant":false,"id":16798,"name":"proposal","nodeType":"VariableDeclaration","scope":16846,"src":"3992:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":16797,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"3992:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":16802,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16799,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"4020:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16801,"indexExpression":{"argumentTypes":null,"id":16800,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"4030:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4020:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3992:50:57"},{"assignments":[16804],"declarations":[{"constant":false,"id":16804,"name":"params","nodeType":"VariableDeclaration","scope":16846,"src":"4052:24:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":16803,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"4052:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":16809,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16805,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"4079:10:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":16808,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16806,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16798,"src":"4090:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":16807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"4090:19:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4079:31:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4052:58:57"},{"assignments":[16811],"declarations":[{"constant":false,"id":16811,"name":"voter","nodeType":"VariableDeclaration","scope":16846,"src":"4120:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16810,"name":"address","nodeType":"ElementaryTypeName","src":"4120:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":16812,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"4120:13:57"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16813,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"4147:6:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":16814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":17180,"src":"4147:19:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4178:1:57","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":16815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4170:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4170:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4147:33:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16837,"nodeType":"Block","src":"4283:43:57","statements":[{"expression":{"argumentTypes":null,"id":16835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16832,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16811,"src":"4297:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16833,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4305:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4305:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4297:18:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16836,"nodeType":"ExpressionStatement","src":"4297:18:57"}]},"id":16838,"nodeType":"IfStatement","src":"4143:183:57","trueBody":{"id":16831,"nodeType":"Block","src":"4182:95:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16820,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4204:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4204:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16822,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"4218:6:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":16823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":17180,"src":"4218:19:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4204:33:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16819,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4196:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4196:42:57","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16826,"nodeType":"ExpressionStatement","src":"4196:42:57"},{"expression":{"argumentTypes":null,"id":16829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16827,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16811,"src":"4252:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16828,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16789,"src":"4260:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4252:14:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16830,"nodeType":"ExpressionStatement","src":"4252:14:57"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16840,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"4355:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16841,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16811,"src":"4368:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16842,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16785,"src":"4375:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16843,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16787,"src":"4382:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16839,"name":"internalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19611,"src":"4342:12:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,address,uint256,uint256) returns (bool)"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4342:48:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16796,"id":16845,"nodeType":"Return","src":"4335:55:57"}]},"documentation":"@dev voting function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\n@param _voter voter address\n@return bool true - the proposal has been executed\n false - otherwise.","id":16847,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16792,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"3951:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16793,"modifierName":{"argumentTypes":null,"id":16791,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"3943:7:57","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3943:20:57"}],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":16790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16783,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16847,"src":"3857:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3857:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16785,"name":"_vote","nodeType":"VariableDeclaration","scope":16847,"src":"3878:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16784,"name":"uint256","nodeType":"ElementaryTypeName","src":"3878:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16787,"name":"_amount","nodeType":"VariableDeclaration","scope":16847,"src":"3893:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16786,"name":"uint256","nodeType":"ElementaryTypeName","src":"3893:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16789,"name":"_voter","nodeType":"VariableDeclaration","scope":16847,"src":"3910:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16788,"name":"address","nodeType":"ElementaryTypeName","src":"3910:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3856:69:57"},"returnParameters":{"id":16796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16795,"name":"","nodeType":"VariableDeclaration","scope":16847,"src":"3976:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16794,"name":"bool","nodeType":"ElementaryTypeName","src":"3976:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3975:6:57"},"scope":17111,"src":"3843:554:57","stateMutability":"nonpayable","superFunction":19775,"visibility":"external"},{"body":{"id":16856,"nodeType":"Block","src":"4684:52:57","statements":[{"expression":null,"functionReturnParameters":16854,"id":16855,"nodeType":"Return","src":"4723:7:57"}]},"documentation":"@dev Cancel the vote of the msg.sender.\ncancel vote is not allow in genesisProtocol so this function doing nothing.\nThis function is here in order to comply to the IntVoteInterface .","id":16857,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16852,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"4671:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16853,"modifierName":{"argumentTypes":null,"id":16851,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"4663:7:57","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4663:20:57"}],"name":"cancelVote","nodeType":"FunctionDefinition","parameters":{"id":16850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16849,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16857,"src":"4633:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4633:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4632:21:57"},"returnParameters":{"id":16854,"nodeType":"ParameterList","parameters":[],"src":"4684:0:57"},"scope":17111,"src":"4613:123:57","stateMutability":"nonpayable","superFunction":19780,"visibility":"external"},{"body":{"id":16871,"nodeType":"Block","src":"5082:45:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16868,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"5108:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16867,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"5099:8:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":16869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5099:21:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16866,"id":16870,"nodeType":"Return","src":"5092:28:57"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":16872,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16862,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"5055:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16863,"modifierName":{"argumentTypes":null,"id":16861,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"5047:7:57","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5047:20:57"}],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":16860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16859,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16872,"src":"5017:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5017:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5016:21:57"},"returnParameters":{"id":16866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16865,"name":"","nodeType":"VariableDeclaration","scope":16872,"src":"5076:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16864,"name":"bool","nodeType":"ElementaryTypeName","src":"5076:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5075:6:57"},"scope":17111,"src":"5000:127:57","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16881,"nodeType":"Block","src":"5354:38:57","statements":[{"expression":{"argumentTypes":null,"id":16879,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"5371:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16878,"id":16880,"nodeType":"Return","src":"5364:21:57"}]},"documentation":"@dev getNumberOfChoices returns the number of choices possible in this proposal\n@return uint256 that contains number of choices","id":16882,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfChoices","nodeType":"FunctionDefinition","parameters":{"id":16875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16874,"name":"","nodeType":"VariableDeclaration","scope":16882,"src":"5314:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5314:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5313:9:57"},"returnParameters":{"id":16878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16877,"name":"","nodeType":"VariableDeclaration","scope":16882,"src":"5345:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16876,"name":"uint256","nodeType":"ElementaryTypeName","src":"5345:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5344:9:57"},"scope":17111,"src":"5286:106:57","stateMutability":"view","superFunction":19787,"visibility":"external"},{"body":{"id":16896,"nodeType":"Block","src":"5655:52:57","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16891,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"5672:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16893,"indexExpression":{"argumentTypes":null,"id":16892,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16884,"src":"5682:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5672:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"5672:28:57","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"functionReturnParameters":16890,"id":16895,"nodeType":"Return","src":"5665:35:57"}]},"documentation":"@dev getProposalTimes returns proposals times variables.\n@param _proposalId id of the proposal\n@return proposals times array","id":16897,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalTimes","nodeType":"FunctionDefinition","parameters":{"id":16885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16884,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16897,"src":"5590:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5590:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5589:21:57"},"returnParameters":{"id":16890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16889,"name":"times","nodeType":"VariableDeclaration","scope":16897,"src":"5633:20:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":16886,"name":"uint","nodeType":"ElementaryTypeName","src":"5633:4:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16888,"length":{"argumentTypes":null,"hexValue":"33","id":16887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5638:1:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"5633:7:57","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"}],"src":"5632:22:57"},"scope":17111,"src":"5564:143:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":16923,"nodeType":"Block","src":"6156:122:57","statements":[{"assignments":[16909],"declarations":[{"constant":false,"id":16909,"name":"voter","nodeType":"VariableDeclaration","scope":16923,"src":"6166:18:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory_ptr","typeString":"struct GenesisProtocolLogic.Voter"},"typeName":{"contractScope":null,"id":16908,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":17188,"src":"6166:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"}},"value":null,"visibility":"internal"}],"id":16916,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16910,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"6187:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16912,"indexExpression":{"argumentTypes":null,"id":16911,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16899,"src":"6197:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6187:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"6187:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":16915,"indexExpression":{"argumentTypes":null,"id":16914,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16901,"src":"6217:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6187:37:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6166:58:57"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16917,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16909,"src":"6242:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory_ptr","typeString":"struct GenesisProtocolLogic.Voter memory"}},"id":16918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"6242:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16919,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16909,"src":"6254:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory_ptr","typeString":"struct GenesisProtocolLogic.Voter memory"}},"id":16920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"6254:16:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16921,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6241:30:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":16907,"id":16922,"nodeType":"Return","src":"6234:37:57"}]},"documentation":"@dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal\n@param _proposalId the ID of the proposal\n@param _voter the address of the voter\n@return uint256 vote - the voters vote\n uint256 reputation - amount of reputation committed by _voter to _proposalId","id":16924,"implemented":true,"kind":"function","modifiers":[],"name":"voteInfo","nodeType":"FunctionDefinition","parameters":{"id":16902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16899,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16924,"src":"6085:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6085:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16901,"name":"_voter","nodeType":"VariableDeclaration","scope":16924,"src":"6106:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16900,"name":"address","nodeType":"ElementaryTypeName","src":"6106:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6084:37:57"},"returnParameters":{"id":16907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16904,"name":"","nodeType":"VariableDeclaration","scope":16924,"src":"6144:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16903,"name":"uint","nodeType":"ElementaryTypeName","src":"6144:4:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16906,"name":"","nodeType":"VariableDeclaration","scope":16924,"src":"6150:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16905,"name":"uint","nodeType":"ElementaryTypeName","src":"6150:4:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6143:12:57"},"scope":17111,"src":"6067:211:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":16940,"nodeType":"Block","src":"6622:61:57","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16933,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"6639:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16935,"indexExpression":{"argumentTypes":null,"id":16934,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16926,"src":"6649:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6639:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"6639:28:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16938,"indexExpression":{"argumentTypes":null,"id":16937,"name":"_choice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16928,"src":"6668:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6639:37:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16932,"id":16939,"nodeType":"Return","src":"6632:44:57"}]},"documentation":"@dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n@param _proposalId the ID of the proposal\n@param _choice the index in the\n@return voted reputation for the given choice","id":16941,"implemented":true,"kind":"function","modifiers":[],"name":"voteStatus","nodeType":"FunctionDefinition","parameters":{"id":16929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16926,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16941,"src":"6553:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6553:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16928,"name":"_choice","nodeType":"VariableDeclaration","scope":16941,"src":"6574:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16927,"name":"uint256","nodeType":"ElementaryTypeName","src":"6574:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6552:38:57"},"returnParameters":{"id":16932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16931,"name":"","nodeType":"VariableDeclaration","scope":16941,"src":"6613:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16930,"name":"uint256","nodeType":"ElementaryTypeName","src":"6613:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6612:9:57"},"scope":17111,"src":"6533:150:57","stateMutability":"view","superFunction":19803,"visibility":"external"},{"body":{"id":16952,"nodeType":"Block","src":"6907:47:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16949,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16943,"src":"6935:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16948,"name":"_isVotable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19680,"src":"6924:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":16950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6924:23:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16947,"id":16951,"nodeType":"Return","src":"6917:30:57"}]},"documentation":"@dev isVotable check if the proposal is votable\n@param _proposalId the ID of the proposal\n@return bool true or false","id":16953,"implemented":true,"kind":"function","modifiers":[],"name":"isVotable","nodeType":"FunctionDefinition","parameters":{"id":16944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16943,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16953,"src":"6858:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6858:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6857:21:57"},"returnParameters":{"id":16947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16946,"name":"","nodeType":"VariableDeclaration","scope":16953,"src":"6901:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16945,"name":"bool","nodeType":"ElementaryTypeName","src":"6901:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6900:6:57"},"scope":17111,"src":"6839:115:57","stateMutability":"view","superFunction":19794,"visibility":"external"},{"body":{"id":16992,"nodeType":"Block","src":"7367:258:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16966,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7402:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16968,"indexExpression":{"argumentTypes":null,"id":16967,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7412:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7402:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"7402:38:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16971,"indexExpression":{"argumentTypes":null,"id":16970,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"7441:3:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7402:43:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16972,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7463:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16974,"indexExpression":{"argumentTypes":null,"id":16973,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7473:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7463:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"7463:38:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16977,"indexExpression":{"argumentTypes":null,"id":16976,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"7502:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7463:42:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16978,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7523:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16980,"indexExpression":{"argumentTypes":null,"id":16979,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7533:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7523:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"7523:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16983,"indexExpression":{"argumentTypes":null,"id":16982,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"7553:3:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7523:34:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16984,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7575:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16986,"indexExpression":{"argumentTypes":null,"id":16985,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7585:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7575:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"7575:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16989,"indexExpression":{"argumentTypes":null,"id":16988,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"7605:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7575:33:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7384:234:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"functionReturnParameters":16965,"id":16991,"nodeType":"Return","src":"7377:241:57"}]},"documentation":"@dev proposalStatus return the total votes and stakes for a given proposal\n@param _proposalId the ID of the proposal\n@return uint256 preBoostedVotes YES\n@return uint256 preBoostedVotes NO\n@return uint256 total stakes YES\n@return uint256 total stakes NO","id":16993,"implemented":true,"kind":"function","modifiers":[],"name":"proposalStatus","nodeType":"FunctionDefinition","parameters":{"id":16956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16955,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16993,"src":"7288:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7288:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7287:21:57"},"returnParameters":{"id":16965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16958,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7331:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7331:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16960,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7340:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16959,"name":"uint256","nodeType":"ElementaryTypeName","src":"7340:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16962,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7349:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7349:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16964,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7358:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16963,"name":"uint256","nodeType":"ElementaryTypeName","src":"7358:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7330:36:57"},"scope":17111,"src":"7264:361:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17006,"nodeType":"Block","src":"7905:63:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17000,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7923:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17002,"indexExpression":{"argumentTypes":null,"id":17001,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16995,"src":"7933:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7923:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"7923:37:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7922:39:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16999,"id":17005,"nodeType":"Return","src":"7915:46:57"}]},"documentation":"@dev getProposalOrganization return the organizationId for a given proposal\n@param _proposalId the ID of the proposal\n@return bytes32 organization identifier","id":17007,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalOrganization","nodeType":"FunctionDefinition","parameters":{"id":16996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16995,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17007,"src":"7853:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7853:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7852:21:57"},"returnParameters":{"id":16999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16998,"name":"","nodeType":"VariableDeclaration","scope":17007,"src":"7896:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7896:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7895:9:57"},"scope":17111,"src":"7820:148:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17034,"nodeType":"Block","src":"8322:118:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17018,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"8340:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17020,"indexExpression":{"argumentTypes":null,"id":17019,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17009,"src":"8350:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8340:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"8340:30:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":17023,"indexExpression":{"argumentTypes":null,"id":17022,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"8371:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8340:39:57","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"id":17024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"8340:44:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17025,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"8386:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17027,"indexExpression":{"argumentTypes":null,"id":17026,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17009,"src":"8396:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8386:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"8386:30:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":17030,"indexExpression":{"argumentTypes":null,"id":17029,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"8417:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8386:39:57","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"id":17031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"8386:46:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17032,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8339:94:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":17017,"id":17033,"nodeType":"Return","src":"8332:101:57"}]},"documentation":"@dev getStaker return the vote and stake amount for a given proposal and staker\n@param _proposalId the ID of the proposal\n@param _staker staker address\n@return uint256 vote\n@return uint256 amount","id":17035,"implemented":true,"kind":"function","modifiers":[],"name":"getStaker","nodeType":"FunctionDefinition","parameters":{"id":17012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17009,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17035,"src":"8244:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8244:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17011,"name":"_staker","nodeType":"VariableDeclaration","scope":17035,"src":"8265:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17010,"name":"address","nodeType":"ElementaryTypeName","src":"8265:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8243:38:57"},"returnParameters":{"id":17017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17014,"name":"","nodeType":"VariableDeclaration","scope":17035,"src":"8304:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8304:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17016,"name":"","nodeType":"VariableDeclaration","scope":17035,"src":"8313:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8313:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8303:18:57"},"scope":17111,"src":"8225:215:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17051,"nodeType":"Block","src":"8745:60:57","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17044,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"8762:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17046,"indexExpression":{"argumentTypes":null,"id":17045,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17037,"src":"8772:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8762:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"8762:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17049,"indexExpression":{"argumentTypes":null,"id":17048,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17039,"src":"8792:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8762:36:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17043,"id":17050,"nodeType":"Return","src":"8755:43:57"}]},"documentation":"@dev voteStake return the amount stakes for a given proposal and vote\n@param _proposalId the ID of the proposal\n@param _vote vote number\n@return uint256 stake amount","id":17052,"implemented":true,"kind":"function","modifiers":[],"name":"voteStake","nodeType":"FunctionDefinition","parameters":{"id":17040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17037,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17052,"src":"8678:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8678:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17039,"name":"_vote","nodeType":"VariableDeclaration","scope":17052,"src":"8699:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17038,"name":"uint256","nodeType":"ElementaryTypeName","src":"8699:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8677:36:57"},"returnParameters":{"id":17043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17042,"name":"","nodeType":"VariableDeclaration","scope":17052,"src":"8736:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17041,"name":"uint256","nodeType":"ElementaryTypeName","src":"8736:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8735:9:57"},"scope":17111,"src":"8659:146:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17064,"nodeType":"Block","src":"9044:58:57","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17059,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9061:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17061,"indexExpression":{"argumentTypes":null,"id":17060,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"9071:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9061:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"9061:34:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17058,"id":17063,"nodeType":"Return","src":"9054:41:57"}]},"documentation":"@dev voteStake return the winningVote for a given proposal\n@param _proposalId the ID of the proposal\n@return uint256 winningVote","id":17065,"implemented":true,"kind":"function","modifiers":[],"name":"winningVote","nodeType":"FunctionDefinition","parameters":{"id":17055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17054,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17065,"src":"8992:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8992:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"8991:21:57"},"returnParameters":{"id":17058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17057,"name":"","nodeType":"VariableDeclaration","scope":17065,"src":"9035:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17056,"name":"uint256","nodeType":"ElementaryTypeName","src":"9035:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9034:9:57"},"scope":17111,"src":"8971:131:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17077,"nodeType":"Block","src":"9352:52:57","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17072,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9369:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17074,"indexExpression":{"argumentTypes":null,"id":17073,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17067,"src":"9379:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9369:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"9369:28:57","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"functionReturnParameters":17071,"id":17076,"nodeType":"Return","src":"9362:35:57"}]},"documentation":"@dev voteStake return the state for a given proposal\n@param _proposalId the ID of the proposal\n@return ProposalState proposal state","id":17078,"implemented":true,"kind":"function","modifiers":[],"name":"state","nodeType":"FunctionDefinition","parameters":{"id":17068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17067,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17078,"src":"9294:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9294:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9293:21:57"},"returnParameters":{"id":17071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17070,"name":"","nodeType":"VariableDeclaration","scope":17078,"src":"9337:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":17069,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"9337:13:57","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"src":"9336:15:57"},"scope":17111,"src":"9279:125:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17085,"nodeType":"Block","src":"9585:29:57","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":17083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9602:5:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":17082,"id":17084,"nodeType":"Return","src":"9595:12:57"}]},"documentation":"@dev isAbstainAllow returns if the voting machine allow abstain (0)\n@return bool true or false","id":17086,"implemented":true,"kind":"function","modifiers":[],"name":"isAbstainAllow","nodeType":"FunctionDefinition","parameters":{"id":17079,"nodeType":"ParameterList","parameters":[],"src":"9554:2:57"},"returnParameters":{"id":17082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17081,"name":"","nodeType":"VariableDeclaration","scope":17086,"src":"9579:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17080,"name":"bool","nodeType":"ElementaryTypeName","src":"9579:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9578:6:57"},"scope":17111,"src":"9531:83:57","stateMutability":"pure","superFunction":19808,"visibility":"external"},{"body":{"id":17097,"nodeType":"Block","src":"9910:33:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":17093,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"9928:3:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17094,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"9933:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9927:9:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":17092,"id":17096,"nodeType":"Return","src":"9920:16:57"}]},"documentation":"@dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n@return min - minimum number of choices\nmax - maximum number of choices","id":17098,"implemented":true,"kind":"function","modifiers":[],"name":"getAllowedRangeOfChoices","nodeType":"FunctionDefinition","parameters":{"id":17087,"nodeType":"ParameterList","parameters":[],"src":"9859:2:57"},"returnParameters":{"id":17092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17089,"name":"min","nodeType":"VariableDeclaration","scope":17098,"src":"9884:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17088,"name":"uint256","nodeType":"ElementaryTypeName","src":"9884:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17091,"name":"max","nodeType":"VariableDeclaration","scope":17098,"src":"9897:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17090,"name":"uint256","nodeType":"ElementaryTypeName","src":"9897:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9883:26:57"},"scope":17111,"src":"9826:117:57","stateMutability":"pure","superFunction":19815,"visibility":"external"},{"body":{"id":17109,"nodeType":"Block","src":"10162:44:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17106,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17100,"src":"10187:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17105,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"10180:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":17107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10180:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17104,"id":17108,"nodeType":"Return","src":"10172:27:57"}]},"documentation":"@dev score return the proposal score\n@param _proposalId the ID of the proposal\n@return uint256 proposal score.","id":17110,"implemented":true,"kind":"function","modifiers":[],"name":"score","nodeType":"FunctionDefinition","parameters":{"id":17101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17100,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17110,"src":"10112:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10112:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"10111:21:57"},"returnParameters":{"id":17104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17103,"name":"","nodeType":"VariableDeclaration","scope":17110,"src":"10153:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17102,"name":"uint256","nodeType":"ElementaryTypeName","src":"10153:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10152:9:57"},"scope":17111,"src":"10097:109:57","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":17112,"src":"221:9987:57"}],"src":"0:10209:57"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","exportedSymbols":{"GenesisProtocol":[17111]},"id":17112,"nodeType":"SourceUnit","nodes":[{"id":16620,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:57"},{"absolutePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","file":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","id":16621,"nodeType":"ImportDirective","scope":17112,"sourceUnit":20140,"src":"26:64:57","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol","file":"./GenesisProtocolLogic.sol","id":16622,"nodeType":"ImportDirective","scope":17112,"sourceUnit":19682,"src":"91:36:57","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":16623,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"249:16:57","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":16624,"nodeType":"InheritanceSpecifier","src":"249:16:57"},{"arguments":null,"baseName":{"contractScope":null,"id":16625,"name":"GenesisProtocolLogic","nodeType":"UserDefinedTypeName","referencedDeclaration":19681,"src":"267:20:57","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}},"id":16626,"nodeType":"InheritanceSpecifier","src":"267:20:57"}],"contractDependencies":[19681,19816],"contractKind":"contract","documentation":"@title GenesisProtocol implementation -an organization's voting machine scheme.","fullyImplemented":true,"id":17111,"linearizedBaseContracts":[17111,19681,19816],"name":"GenesisProtocol","nodeType":"ContractDefinition","nodes":[{"id":16629,"libraryName":{"contractScope":null,"id":16627,"name":"ECDSA","nodeType":"UserDefinedTypeName","referencedDeclaration":20139,"src":"300:5:57","typeDescriptions":{"typeIdentifier":"t_contract$_ECDSA_$20139","typeString":"library ECDSA"}},"nodeType":"UsingForDirective","src":"294:24:57","typeName":{"id":16628,"name":"bytes32","nodeType":"ElementaryTypeName","src":"310:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"constant":true,"id":16641,"name":"DELEGATION_HASH_EIP712","nodeType":"VariableDeclaration","scope":17111,"src":"442:220:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"442:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"616464726573732047656e6573697350726f746f636f6c41646472657373","id":16634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"527:32:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f6f81c79222251f266116add8ba75554a893ee5a90e2827df720a8738b6852ea","typeString":"literal_string \"address GenesisProtocolAddress\""},"value":"address GenesisProtocolAddress"},{"argumentTypes":null,"hexValue":"627974657333322050726f706f73616c4964","id":16635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"565:20:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c82636388059bdf5f5ea03cfec7d8e327d93cc6aaa4cd8e5544d7950722aea62","typeString":"literal_string \"bytes32 ProposalId\""},"value":"bytes32 ProposalId"},{"argumentTypes":null,"hexValue":"75696e7432353620566f7465","id":16636,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"591:14:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7c3f5ffe3403c4b459a64b441be5b523982a2df65457e729fee531305984ff","typeString":"literal_string \"uint256 Vote\""},"value":"uint256 Vote"},{"argumentTypes":null,"hexValue":"75696e7432353620416d6f756e74546f5374616b65","id":16637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"611:23:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_eaeb9db97e42ac65bdd1048a940a8f71fc1af8b56d16e6cd3de10e163148977c","typeString":"literal_string \"uint256 AmountToStake\""},"value":"uint256 AmountToStake"},{"argumentTypes":null,"hexValue":"75696e74323536204e6f6e6365","id":16638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"640:15:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f461d9cb6c7bbc73c9b53173ca291dd54af24fcc1e3e4e673a2da79ed63c9b73","typeString":"literal_string \"uint256 Nonce\""},"value":"uint256 Nonce"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f6f81c79222251f266116add8ba75554a893ee5a90e2827df720a8738b6852ea","typeString":"literal_string \"address GenesisProtocolAddress\""},{"typeIdentifier":"t_stringliteral_c82636388059bdf5f5ea03cfec7d8e327d93cc6aaa4cd8e5544d7950722aea62","typeString":"literal_string \"bytes32 ProposalId\""},{"typeIdentifier":"t_stringliteral_5b7c3f5ffe3403c4b459a64b441be5b523982a2df65457e729fee531305984ff","typeString":"literal_string \"uint256 Vote\""},{"typeIdentifier":"t_stringliteral_eaeb9db97e42ac65bdd1048a940a8f71fc1af8b56d16e6cd3de10e163148977c","typeString":"literal_string \"uint256 AmountToStake\""},{"typeIdentifier":"t_stringliteral_f461d9cb6c7bbc73c9b53173ca291dd54af24fcc1e3e4e673a2da79ed63c9b73","typeString":"literal_string \"uint256 Nonce\""}],"expression":{"argumentTypes":null,"id":16632,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"505:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"505:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"505:156:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16631,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"495:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16640,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"495:167:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"constant":false,"id":16645,"name":"stakesNonce","nodeType":"VariableDeclaration","scope":17111,"src":"669:44:57","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":16644,"keyType":{"id":16642,"name":"address","nodeType":"ElementaryTypeName","src":"677:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"669:25:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":16643,"name":"uint256","nodeType":"ElementaryTypeName","src":"686:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"body":{"id":16653,"nodeType":"Block","src":"909:7:57","statements":[]},"documentation":"@dev Constructor","id":16654,"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"argumentTypes":null,"id":16650,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16647,"src":"894:13:57","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"id":16651,"modifierName":{"argumentTypes":null,"id":16649,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"873:20:57","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"nodeType":"ModifierInvocation","src":"873:35:57"}],"name":"","nodeType":"FunctionDefinition","parameters":{"id":16648,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16647,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":16654,"src":"787:20:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":16646,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"787:6:57","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"src":"786:22:57"},"returnParameters":{"id":16652,"nodeType":"ParameterList","parameters":[],"src":"909:0:57"},"scope":17111,"src":"775:141:57","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":16673,"nodeType":"Block","src":"1279:71:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16666,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16656,"src":"1303:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16667,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16658,"src":"1316:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16668,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16660,"src":"1323:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16669,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1332:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1332:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":16665,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19310,"src":"1296:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,uint256,uint256,address) returns (bool)"}},"id":16671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1296:47:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16664,"id":16672,"nodeType":"Return","src":"1289:54:57"}]},"documentation":"@dev staking function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the betting amount\n@return bool true - the proposal has been executed\n false - otherwise.","id":16674,"implemented":true,"kind":"function","modifiers":[],"name":"stake","nodeType":"FunctionDefinition","parameters":{"id":16661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16656,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16674,"src":"1203:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16655,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1203:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16658,"name":"_vote","nodeType":"VariableDeclaration","scope":16674,"src":"1224:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16657,"name":"uint256","nodeType":"ElementaryTypeName","src":"1224:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16660,"name":"_amount","nodeType":"VariableDeclaration","scope":16674,"src":"1239:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16659,"name":"uint256","nodeType":"ElementaryTypeName","src":"1239:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1202:53:57"},"returnParameters":{"id":16664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16663,"name":"","nodeType":"VariableDeclaration","scope":16674,"src":"1273:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16662,"name":"bool","nodeType":"ElementaryTypeName","src":"1273:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1272:6:57"},"scope":17111,"src":"1188:162:57","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16780,"nodeType":"Block","src":"2213:1257:57","statements":[{"assignments":[16692],"declarations":[{"constant":false,"id":16692,"name":"delegationDigest","nodeType":"VariableDeclaration","scope":16780,"src":"2270:24:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16691,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2270:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":16693,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2270:24:57"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16694,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16684,"src":"2308:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":16695,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2326:1:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2308:19:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16736,"nodeType":"Block","src":"2746:315:57","statements":[{"expression":{"argumentTypes":null,"id":16734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16719,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"2760:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16724,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"2864:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}],"id":16723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2856:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2856:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16726,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16676,"src":"2895:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16727,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"2932:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16728,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2963:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16729,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"2996:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16721,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2814:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16722,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2814:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2814:189:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16720,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2779:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:246:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":20138,"src":"2779:269:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":16733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2779:271:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2760:290:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16735,"nodeType":"ExpressionStatement","src":"2760:290:57"}]},"id":16737,"nodeType":"IfStatement","src":"2304:757:57","trueBody":{"id":16718,"nodeType":"Block","src":"2329:411:57","statements":[{"expression":{"argumentTypes":null,"id":16716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16697,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"2343:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16701,"name":"DELEGATION_HASH_EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16641,"src":"2427:22:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16706,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21173,"src":"2536:4:57","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}],"id":16705,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2528:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2528:13:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16708,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16676,"src":"2567:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16709,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"2604:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16710,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"2635:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16711,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"2668:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":16703,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2486:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2486:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2486:189:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16702,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2451:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16713,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2451:246:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":16699,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2389:3:57","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":16700,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2389:16:57","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":16714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2389:326:57","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":16698,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2362:9:57","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":16715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2362:367:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2343:386:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16717,"nodeType":"ExpressionStatement","src":"2343:386:57"}]}},{"assignments":[16739],"declarations":[{"constant":false,"id":16739,"name":"staker","nodeType":"VariableDeclaration","scope":16780,"src":"3070:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16738,"name":"address","nodeType":"ElementaryTypeName","src":"3070:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":16744,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16742,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16686,"src":"3112:10:57","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":16740,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16692,"src":"3087:16:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":16741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":20122,"src":"3087:24:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":16743,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3087:36:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3070:53:57"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16750,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":16746,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3246:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3264:1:57","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":16747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3256:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3256:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3246:20:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7374616b657220616464726573732063616e6e6f742062652030","id":16751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3268:28:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3430815440156fda2758a526d662027048e6496bf994b390c4dc85badccdf423","typeString":"literal_string \"staker address cannot be 0\""},"value":"staker address cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3430815440156fda2758a526d662027048e6496bf994b390c4dc85badccdf423","typeString":"literal_string \"staker address cannot be 0\""}],"id":16745,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3238:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":16752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3238:59:57","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16753,"nodeType":"ExpressionStatement","src":"3238:59:57"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":16759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16755,"name":"stakesNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"3315:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16757,"indexExpression":{"argumentTypes":null,"id":16756,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3327:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3315:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":16758,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16682,"src":"3338:6:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3315:29:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16754,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3307:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16760,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3307:38:57","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16761,"nodeType":"ExpressionStatement","src":"3307:38:57"},{"expression":{"argumentTypes":null,"id":16771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16762,"name":"stakesNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"3355:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16764,"indexExpression":{"argumentTypes":null,"id":16763,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3367:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3355:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":16769,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3401:1:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16765,"name":"stakesNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16645,"src":"3377:11:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":16767,"indexExpression":{"argumentTypes":null,"id":16766,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3389:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3377:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"3377:23:57","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":16770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3377:26:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3355:48:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16772,"nodeType":"ExpressionStatement","src":"3355:48:57"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16774,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16676,"src":"3427:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16775,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16678,"src":"3440:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16776,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16680,"src":"3447:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16777,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16739,"src":"3456:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":16773,"name":"_stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19310,"src":"3420:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,uint256,uint256,address) returns (bool)"}},"id":16778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3420:43:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16690,"id":16779,"nodeType":"Return","src":"3413:50:57"}]},"documentation":"@dev stakeWithSignature function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the betting amount\n@param _nonce nonce value ,it is part of the signature to ensure that\na signature can be received only once.\n@param _signatureType signature type\n1 - for web3.eth.sign\n2 - for eth_signTypedData according to EIP #712.\n@param _signature - signed data by the staker\n@return bool true - the proposal has been executed\n false - otherwise.","id":16781,"implemented":true,"kind":"function","modifiers":[],"name":"stakeWithSignature","nodeType":"FunctionDefinition","parameters":{"id":16687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16676,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16781,"src":"1997:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16675,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1997:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16678,"name":"_vote","nodeType":"VariableDeclaration","scope":16781,"src":"2026:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16677,"name":"uint256","nodeType":"ElementaryTypeName","src":"2026:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16680,"name":"_amount","nodeType":"VariableDeclaration","scope":16781,"src":"2049:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16679,"name":"uint256","nodeType":"ElementaryTypeName","src":"2049:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16682,"name":"_nonce","nodeType":"VariableDeclaration","scope":16781,"src":"2074:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16681,"name":"uint256","nodeType":"ElementaryTypeName","src":"2074:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16684,"name":"_signatureType","nodeType":"VariableDeclaration","scope":16781,"src":"2098:22:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16683,"name":"uint256","nodeType":"ElementaryTypeName","src":"2098:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16686,"name":"_signature","nodeType":"VariableDeclaration","scope":16781,"src":"2130:25:57","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":16685,"name":"bytes","nodeType":"ElementaryTypeName","src":"2130:5:57","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"1987:178:57"},"returnParameters":{"id":16690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16689,"name":"","nodeType":"VariableDeclaration","scope":16781,"src":"2199:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16688,"name":"bool","nodeType":"ElementaryTypeName","src":"2199:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2198:6:57"},"scope":17111,"src":"1960:1510:57","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16846,"nodeType":"Block","src":"3982:415:57","statements":[{"assignments":[16798],"declarations":[{"constant":false,"id":16798,"name":"proposal","nodeType":"VariableDeclaration","scope":16846,"src":"3992:25:57","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":16797,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"3992:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":16802,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16799,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"4020:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16801,"indexExpression":{"argumentTypes":null,"id":16800,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"4030:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4020:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"3992:50:57"},{"assignments":[16804],"declarations":[{"constant":false,"id":16804,"name":"params","nodeType":"VariableDeclaration","scope":16846,"src":"4052:24:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":16803,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"4052:10:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":16809,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16805,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"4079:10:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":16808,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16806,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16798,"src":"4090:8:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":16807,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"4090:19:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4079:31:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4052:58:57"},{"assignments":[16811],"declarations":[{"constant":false,"id":16811,"name":"voter","nodeType":"VariableDeclaration","scope":16846,"src":"4120:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16810,"name":"address","nodeType":"ElementaryTypeName","src":"4120:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":16812,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"4120:13:57"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16813,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"4147:6:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":16814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":17180,"src":"4147:19:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":16816,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4178:1:57","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":16815,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4170:7:57","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":16817,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4170:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4147:33:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":16837,"nodeType":"Block","src":"4283:43:57","statements":[{"expression":{"argumentTypes":null,"id":16835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16832,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16811,"src":"4297:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16833,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4305:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4305:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4297:18:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16836,"nodeType":"ExpressionStatement","src":"4297:18:57"}]},"id":16838,"nodeType":"IfStatement","src":"4143:183:57","trueBody":{"id":16831,"nodeType":"Block","src":"4182:95:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":16824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16820,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4204:3:57","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":16821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4204:10:57","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16822,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16804,"src":"4218:6:57","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":16823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteOnBehalf","nodeType":"MemberAccess","referencedDeclaration":17180,"src":"4218:19:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4204:33:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":16819,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4196:7:57","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":16825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4196:42:57","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":16826,"nodeType":"ExpressionStatement","src":"4196:42:57"},{"expression":{"argumentTypes":null,"id":16829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":16827,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16811,"src":"4252:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":16828,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16789,"src":"4260:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4252:14:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":16830,"nodeType":"ExpressionStatement","src":"4252:14:57"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16840,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"4355:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":16841,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16811,"src":"4368:5:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":16842,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16785,"src":"4375:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":16843,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16787,"src":"4382:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":16839,"name":"internalVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19611,"src":"4342:12:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_bool_$","typeString":"function (bytes32,address,uint256,uint256) returns (bool)"}},"id":16844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4342:48:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16796,"id":16845,"nodeType":"Return","src":"4335:55:57"}]},"documentation":"@dev voting function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\n@param _voter voter address\n@return bool true - the proposal has been executed\n false - otherwise.","id":16847,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16792,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16783,"src":"3951:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16793,"modifierName":{"argumentTypes":null,"id":16791,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"3943:7:57","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3943:20:57"}],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":16790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16783,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16847,"src":"3857:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16782,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3857:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16785,"name":"_vote","nodeType":"VariableDeclaration","scope":16847,"src":"3878:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16784,"name":"uint256","nodeType":"ElementaryTypeName","src":"3878:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16787,"name":"_amount","nodeType":"VariableDeclaration","scope":16847,"src":"3893:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16786,"name":"uint256","nodeType":"ElementaryTypeName","src":"3893:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16789,"name":"_voter","nodeType":"VariableDeclaration","scope":16847,"src":"3910:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16788,"name":"address","nodeType":"ElementaryTypeName","src":"3910:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3856:69:57"},"returnParameters":{"id":16796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16795,"name":"","nodeType":"VariableDeclaration","scope":16847,"src":"3976:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16794,"name":"bool","nodeType":"ElementaryTypeName","src":"3976:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3975:6:57"},"scope":17111,"src":"3843:554:57","stateMutability":"nonpayable","superFunction":19775,"visibility":"external"},{"body":{"id":16856,"nodeType":"Block","src":"4684:52:57","statements":[{"expression":null,"functionReturnParameters":16854,"id":16855,"nodeType":"Return","src":"4723:7:57"}]},"documentation":"@dev Cancel the vote of the msg.sender.\ncancel vote is not allow in genesisProtocol so this function doing nothing.\nThis function is here in order to comply to the IntVoteInterface .","id":16857,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16852,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16849,"src":"4671:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16853,"modifierName":{"argumentTypes":null,"id":16851,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"4663:7:57","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4663:20:57"}],"name":"cancelVote","nodeType":"FunctionDefinition","parameters":{"id":16850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16849,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16857,"src":"4633:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16848,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4633:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4632:21:57"},"returnParameters":{"id":16854,"nodeType":"ParameterList","parameters":[],"src":"4684:0:57"},"scope":17111,"src":"4613:123:57","stateMutability":"nonpayable","superFunction":19780,"visibility":"external"},{"body":{"id":16871,"nodeType":"Block","src":"5082:45:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16868,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"5108:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16867,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"5099:8:57","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":16869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5099:21:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16866,"id":16870,"nodeType":"Return","src":"5092:28:57"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":16872,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":16862,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16859,"src":"5055:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":16863,"modifierName":{"argumentTypes":null,"id":16861,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"5047:7:57","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"5047:20:57"}],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":16860,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16859,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16872,"src":"5017:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16858,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5017:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5016:21:57"},"returnParameters":{"id":16866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16865,"name":"","nodeType":"VariableDeclaration","scope":16872,"src":"5076:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16864,"name":"bool","nodeType":"ElementaryTypeName","src":"5076:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"5075:6:57"},"scope":17111,"src":"5000:127:57","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":16881,"nodeType":"Block","src":"5354:38:57","statements":[{"expression":{"argumentTypes":null,"id":16879,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"5371:14:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16878,"id":16880,"nodeType":"Return","src":"5364:21:57"}]},"documentation":"@dev getNumberOfChoices returns the number of choices possible in this proposal\n@return uint256 that contains number of choices","id":16882,"implemented":true,"kind":"function","modifiers":[],"name":"getNumberOfChoices","nodeType":"FunctionDefinition","parameters":{"id":16875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16874,"name":"","nodeType":"VariableDeclaration","scope":16882,"src":"5314:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16873,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5314:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5313:9:57"},"returnParameters":{"id":16878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16877,"name":"","nodeType":"VariableDeclaration","scope":16882,"src":"5345:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16876,"name":"uint256","nodeType":"ElementaryTypeName","src":"5345:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5344:9:57"},"scope":17111,"src":"5286:106:57","stateMutability":"view","superFunction":19787,"visibility":"external"},{"body":{"id":16896,"nodeType":"Block","src":"5655:52:57","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16891,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"5672:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16893,"indexExpression":{"argumentTypes":null,"id":16892,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16884,"src":"5682:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5672:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"5672:28:57","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"functionReturnParameters":16890,"id":16895,"nodeType":"Return","src":"5665:35:57"}]},"documentation":"@dev getProposalTimes returns proposals times variables.\n@param _proposalId id of the proposal\n@return proposals times array","id":16897,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalTimes","nodeType":"FunctionDefinition","parameters":{"id":16885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16884,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16897,"src":"5590:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16883,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5590:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5589:21:57"},"returnParameters":{"id":16890,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16889,"name":"times","nodeType":"VariableDeclaration","scope":16897,"src":"5633:20:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":16886,"name":"uint","nodeType":"ElementaryTypeName","src":"5633:4:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":16888,"length":{"argumentTypes":null,"hexValue":"33","id":16887,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5638:1:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"5633:7:57","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"}],"src":"5632:22:57"},"scope":17111,"src":"5564:143:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":16923,"nodeType":"Block","src":"6156:122:57","statements":[{"assignments":[16909],"declarations":[{"constant":false,"id":16909,"name":"voter","nodeType":"VariableDeclaration","scope":16923,"src":"6166:18:57","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory_ptr","typeString":"struct GenesisProtocolLogic.Voter"},"typeName":{"contractScope":null,"id":16908,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":17188,"src":"6166:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"}},"value":null,"visibility":"internal"}],"id":16916,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16910,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"6187:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16912,"indexExpression":{"argumentTypes":null,"id":16911,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16899,"src":"6197:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6187:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"6187:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":16915,"indexExpression":{"argumentTypes":null,"id":16914,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16901,"src":"6217:6:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6187:37:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6166:58:57"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16917,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16909,"src":"6242:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory_ptr","typeString":"struct GenesisProtocolLogic.Voter memory"}},"id":16918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"6242:10:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":16919,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16909,"src":"6254:5:57","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory_ptr","typeString":"struct GenesisProtocolLogic.Voter memory"}},"id":16920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"6254:16:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16921,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6241:30:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":16907,"id":16922,"nodeType":"Return","src":"6234:37:57"}]},"documentation":"@dev voteInfo returns the vote and the amount of reputation of the user committed to this proposal\n@param _proposalId the ID of the proposal\n@param _voter the address of the voter\n@return uint256 vote - the voters vote\n uint256 reputation - amount of reputation committed by _voter to _proposalId","id":16924,"implemented":true,"kind":"function","modifiers":[],"name":"voteInfo","nodeType":"FunctionDefinition","parameters":{"id":16902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16899,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16924,"src":"6085:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16898,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6085:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16901,"name":"_voter","nodeType":"VariableDeclaration","scope":16924,"src":"6106:14:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":16900,"name":"address","nodeType":"ElementaryTypeName","src":"6106:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6084:37:57"},"returnParameters":{"id":16907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16904,"name":"","nodeType":"VariableDeclaration","scope":16924,"src":"6144:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16903,"name":"uint","nodeType":"ElementaryTypeName","src":"6144:4:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16906,"name":"","nodeType":"VariableDeclaration","scope":16924,"src":"6150:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16905,"name":"uint","nodeType":"ElementaryTypeName","src":"6150:4:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6143:12:57"},"scope":17111,"src":"6067:211:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":16940,"nodeType":"Block","src":"6622:61:57","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16933,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"6639:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16935,"indexExpression":{"argumentTypes":null,"id":16934,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16926,"src":"6649:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6639:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"6639:28:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16938,"indexExpression":{"argumentTypes":null,"id":16937,"name":"_choice","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16928,"src":"6668:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6639:37:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":16932,"id":16939,"nodeType":"Return","src":"6632:44:57"}]},"documentation":"@dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n@param _proposalId the ID of the proposal\n@param _choice the index in the\n@return voted reputation for the given choice","id":16941,"implemented":true,"kind":"function","modifiers":[],"name":"voteStatus","nodeType":"FunctionDefinition","parameters":{"id":16929,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16926,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16941,"src":"6553:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16925,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6553:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":16928,"name":"_choice","nodeType":"VariableDeclaration","scope":16941,"src":"6574:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16927,"name":"uint256","nodeType":"ElementaryTypeName","src":"6574:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6552:38:57"},"returnParameters":{"id":16932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16931,"name":"","nodeType":"VariableDeclaration","scope":16941,"src":"6613:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16930,"name":"uint256","nodeType":"ElementaryTypeName","src":"6613:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6612:9:57"},"scope":17111,"src":"6533:150:57","stateMutability":"view","superFunction":19803,"visibility":"external"},{"body":{"id":16952,"nodeType":"Block","src":"6907:47:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":16949,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16943,"src":"6935:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":16948,"name":"_isVotable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19680,"src":"6924:10:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":16950,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6924:23:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":16947,"id":16951,"nodeType":"Return","src":"6917:30:57"}]},"documentation":"@dev isVotable check if the proposal is votable\n@param _proposalId the ID of the proposal\n@return bool true or false","id":16953,"implemented":true,"kind":"function","modifiers":[],"name":"isVotable","nodeType":"FunctionDefinition","parameters":{"id":16944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16943,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16953,"src":"6858:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6858:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6857:21:57"},"returnParameters":{"id":16947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16946,"name":"","nodeType":"VariableDeclaration","scope":16953,"src":"6901:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":16945,"name":"bool","nodeType":"ElementaryTypeName","src":"6901:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6900:6:57"},"scope":17111,"src":"6839:115:57","stateMutability":"view","superFunction":19794,"visibility":"external"},{"body":{"id":16992,"nodeType":"Block","src":"7367:258:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16966,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7402:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16968,"indexExpression":{"argumentTypes":null,"id":16967,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7412:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7402:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"7402:38:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16971,"indexExpression":{"argumentTypes":null,"id":16970,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"7441:3:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7402:43:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16972,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7463:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16974,"indexExpression":{"argumentTypes":null,"id":16973,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7473:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7463:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"7463:38:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16977,"indexExpression":{"argumentTypes":null,"id":16976,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"7502:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7463:42:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16978,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7523:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16980,"indexExpression":{"argumentTypes":null,"id":16979,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7533:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7523:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16981,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"7523:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16983,"indexExpression":{"argumentTypes":null,"id":16982,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"7553:3:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7523:34:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":16984,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7575:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":16986,"indexExpression":{"argumentTypes":null,"id":16985,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16955,"src":"7585:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7575:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":16987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"7575:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":16989,"indexExpression":{"argumentTypes":null,"id":16988,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"7605:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7575:33:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":16990,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7384:234:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256,uint256,uint256)"}},"functionReturnParameters":16965,"id":16991,"nodeType":"Return","src":"7377:241:57"}]},"documentation":"@dev proposalStatus return the total votes and stakes for a given proposal\n@param _proposalId the ID of the proposal\n@return uint256 preBoostedVotes YES\n@return uint256 preBoostedVotes NO\n@return uint256 total stakes YES\n@return uint256 total stakes NO","id":16993,"implemented":true,"kind":"function","modifiers":[],"name":"proposalStatus","nodeType":"FunctionDefinition","parameters":{"id":16956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16955,"name":"_proposalId","nodeType":"VariableDeclaration","scope":16993,"src":"7288:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16954,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7288:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7287:21:57"},"returnParameters":{"id":16965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16958,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7331:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16957,"name":"uint256","nodeType":"ElementaryTypeName","src":"7331:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16960,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7340:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16959,"name":"uint256","nodeType":"ElementaryTypeName","src":"7340:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16962,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7349:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16961,"name":"uint256","nodeType":"ElementaryTypeName","src":"7349:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":16964,"name":"","nodeType":"VariableDeclaration","scope":16993,"src":"7358:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":16963,"name":"uint256","nodeType":"ElementaryTypeName","src":"7358:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7330:36:57"},"scope":17111,"src":"7264:361:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17006,"nodeType":"Block","src":"7905:63:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17000,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"7923:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17002,"indexExpression":{"argumentTypes":null,"id":17001,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16995,"src":"7933:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7923:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"7923:37:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":17004,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7922:39:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":16999,"id":17005,"nodeType":"Return","src":"7915:46:57"}]},"documentation":"@dev getProposalOrganization return the organizationId for a given proposal\n@param _proposalId the ID of the proposal\n@return bytes32 organization identifier","id":17007,"implemented":true,"kind":"function","modifiers":[],"name":"getProposalOrganization","nodeType":"FunctionDefinition","parameters":{"id":16996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16995,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17007,"src":"7853:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16994,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7853:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7852:21:57"},"returnParameters":{"id":16999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":16998,"name":"","nodeType":"VariableDeclaration","scope":17007,"src":"7896:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":16997,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7896:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7895:9:57"},"scope":17111,"src":"7820:148:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17034,"nodeType":"Block","src":"8322:118:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17018,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"8340:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17020,"indexExpression":{"argumentTypes":null,"id":17019,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17009,"src":"8350:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8340:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17021,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"8340:30:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":17023,"indexExpression":{"argumentTypes":null,"id":17022,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"8371:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8340:39:57","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"id":17024,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"8340:44:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17025,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"8386:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17027,"indexExpression":{"argumentTypes":null,"id":17026,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17009,"src":"8396:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8386:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"8386:30:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":17030,"indexExpression":{"argumentTypes":null,"id":17029,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17011,"src":"8417:7:57","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8386:39:57","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"id":17031,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"8386:46:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17032,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8339:94:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":17017,"id":17033,"nodeType":"Return","src":"8332:101:57"}]},"documentation":"@dev getStaker return the vote and stake amount for a given proposal and staker\n@param _proposalId the ID of the proposal\n@param _staker staker address\n@return uint256 vote\n@return uint256 amount","id":17035,"implemented":true,"kind":"function","modifiers":[],"name":"getStaker","nodeType":"FunctionDefinition","parameters":{"id":17012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17009,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17035,"src":"8244:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17008,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8244:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17011,"name":"_staker","nodeType":"VariableDeclaration","scope":17035,"src":"8265:15:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17010,"name":"address","nodeType":"ElementaryTypeName","src":"8265:7:57","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"8243:38:57"},"returnParameters":{"id":17017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17014,"name":"","nodeType":"VariableDeclaration","scope":17035,"src":"8304:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17013,"name":"uint256","nodeType":"ElementaryTypeName","src":"8304:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17016,"name":"","nodeType":"VariableDeclaration","scope":17035,"src":"8313:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8313:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8303:18:57"},"scope":17111,"src":"8225:215:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17051,"nodeType":"Block","src":"8745:60:57","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17044,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"8762:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17046,"indexExpression":{"argumentTypes":null,"id":17045,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17037,"src":"8772:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8762:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"8762:29:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17049,"indexExpression":{"argumentTypes":null,"id":17048,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17039,"src":"8792:5:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8762:36:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17043,"id":17050,"nodeType":"Return","src":"8755:43:57"}]},"documentation":"@dev voteStake return the amount stakes for a given proposal and vote\n@param _proposalId the ID of the proposal\n@param _vote vote number\n@return uint256 stake amount","id":17052,"implemented":true,"kind":"function","modifiers":[],"name":"voteStake","nodeType":"FunctionDefinition","parameters":{"id":17040,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17037,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17052,"src":"8678:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17036,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8678:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17039,"name":"_vote","nodeType":"VariableDeclaration","scope":17052,"src":"8699:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17038,"name":"uint256","nodeType":"ElementaryTypeName","src":"8699:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8677:36:57"},"returnParameters":{"id":17043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17042,"name":"","nodeType":"VariableDeclaration","scope":17052,"src":"8736:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17041,"name":"uint256","nodeType":"ElementaryTypeName","src":"8736:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"8735:9:57"},"scope":17111,"src":"8659:146:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17064,"nodeType":"Block","src":"9044:58:57","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17059,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9061:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17061,"indexExpression":{"argumentTypes":null,"id":17060,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17054,"src":"9071:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9061:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"9061:34:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17058,"id":17063,"nodeType":"Return","src":"9054:41:57"}]},"documentation":"@dev voteStake return the winningVote for a given proposal\n@param _proposalId the ID of the proposal\n@return uint256 winningVote","id":17065,"implemented":true,"kind":"function","modifiers":[],"name":"winningVote","nodeType":"FunctionDefinition","parameters":{"id":17055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17054,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17065,"src":"8992:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17053,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8992:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"8991:21:57"},"returnParameters":{"id":17058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17057,"name":"","nodeType":"VariableDeclaration","scope":17065,"src":"9035:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17056,"name":"uint256","nodeType":"ElementaryTypeName","src":"9035:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9034:9:57"},"scope":17111,"src":"8971:131:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17077,"nodeType":"Block","src":"9352:52:57","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17072,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9369:9:57","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17074,"indexExpression":{"argumentTypes":null,"id":17073,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17067,"src":"9379:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9369:22:57","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17075,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"9369:28:57","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"functionReturnParameters":17071,"id":17076,"nodeType":"Return","src":"9362:35:57"}]},"documentation":"@dev voteStake return the state for a given proposal\n@param _proposalId the ID of the proposal\n@return ProposalState proposal state","id":17078,"implemented":true,"kind":"function","modifiers":[],"name":"state","nodeType":"FunctionDefinition","parameters":{"id":17068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17067,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17078,"src":"9294:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17066,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9294:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9293:21:57"},"returnParameters":{"id":17071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17070,"name":"","nodeType":"VariableDeclaration","scope":17078,"src":"9337:13:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":17069,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"9337:13:57","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"src":"9336:15:57"},"scope":17111,"src":"9279:125:57","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":{"id":17085,"nodeType":"Block","src":"9585:29:57","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":17083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9602:5:57","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":17082,"id":17084,"nodeType":"Return","src":"9595:12:57"}]},"documentation":"@dev isAbstainAllow returns if the voting machine allow abstain (0)\n@return bool true or false","id":17086,"implemented":true,"kind":"function","modifiers":[],"name":"isAbstainAllow","nodeType":"FunctionDefinition","parameters":{"id":17079,"nodeType":"ParameterList","parameters":[],"src":"9554:2:57"},"returnParameters":{"id":17082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17081,"name":"","nodeType":"VariableDeclaration","scope":17086,"src":"9579:4:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17080,"name":"bool","nodeType":"ElementaryTypeName","src":"9579:4:57","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"9578:6:57"},"scope":17111,"src":"9531:83:57","stateMutability":"pure","superFunction":19808,"visibility":"external"},{"body":{"id":17097,"nodeType":"Block","src":"9910:33:57","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":17093,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"9928:3:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17094,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"9933:2:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17095,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"9927:9:57","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":17092,"id":17096,"nodeType":"Return","src":"9920:16:57"}]},"documentation":"@dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n@return min - minimum number of choices\nmax - maximum number of choices","id":17098,"implemented":true,"kind":"function","modifiers":[],"name":"getAllowedRangeOfChoices","nodeType":"FunctionDefinition","parameters":{"id":17087,"nodeType":"ParameterList","parameters":[],"src":"9859:2:57"},"returnParameters":{"id":17092,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17089,"name":"min","nodeType":"VariableDeclaration","scope":17098,"src":"9884:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17088,"name":"uint256","nodeType":"ElementaryTypeName","src":"9884:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17091,"name":"max","nodeType":"VariableDeclaration","scope":17098,"src":"9897:11:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17090,"name":"uint256","nodeType":"ElementaryTypeName","src":"9897:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9883:26:57"},"scope":17111,"src":"9826:117:57","stateMutability":"pure","superFunction":19815,"visibility":"external"},{"body":{"id":17109,"nodeType":"Block","src":"10162:44:57","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17106,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17100,"src":"10187:11:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17105,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"10180:6:57","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":17107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10180:19:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":17104,"id":17108,"nodeType":"Return","src":"10172:27:57"}]},"documentation":"@dev score return the proposal score\n@param _proposalId the ID of the proposal\n@return uint256 proposal score.","id":17110,"implemented":true,"kind":"function","modifiers":[],"name":"score","nodeType":"FunctionDefinition","parameters":{"id":17101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17100,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17110,"src":"10112:19:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17099,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10112:7:57","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"10111:21:57"},"returnParameters":{"id":17104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17103,"name":"","nodeType":"VariableDeclaration","scope":17110,"src":"10153:7:57","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17102,"name":"uint256","nodeType":"ElementaryTypeName","src":"10153:7:57","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"10152:9:57"},"scope":17111,"src":"10097:109:57","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":17112,"src":"221:9987:57"}],"src":"0:10209:57"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.244Z","devdoc":{"methods":{"calcExecuteCallBounty(bytes32)":{"details":"calcExecuteCallBounty calculate the execute boosted call bounty","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 executeCallBounty"},"cancelVote(bytes32)":{"details":"Cancel the vote of the msg.sender. cancel vote is not allow in genesisProtocol so this function doing nothing. This function is here in order to comply to the IntVoteInterface ."},"constructor":{"details":"Constructor"},"execute(bytes32)":{"details":"execute check if the proposal has been decided, and if so, execute the proposal","params":{"_proposalId":"the id of the proposal"},"return":"bool true - the proposal has been executed false - otherwise."},"executeBoosted(bytes32)":{"details":"executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function. P = t/150, where t is the number of seconds passed since the the proposal's timeout. P is capped by 10%.","params":{"_proposalId":"the id of the proposal"},"return":"uint256 expirationCallBounty the bounty amount for the expiration call"},"getAllowedRangeOfChoices()":{"details":"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.","return":"min - minimum number of choices max - maximum number of choices"},"getNumberOfChoices(bytes32)":{"details":"getNumberOfChoices returns the number of choices possible in this proposal","return":"uint256 that contains number of choices"},"getParametersHash(uint256[11],address)":{"details":"hashParameters returns a hash of the given parameters"},"getProposalOrganization(bytes32)":{"details":"getProposalOrganization return the organizationId for a given proposal","params":{"_proposalId":"the ID of the proposal"},"return":"bytes32 organization identifier"},"getProposalTimes(bytes32)":{"details":"getProposalTimes returns proposals times variables.","params":{"_proposalId":"id of the proposal"},"return":"proposals times array"},"getStaker(bytes32,address)":{"details":"getStaker return the vote and stake amount for a given proposal and staker","params":{"_proposalId":"the ID of the proposal","_staker":"staker address"},"return":"uint256 voteuint256 amount"},"isAbstainAllow()":{"details":"isAbstainAllow returns if the voting machine allow abstain (0)","return":"bool true or false"},"isVotable(bytes32)":{"details":"isVotable check if the proposal is votable","params":{"_proposalId":"the ID of the proposal"},"return":"bool true or false"},"proposalStatus(bytes32)":{"details":"proposalStatus return the total votes and stakes for a given proposal","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 preBoostedVotes YESuint256 preBoostedVotes NOuint256 total stakes YESuint256 total stakes NO"},"propose(uint256,bytes32,address,address)":{"details":"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.","params":{"_organization":"address","_paramsHash":"parameters hash","_proposer":"address"}},"redeem(bytes32,address)":{"details":"redeem a reward for a successful stake, vote or proposing. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.","params":{"_beneficiary":"- the beneficiary address","_proposalId":"the ID of the proposal"},"return":"rewards - [0] stakerTokenReward [1] voterReputationReward [2] proposerReputationReward"},"redeemDaoBounty(bytes32,address)":{"details":"redeemDaoBounty a reward for a successful stake. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.","params":{"_beneficiary":"- the beneficiary address","_proposalId":"the ID of the proposal"},"return":"redeemedAmount - redeem token amountpotentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )"},"score(bytes32)":{"details":"score return the proposal score","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 proposal score."},"setParameters(uint256[11],address)":{"details":"hash the parameters, save them if necessary, and return the hash value","params":{"_params":"a parameters array _params[0] - _queuedVoteRequiredPercentage, _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode. _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode. _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation state (stable) before boosted. _params[4] -_thresholdConst _params[5] -_quietEndingPeriod _params[6] -_proposingRepReward _params[7] -_votersReputationLossRatio _params[8] -_minimumDaoBounty _params[9] -_daoBountyConst _params[10] -_activationTime","_voteOnBehalf":"- authorized to vote on behalf of others."}},"shouldBoost(bytes32)":{"details":"shouldBoost check if a proposal should be shifted to boosted phase.","params":{"_proposalId":"the ID of the proposal"},"return":"bool true or false."},"stake(bytes32,uint256,uint256)":{"details":"staking function","params":{"_amount":"the betting amount","_proposalId":"id of the proposal","_vote":"NO(2) or YES(1)."},"return":"bool true - the proposal has been executed false - otherwise."},"stakeWithSignature(bytes32,uint256,uint256,uint256,uint256,bytes)":{"details":"stakeWithSignature function","params":{"_amount":"the betting amount","_nonce":"nonce value ,it is part of the signature to ensure that a signature can be received only once.","_proposalId":"id of the proposal","_signature":"- signed data by the staker","_signatureType":"signature type 1 - for web3.eth.sign 2 - for eth_signTypedData according to EIP #712.","_vote":"NO(2) or YES(1)."},"return":"bool true - the proposal has been executed false - otherwise."},"state(bytes32)":{"details":"voteStake return the state for a given proposal","params":{"_proposalId":"the ID of the proposal"},"return":"ProposalState proposal state"},"threshold(bytes32,bytes32)":{"details":"threshold return the organization's score threshold which required by a proposal to shift to boosted state. This threshold is dynamically set and it depend on the number of boosted proposal.","params":{"_organizationId":"the organization identifier","_paramsHash":"the organization parameters hash"},"return":"uint256 organization's score threshold as real number."},"vote(bytes32,uint256,uint256,address)":{"details":"voting function","params":{"_amount":"the reputation amount to vote with . if _amount == 0 it will use all voter reputation.","_proposalId":"id of the proposal","_vote":"NO(2) or YES(1).","_voter":"voter address"},"return":"bool true - the proposal has been executed false - otherwise."},"voteInfo(bytes32,address)":{"details":"voteInfo returns the vote and the amount of reputation of the user committed to this proposal","params":{"_proposalId":"the ID of the proposal","_voter":"the address of the voter"},"return":"uint256 vote - the voters vote uint256 reputation - amount of reputation committed by _voter to _proposalId"},"voteStake(bytes32,uint256)":{"details":"voteStake return the amount stakes for a given proposal and vote","params":{"_proposalId":"the ID of the proposal","_vote":"vote number"},"return":"uint256 stake amount"},"voteStatus(bytes32,uint256)":{"details":"voteStatus returns the reputation voted for a proposal for a specific voting choice.","params":{"_choice":"the index in the","_proposalId":"the ID of the proposal"},"return":"voted reputation for the given choice"},"winningVote(bytes32)":{"details":"voteStake return the winningVote for a given proposal","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 winningVote"}},"title":"GenesisProtocol implementation -an organization's voting machine scheme."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocolCallbacksMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocolCallbacksMock.json new file mode 100644 index 00000000..6e4eade8 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocolCallbacksMock.json @@ -0,0 +1 @@ +{"contractName":"GenesisProtocolCallbacksMock","abi":[{"inputs":[{"internalType":"contract Reputation","name":"_reputation","type":"address"},{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"contract GenesisProtocol","name":"_genesisProtocol","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_msg","type":"address"}],"name":"LogAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_msg","type":"bool"}],"name":"LogBool","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes","name":"_msg","type":"bytes"}],"name":"LogBytes","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_msg","type":"bytes32"}],"name":"LogBytes32","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"int256","name":"_msg","type":"int256"}],"name":"LogInt","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"_msg","type":"string"}],"name":"LogString","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_msg","type":"uint256"}],"name":"LogUint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"genesisProtocol","outputs":[{"internalType":"contract GenesisProtocol","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsBlockNumbers","outputs":[{"internalType":"uint256","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":"reputation","outputs":[{"internalType":"contract Reputation","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[11]","name":"_params","type":"uint256[11]"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_decision","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"burnReputationTest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"setProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract Reputation\",\"name\":\"_reputation\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"contract GenesisProtocol\",\"name\":\"_genesisProtocol\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_msg\",\"type\":\"address\"}],\"name\":\"LogAddress\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_msg\",\"type\":\"bool\"}],\"name\":\"LogBool\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_msg\",\"type\":\"bytes\"}],\"name\":\"LogBytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_msg\",\"type\":\"bytes32\"}],\"name\":\"LogBytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_msg\",\"type\":\"int256\"}],\"name\":\"LogInt\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_msg\",\"type\":\"string\"}],\"name\":\"LogString\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_msg\",\"type\":\"uint256\"}],\"name\":\"LogUint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"burnReputationTest\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_decision\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"genesisProtocol\",\"outputs\":[{\"internalType\":\"contract GenesisProtocol\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsBlockNumbers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputation\",\"outputs\":[{\"internalType\":\"contract Reputation\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[11]\",\"name\":\"_params\",\"type\":\"uint256[11]\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"setProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stakingToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"constructor\":{\"details\":\"Constructor\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol\":\"GenesisProtocolCallbacksMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/test/Debug.sol\":{\"keccak256\":\"0xb3562df919e581e90561050c58ac28579762878b5eccdf42ff62ecc293a7504b\",\"urls\":[\"bzz-raw://f0c96a48d8ec70ec0d7ee1acf3f1bcbeaa46e9669672217a6d878d64c7855eeb\",\"dweb:/ipfs/QmTPQqs7kLydbSaXFkdAKzC5h9MBofindPewSgjTpLLT25\"]},\"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol\":{\"keccak256\":\"0xcaccc2b035a7407b540c8f57ba02d2e567149740a40656316b687325ce7aa0d2\",\"urls\":[\"bzz-raw://a7717de0efdd6b6495256cb9bc0592621ffb02e97433f5953a9f1607c12a4e27\",\"dweb:/ipfs/QmYFP44fPtMF37BEjBZDWbQT76UAnXFvgqLSxDGCqtrxhP\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"311:3158:55:-;;;835:275;8:9:-1;5:2;;;30:1;27;20:12;5:2;835:275:55;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;835:275:55;;;;;;;;;;;;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;-1:-1:-1;;;;;;;;;;;734:40:67;698:6;;734:40;944:10:55;:24;;-1:-1:-1;;;;;944:24:55;;;-1:-1:-1;;;;;;944:24:55;;;;;;;978:12;:28;;;;;;;;;;;1016:15;:34;;;;;;;;;;;;;;;1060:43;;1086:15;-1:-1:-1;;;;;1060:17:55;:43;:::i;:::-;835:275;;;311:3158;;788:96:63;867:10;788:96;:::o;1928:107:67:-;1061:9;-1:-1:-1;;;;;1061:7:67;:9;:::i;:::-;1053:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28;2019:8;-1:-1:-1;;;;;2000:18:67;:28;:::i;:::-;1928:107;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;-1:-1:-1;;;;;1271:10:67;:12;:::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;2136:225::-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;-1:-1:-1;;;;;;;;;;;2289:38:67;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;311:3158:55:-;;;;;;;","deployedSourceMap":"311:3158:55:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;311:3158:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2088:448;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2088:448:55;;;;;;;;-1:-1:-1;;;;;2088:448:55;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;3109:171;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3109:171:55;;;;;;;;:::i;2796:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2796:131:55;;:::i;:::-;;;;;;;;;;;;;;;;;;1642:137:67;;;:::i;:::-;;467:26:55;;;:::i;:::-;;;;-1:-1:-1;;;;;467:26:55;;;;;;;;;;;;;;499:38;;;:::i;1718:176::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1718:176:55;;;;;;:::i;857:77:67:-;;;:::i;1208:92::-;;;:::i;3286:180:55:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3286:180:55;;;;;;;;:::i;1900:182::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1900:182:55;;;;;;;:::i;2617:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2617:173:55;;;-1:-1:-1;;;;;2617:173:55;;;;;;;;;;:::i;2933:170::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2933:170:55;;:::i;1494:218::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1494:218:55;;;;;;;;;;;;;;;;;;;;;;:::i;433:28::-;;;:::i;543:52::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;543:52:55;;:::i;1116:183::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1116:183:55;;;-1:-1:-1;;;;;1116:183:55;;;;;;;;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;1305:183:55:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1305:183:55;;;-1:-1:-1;;;;;1305:183:55;;;;;;;;;;:::i;2088:448::-;2274:15;;:77;;;-1:-1:-1;;;2274:77:55;;;;;;;;;;;;;;-1:-1:-1;;;;;2274:77:55;;;;;;;;;;;;;;;;2230:7;;;;2274:15;;:23;;:77;;;;;;;;;;;;;;2230:7;2274:15;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;2274:77:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2274:77:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2274:77:55;2366;;;;;;-1:-1:-1;;;;;2366:77:55;;2274;2366;;;;;;;;;;;2274;;-1:-1:-1;2398:4:55;;2274:77;;2366;;;;;;;;;;2453:33;;;;:21;:33;;;;;2489:12;2453:48;;:33;2088:448;-1:-1:-1;;;;;;2088:448:55:o;3109:171::-;3235:38;;;-1:-1:-1;;;3235:38:55;;3267:4;3235:38;;;;;;3205:7;;-1:-1:-1;;;;;3235:23:55;;;;;:38;;;;;;;;;;;;;;;:23;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;3235:38:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3235:38:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3235:38:55;;3109:171;-1:-1:-1;;;3109:171:55:o;2796:131::-;2855:4;2871:34;;;:21;:34;;;;;2908:12;2871:49;;2855:4;2796:131::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;467:26:55:-;;;-1:-1:-1;;;;;467:26:55;;:::o;499:38::-;;;-1:-1:-1;;;;;499:38:55;;:::o;1718:176::-;1834:15;;:53;;-1:-1:-1;;;1834:53:55;;1808:7;;-1:-1:-1;;;;;1834:15:55;;:29;;1864:7;;1873:13;;1834:53;;;1864:7;1834:53;;1864:7;1834:53;1:33:-1;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;1834:53:55;;;-1:-1:-1;;;;;1834:53:55;-1:-1:-1;;;;;1834:53:55;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1834:53:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;857:77:67;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;3286:180:55:-;3393:10;;3367:7;3424:34;;;:21;:34;;;;;;;;;3393:66;;-1:-1:-1;;;3393:66:55;;-1:-1:-1;;;;;3393:66:55;;;;;;;;;;;;;;;;;;;3367:7;;3393:10;;;;;:22;;:66;;;;;3424:34;3393:66;;;;;;:10;:66;;;5:2:-1;;;;30:1;27;20:12;1900:182:55;1999:23;;;;;;;;1978:4;;1999:23;;;;;;;;;;2037:17;;;;;;;;;;;;;;;;;-1:-1:-1;2071:4:55;1900:182;;;;:::o;2617:173::-;2745:10;;:38;;;-1:-1:-1;;;2745:38:55;;-1:-1:-1;;;;;2745:38:55;;;;;;;;;;;;;;;2718:4;;2745:10;;;;;:15;;:38;;;;;;;;;;;;;;;2718:4;2745:10;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;2745:38:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2745:38:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2745:38:55;;2617:173;-1:-1:-1;;;;2617:173:55:o;2933:170::-;3036:10;;3010:7;3061:34;;;:21;:34;;;;;;;;;3036:60;;-1:-1:-1;;;3036:60:55;;;;;;;3010:7;;-1:-1:-1;;;;;3036:10:55;;:24;;:60;;;;;3061:34;3036:60;;;;;;:10;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;3036:60:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3036:60:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3036:60:55;;2933:170;-1:-1:-1;;2933:170:55:o;1494:218::-;1633:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1660:13:55;-1:-1:-1;;;;;1660:22:55;;1683:12;1697:7;1660:45;;;;;;;;;;;;;-1:-1:-1;;;;;1660:45:55;-1:-1:-1;;;;;1660:45:55;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1660:45:55;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1660:45:55;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1660:45:55;;1494:218;-1:-1:-1;;;;;1494:218:55:o;433:28::-;;;-1:-1:-1;;;;;433:28:55;;:::o;543:52::-;;;;;;;;;;;;;:::o;1116:183::-;1227:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1254:10:55;;:38;;;-1:-1:-1;;;1254:38:55;;-1:-1:-1;;;;;1254:38:55;;;;;;;;;;;;;;;:10;;;;;:15;;:38;;;;;;;;;;;;;;:10;;:38;;;5:2:-1;;;;30:1;27;20:12;1928:107:67;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;1305:183:55:-;1416:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1443:10:55;;:38;;;-1:-1:-1;;;1443:38:55;;-1:-1:-1;;;;;1443:38:55;;;;;;;;;;;;;;;:10;;;;;:15;;:38;;;;;;;;;;;;;;:10;;:38;;;5:2:-1;;;;30:1;27;20:12;788:96:63;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity ^0.5.11;\n\nimport \"../votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"../votingMachines/ProposalExecuteInterface.sol\";\nimport \"../votingMachines/GenesisProtocol.sol\";\nimport \"../Reputation.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"./Debug.sol\";\n\n\ncontract GenesisProtocolCallbacksMock is Debug, VotingMachineCallbacksInterface, ProposalExecuteInterface, Ownable {\n\n Reputation public reputation;\n IERC20 public stakingToken;\n GenesisProtocol public genesisProtocol;\n mapping (bytes32=>uint) public proposalsBlockNumbers;\n\n event NewProposal(\n bytes32 indexed _proposalId,\n address indexed _organization,\n uint256 _numOfChoices,\n address _proposer,\n bytes32 _paramsHash\n );\n\n /**\n * @dev Constructor\n */\n constructor(Reputation _reputation, IERC20 _stakingToken, GenesisProtocol _genesisProtocol) public {\n reputation = _reputation;\n stakingToken = _stakingToken;\n genesisProtocol = _genesisProtocol;\n transferOwnership(address(genesisProtocol));\n }\n\n function mintReputation(uint256 _amount, address _beneficiary, bytes32)\n external\n onlyOwner\n returns(bool)\n {\n return reputation.mint(_beneficiary, _amount);\n }\n\n function burnReputation(uint256 _amount, address _beneficiary, bytes32)\n external\n onlyOwner\n returns(bool)\n {\n return reputation.burn(_beneficiary, _amount);\n }\n\n function stakingTokenTransfer(IERC20 _stakingToken, address _beneficiary, uint256 _amount, bytes32)\n external\n onlyOwner\n returns(bool)\n {\n return _stakingToken.transfer(_beneficiary, _amount);\n }\n\n function setParameters(uint[11] calldata _params, address _voteOnBehalf) external returns(bytes32) {\n return genesisProtocol.setParameters(_params, _voteOnBehalf);\n }\n\n function executeProposal(bytes32 _proposalId, int _decision) external returns(bool) {\n emit LogBytes32(_proposalId);\n emit LogInt(_decision);\n return true;\n }\n\n function propose(uint256 _numOfChoices, bytes32 _paramsHash, address, address _proposer, address _organization)\n external\n returns\n (bytes32)\n {\n bytes32 proposalId = genesisProtocol.propose(_numOfChoices, _paramsHash, _proposer, _organization);\n emit NewProposal(proposalId, address(this), _numOfChoices, _proposer, _paramsHash);\n proposalsBlockNumbers[proposalId] = block.number;\n\n return proposalId;\n }\n\n //this function is used only for testing purpose on this mock contract\n function burnReputationTest(uint256 _amount, address _beneficiary, bytes32)\n external\n returns(bool)\n {\n return reputation.burn(_beneficiary, _amount);\n }\n\n function setProposal(bytes32 _proposalId) external returns(bool) {\n proposalsBlockNumbers[_proposalId] = block.number;\n }\n\n function getTotalReputationSupply(bytes32 _proposalId) external view returns(uint256) {\n return reputation.totalSupplyAt(proposalsBlockNumbers[_proposalId]);\n }\n\n function balanceOfStakingToken(IERC20 _stakingToken, bytes32)\n external\n view\n returns(uint256)\n {\n return _stakingToken.balanceOf(address(this));\n }\n\n function reputationOf(address _owner, bytes32 _proposalId) external view returns(uint256) {\n return reputation.balanceOfAt(_owner, proposalsBlockNumbers[_proposalId]);\n }\n\n}\n","sourcePath":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","ast":{"absolutePath":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","exportedSymbols":{"GenesisProtocolCallbacksMock":[15821]},"id":15822,"nodeType":"SourceUnit","nodes":[{"id":15528,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:55"},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"../votingMachines/VotingMachineCallbacksInterface.sol","id":15529,"nodeType":"ImportDirective","scope":15822,"sourceUnit":20032,"src":"26:63:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"../votingMachines/ProposalExecuteInterface.sol","id":15530,"nodeType":"ImportDirective","scope":15822,"sourceUnit":19829,"src":"90:56:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"../votingMachines/GenesisProtocol.sol","id":15531,"nodeType":"ImportDirective","scope":15822,"sourceUnit":17112,"src":"147:47:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"../Reputation.sol","id":15532,"nodeType":"ImportDirective","scope":15822,"sourceUnit":15083,"src":"195:27:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":15533,"nodeType":"ImportDirective","scope":15822,"sourceUnit":20510,"src":"223:63:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/Debug.sol","file":"./Debug.sol","id":15534,"nodeType":"ImportDirective","scope":15822,"sourceUnit":15527,"src":"287:21:55","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":15535,"name":"Debug","nodeType":"UserDefinedTypeName","referencedDeclaration":15526,"src":"352:5:55","typeDescriptions":{"typeIdentifier":"t_contract$_Debug_$15526","typeString":"contract Debug"}},"id":15536,"nodeType":"InheritanceSpecifier","src":"352:5:55"},{"arguments":null,"baseName":{"contractScope":null,"id":15537,"name":"VotingMachineCallbacksInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":20031,"src":"359:31:55","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":15538,"nodeType":"InheritanceSpecifier","src":"359:31:55"},{"arguments":null,"baseName":{"contractScope":null,"id":15539,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"392:24:55","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":15540,"nodeType":"InheritanceSpecifier","src":"392:24:55"},{"arguments":null,"baseName":{"contractScope":null,"id":15541,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"418:7:55","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":15542,"nodeType":"InheritanceSpecifier","src":"418:7:55"}],"contractDependencies":[15526,19828,20031,20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":15821,"linearizedBaseContracts":[15821,20509,20058,19828,20031,15526],"name":"GenesisProtocolCallbacksMock","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15544,"name":"reputation","nodeType":"VariableDeclaration","scope":15821,"src":"433:28:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15543,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"433:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"constant":false,"id":15546,"name":"stakingToken","nodeType":"VariableDeclaration","scope":15821,"src":"467:26:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15545,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"467:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":15548,"name":"genesisProtocol","nodeType":"VariableDeclaration","scope":15821,"src":"499:38:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":15547,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"499:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"public"},{"constant":false,"id":15552,"name":"proposalsBlockNumbers","nodeType":"VariableDeclaration","scope":15821,"src":"543:52:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":15551,"keyType":{"id":15549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"552:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"543:23:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":15550,"name":"uint","nodeType":"ElementaryTypeName","src":"561:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":15564,"name":"NewProposal","nodeType":"EventDefinition","parameters":{"id":15563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15554,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15564,"src":"629:27:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"629:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15556,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":15564,"src":"666:29:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15555,"name":"address","nodeType":"ElementaryTypeName","src":"666:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15558,"indexed":false,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15564,"src":"705:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15557,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15560,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":15564,"src":"736:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15559,"name":"address","nodeType":"ElementaryTypeName","src":"736:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15562,"indexed":false,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15564,"src":"763:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"763:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"619:169:55"},"src":"602:187:55"},{"body":{"id":15591,"nodeType":"Block","src":"934:176:55","statements":[{"expression":{"argumentTypes":null,"id":15575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15573,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"944:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15574,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"957:11:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"944:24:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15576,"nodeType":"ExpressionStatement","src":"944:24:55"},{"expression":{"argumentTypes":null,"id":15579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15577,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15546,"src":"978:12:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15578,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"993:13:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"978:28:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15580,"nodeType":"ExpressionStatement","src":"978:28:55"},{"expression":{"argumentTypes":null,"id":15583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15581,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"1016:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15582,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15570,"src":"1034:16:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"src":"1016:34:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":15584,"nodeType":"ExpressionStatement","src":"1016:34:55"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15587,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"1086:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}],"id":15586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1078:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1078:24:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15585,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20484,"src":"1060:17:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:43:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15590,"nodeType":"ExpressionStatement","src":"1060:43:55"}]},"documentation":"@dev Constructor","id":15592,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":15571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15566,"name":"_reputation","nodeType":"VariableDeclaration","scope":15592,"src":"847:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15565,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"847:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"},{"constant":false,"id":15568,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15592,"src":"871:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15567,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"871:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15570,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":15592,"src":"893:32:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":15569,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"893:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"}],"src":"846:80:55"},"returnParameters":{"id":15572,"nodeType":"ParameterList","parameters":[],"src":"934:0:55"},"scope":15821,"src":"835:275:55","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":15611,"nodeType":"Block","src":"1237:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15607,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15596,"src":"1270:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15608,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15594,"src":"1284:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15605,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"1254:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"1254:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1254:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15604,"id":15610,"nodeType":"Return","src":"1247:45:55"}]},"documentation":null,"id":15612,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15601,"modifierName":{"argumentTypes":null,"id":15600,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1205:9:55","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1205:9:55"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":15599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15594,"name":"_amount","nodeType":"VariableDeclaration","scope":15612,"src":"1140:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1140:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15596,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15612,"src":"1157:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15595,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15598,"name":"","nodeType":"VariableDeclaration","scope":15612,"src":"1179:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1179:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1139:48:55"},"returnParameters":{"id":15604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15603,"name":"","nodeType":"VariableDeclaration","scope":15612,"src":"1227:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15602,"name":"bool","nodeType":"ElementaryTypeName","src":"1227:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1226:6:55"},"scope":15821,"src":"1116:183:55","stateMutability":"nonpayable","superFunction":19981,"visibility":"external"},{"body":{"id":15631,"nodeType":"Block","src":"1426:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15627,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15616,"src":"1459:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15628,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15614,"src":"1473:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15625,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"1443:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"1443:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1443:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15624,"id":15630,"nodeType":"Return","src":"1436:45:55"}]},"documentation":null,"id":15632,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15621,"modifierName":{"argumentTypes":null,"id":15620,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1394:9:55","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1394:9:55"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":15619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15614,"name":"_amount","nodeType":"VariableDeclaration","scope":15632,"src":"1329:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15613,"name":"uint256","nodeType":"ElementaryTypeName","src":"1329:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15616,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15632,"src":"1346:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15615,"name":"address","nodeType":"ElementaryTypeName","src":"1346:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15618,"name":"","nodeType":"VariableDeclaration","scope":15632,"src":"1368:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1368:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1328:48:55"},"returnParameters":{"id":15624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15623,"name":"","nodeType":"VariableDeclaration","scope":15632,"src":"1416:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15622,"name":"bool","nodeType":"ElementaryTypeName","src":"1416:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1415:6:55"},"scope":15821,"src":"1305:183:55","stateMutability":"nonpayable","superFunction":19992,"visibility":"external"},{"body":{"id":15653,"nodeType":"Block","src":"1643:69:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15649,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15636,"src":"1683:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15650,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15638,"src":"1697:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15647,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15634,"src":"1660:13:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"1660:22:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1660:45:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15646,"id":15652,"nodeType":"Return","src":"1653:52:55"}]},"documentation":null,"id":15654,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15643,"modifierName":{"argumentTypes":null,"id":15642,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1611:9:55","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1611:9:55"}],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":15641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15634,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15654,"src":"1524:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15633,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1524:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15636,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15654,"src":"1546:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15635,"name":"address","nodeType":"ElementaryTypeName","src":"1546:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15638,"name":"_amount","nodeType":"VariableDeclaration","scope":15654,"src":"1568:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15637,"name":"uint256","nodeType":"ElementaryTypeName","src":"1568:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15640,"name":"","nodeType":"VariableDeclaration","scope":15654,"src":"1585:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1523:70:55"},"returnParameters":{"id":15646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15645,"name":"","nodeType":"VariableDeclaration","scope":15654,"src":"1633:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15644,"name":"bool","nodeType":"ElementaryTypeName","src":"1633:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1632:6:55"},"scope":15821,"src":"1494:218:55","stateMutability":"nonpayable","superFunction":20005,"visibility":"external"},{"body":{"id":15671,"nodeType":"Block","src":"1817:77:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15667,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"1864:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},{"argumentTypes":null,"id":15668,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15660,"src":"1873:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15665,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"1834:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":15666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setParameters","nodeType":"MemberAccess","referencedDeclaration":17867,"src":"1834:29:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_uint256_$11_memory_ptr_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256[11] memory,address) external returns (bytes32)"}},"id":15669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1834:53:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15664,"id":15670,"nodeType":"Return","src":"1827:60:55"}]},"documentation":null,"id":15672,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":15661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15658,"name":"_params","nodeType":"VariableDeclaration","scope":15672,"src":"1741:25:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11]"},"typeName":{"baseType":{"id":15655,"name":"uint","nodeType":"ElementaryTypeName","src":"1741:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15657,"length":{"argumentTypes":null,"hexValue":"3131","id":15656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1746:2:55","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"nodeType":"ArrayTypeName","src":"1741:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_storage_ptr","typeString":"uint256[11]"}},"value":null,"visibility":"internal"},{"constant":false,"id":15660,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":15672,"src":"1768:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15659,"name":"address","nodeType":"ElementaryTypeName","src":"1768:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1740:50:55"},"returnParameters":{"id":15664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15663,"name":"","nodeType":"VariableDeclaration","scope":15672,"src":"1808:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1808:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1807:9:55"},"scope":15821,"src":"1718:176:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15691,"nodeType":"Block","src":"1984:98:55","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15682,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15674,"src":"2010:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15681,"name":"LogBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"1999:10:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1999:23:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15684,"nodeType":"EmitStatement","src":"1994:28:55"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15686,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"2044:9:55","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":15685,"name":"LogInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"2037:6:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":15687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2037:17:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15688,"nodeType":"EmitStatement","src":"2032:22:55"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":15689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2071:4:55","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15680,"id":15690,"nodeType":"Return","src":"2064:11:55"}]},"documentation":null,"id":15692,"implemented":true,"kind":"function","modifiers":[],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":15677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15674,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15692,"src":"1925:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1925:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15676,"name":"_decision","nodeType":"VariableDeclaration","scope":15692,"src":"1946:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15675,"name":"int","nodeType":"ElementaryTypeName","src":"1946:3:55","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1924:36:55"},"returnParameters":{"id":15680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15679,"name":"","nodeType":"VariableDeclaration","scope":15692,"src":"1978:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15678,"name":"bool","nodeType":"ElementaryTypeName","src":"1978:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1977:6:55"},"scope":15821,"src":"1900:182:55","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":15736,"nodeType":"Block","src":"2243:293:55","statements":[{"assignments":[15708],"declarations":[{"constant":false,"id":15708,"name":"proposalId","nodeType":"VariableDeclaration","scope":15736,"src":"2253:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2253:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":15716,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15711,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"2298:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15712,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"2313:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":15713,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15700,"src":"2326:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15714,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"2337:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15709,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"2274:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":15710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"2274:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":15715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:77:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2253:98:55"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15718,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"2378:10:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15720,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"2398:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}],"id":15719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2390:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2390:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15722,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"2405:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15723,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15700,"src":"2420:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15724,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"2431:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15717,"name":"NewProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15564,"src":"2366:11:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,address,uint256,address,bytes32)"}},"id":15725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2366:77:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15726,"nodeType":"EmitStatement","src":"2361:82:55"},{"expression":{"argumentTypes":null,"id":15732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15727,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"2453:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15729,"indexExpression":{"argumentTypes":null,"id":15728,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"2475:10:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2453:33:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15730,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2489:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2489:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2453:48:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15733,"nodeType":"ExpressionStatement","src":"2453:48:55"},{"expression":{"argumentTypes":null,"id":15734,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"2519:10:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15706,"id":15735,"nodeType":"Return","src":"2512:17:55"}]},"documentation":null,"id":15737,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":15703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15694,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15737,"src":"2105:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15696,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15737,"src":"2128:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2128:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15698,"name":"","nodeType":"VariableDeclaration","scope":15737,"src":"2149:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15697,"name":"address","nodeType":"ElementaryTypeName","src":"2149:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15700,"name":"_proposer","nodeType":"VariableDeclaration","scope":15737,"src":"2158:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15699,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15702,"name":"_organization","nodeType":"VariableDeclaration","scope":15737,"src":"2177:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15701,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2104:95:55"},"returnParameters":{"id":15706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15705,"name":"","nodeType":"VariableDeclaration","scope":15737,"src":"2230:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2230:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2229:9:55"},"scope":15821,"src":"2088:448:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15754,"nodeType":"Block","src":"2728:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15750,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15741,"src":"2761:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15751,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15739,"src":"2775:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15748,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"2745:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"2745:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2745:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15747,"id":15753,"nodeType":"Return","src":"2738:45:55"}]},"documentation":null,"id":15755,"implemented":true,"kind":"function","modifiers":[],"name":"burnReputationTest","nodeType":"FunctionDefinition","parameters":{"id":15744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15739,"name":"_amount","nodeType":"VariableDeclaration","scope":15755,"src":"2645:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15738,"name":"uint256","nodeType":"ElementaryTypeName","src":"2645:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15741,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15755,"src":"2662:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15740,"name":"address","nodeType":"ElementaryTypeName","src":"2662:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15743,"name":"","nodeType":"VariableDeclaration","scope":15755,"src":"2684:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2684:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2644:48:55"},"returnParameters":{"id":15747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15746,"name":"","nodeType":"VariableDeclaration","scope":15755,"src":"2718:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15745,"name":"bool","nodeType":"ElementaryTypeName","src":"2718:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2717:6:55"},"scope":15821,"src":"2617:173:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15769,"nodeType":"Block","src":"2861:66:55","statements":[{"expression":{"argumentTypes":null,"id":15767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15762,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"2871:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15764,"indexExpression":{"argumentTypes":null,"id":15763,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15757,"src":"2893:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2871:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15765,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2908:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2908:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2871:49:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15768,"nodeType":"ExpressionStatement","src":"2871:49:55"}]},"documentation":null,"id":15770,"implemented":true,"kind":"function","modifiers":[],"name":"setProposal","nodeType":"FunctionDefinition","parameters":{"id":15758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15757,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15770,"src":"2817:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2817:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2816:21:55"},"returnParameters":{"id":15761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15760,"name":"","nodeType":"VariableDeclaration","scope":15770,"src":"2855:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15759,"name":"bool","nodeType":"ElementaryTypeName","src":"2855:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2854:6:55"},"scope":15821,"src":"2796:131:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15784,"nodeType":"Block","src":"3019:84:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15779,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"3061:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15781,"indexExpression":{"argumentTypes":null,"id":15780,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15772,"src":"3083:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3061:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15777,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"3036:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":14782,"src":"3036:24:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":15782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3036:60:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15776,"id":15783,"nodeType":"Return","src":"3029:67:55"}]},"documentation":null,"id":15785,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":15773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15772,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15785,"src":"2967:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2967:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2966:21:55"},"returnParameters":{"id":15776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15775,"name":"","nodeType":"VariableDeclaration","scope":15785,"src":"3010:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15774,"name":"uint256","nodeType":"ElementaryTypeName","src":"3010:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3009:9:55"},"scope":15821,"src":"2933:170:55","stateMutability":"view","superFunction":20012,"visibility":"external"},{"body":{"id":15801,"nodeType":"Block","src":"3218:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15797,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"3267:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}],"id":15796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3259:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3259:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15794,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15787,"src":"3235:13:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"3235:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":15799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3235:38:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15793,"id":15800,"nodeType":"Return","src":"3228:45:55"}]},"documentation":null,"id":15802,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":15790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15787,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15802,"src":"3140:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15786,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3140:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15789,"name":"","nodeType":"VariableDeclaration","scope":15802,"src":"3162:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3162:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3139:31:55"},"returnParameters":{"id":15793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15792,"name":"","nodeType":"VariableDeclaration","scope":15802,"src":"3205:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3205:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3204:9:55"},"scope":15821,"src":"3109:171:55","stateMutability":"view","superFunction":20030,"visibility":"external"},{"body":{"id":15819,"nodeType":"Block","src":"3376:90:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15813,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"3416:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15814,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"3424:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15816,"indexExpression":{"argumentTypes":null,"id":15815,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"3446:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3424:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15811,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"3393:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"3393:22:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":15817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3393:66:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15810,"id":15818,"nodeType":"Return","src":"3386:73:55"}]},"documentation":null,"id":15820,"implemented":true,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":15807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15804,"name":"_owner","nodeType":"VariableDeclaration","scope":15820,"src":"3308:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15803,"name":"address","nodeType":"ElementaryTypeName","src":"3308:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15806,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15820,"src":"3324:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3307:37:55"},"returnParameters":{"id":15810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15809,"name":"","nodeType":"VariableDeclaration","scope":15820,"src":"3367:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15808,"name":"uint256","nodeType":"ElementaryTypeName","src":"3367:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3366:9:55"},"scope":15821,"src":"3286:180:55","stateMutability":"view","superFunction":20021,"visibility":"external"}],"scope":15822,"src":"311:3158:55"}],"src":"0:3470:55"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/test/GenesisProtocolCallbacksMock.sol","exportedSymbols":{"GenesisProtocolCallbacksMock":[15821]},"id":15822,"nodeType":"SourceUnit","nodes":[{"id":15528,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:55"},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"../votingMachines/VotingMachineCallbacksInterface.sol","id":15529,"nodeType":"ImportDirective","scope":15822,"sourceUnit":20032,"src":"26:63:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"../votingMachines/ProposalExecuteInterface.sol","id":15530,"nodeType":"ImportDirective","scope":15822,"sourceUnit":19829,"src":"90:56:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"../votingMachines/GenesisProtocol.sol","id":15531,"nodeType":"ImportDirective","scope":15822,"sourceUnit":17112,"src":"147:47:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/Reputation.sol","file":"../Reputation.sol","id":15532,"nodeType":"ImportDirective","scope":15822,"sourceUnit":15083,"src":"195:27:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":15533,"nodeType":"ImportDirective","scope":15822,"sourceUnit":20510,"src":"223:63:55","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/test/Debug.sol","file":"./Debug.sol","id":15534,"nodeType":"ImportDirective","scope":15822,"sourceUnit":15527,"src":"287:21:55","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":15535,"name":"Debug","nodeType":"UserDefinedTypeName","referencedDeclaration":15526,"src":"352:5:55","typeDescriptions":{"typeIdentifier":"t_contract$_Debug_$15526","typeString":"contract Debug"}},"id":15536,"nodeType":"InheritanceSpecifier","src":"352:5:55"},{"arguments":null,"baseName":{"contractScope":null,"id":15537,"name":"VotingMachineCallbacksInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":20031,"src":"359:31:55","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":15538,"nodeType":"InheritanceSpecifier","src":"359:31:55"},{"arguments":null,"baseName":{"contractScope":null,"id":15539,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"392:24:55","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":15540,"nodeType":"InheritanceSpecifier","src":"392:24:55"},{"arguments":null,"baseName":{"contractScope":null,"id":15541,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"418:7:55","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":15542,"nodeType":"InheritanceSpecifier","src":"418:7:55"}],"contractDependencies":[15526,19828,20031,20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":15821,"linearizedBaseContracts":[15821,20509,20058,19828,20031,15526],"name":"GenesisProtocolCallbacksMock","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":15544,"name":"reputation","nodeType":"VariableDeclaration","scope":15821,"src":"433:28:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15543,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"433:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"public"},{"constant":false,"id":15546,"name":"stakingToken","nodeType":"VariableDeclaration","scope":15821,"src":"467:26:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15545,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"467:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":15548,"name":"genesisProtocol","nodeType":"VariableDeclaration","scope":15821,"src":"499:38:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":15547,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"499:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"public"},{"constant":false,"id":15552,"name":"proposalsBlockNumbers","nodeType":"VariableDeclaration","scope":15821,"src":"543:52:55","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":15551,"keyType":{"id":15549,"name":"bytes32","nodeType":"ElementaryTypeName","src":"552:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"543:23:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":15550,"name":"uint","nodeType":"ElementaryTypeName","src":"561:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":15564,"name":"NewProposal","nodeType":"EventDefinition","parameters":{"id":15563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15554,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15564,"src":"629:27:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15553,"name":"bytes32","nodeType":"ElementaryTypeName","src":"629:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15556,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":15564,"src":"666:29:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15555,"name":"address","nodeType":"ElementaryTypeName","src":"666:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15558,"indexed":false,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15564,"src":"705:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15557,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15560,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":15564,"src":"736:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15559,"name":"address","nodeType":"ElementaryTypeName","src":"736:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15562,"indexed":false,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15564,"src":"763:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15561,"name":"bytes32","nodeType":"ElementaryTypeName","src":"763:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"619:169:55"},"src":"602:187:55"},{"body":{"id":15591,"nodeType":"Block","src":"934:176:55","statements":[{"expression":{"argumentTypes":null,"id":15575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15573,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"944:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15574,"name":"_reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15566,"src":"957:11:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"src":"944:24:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15576,"nodeType":"ExpressionStatement","src":"944:24:55"},{"expression":{"argumentTypes":null,"id":15579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15577,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15546,"src":"978:12:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15578,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15568,"src":"993:13:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"978:28:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15580,"nodeType":"ExpressionStatement","src":"978:28:55"},{"expression":{"argumentTypes":null,"id":15583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15581,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"1016:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":15582,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15570,"src":"1034:16:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"src":"1016:34:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":15584,"nodeType":"ExpressionStatement","src":"1016:34:55"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15587,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"1086:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}],"id":15586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1078:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15588,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1078:24:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":15585,"name":"transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20484,"src":"1060:17:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":15589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1060:43:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15590,"nodeType":"ExpressionStatement","src":"1060:43:55"}]},"documentation":"@dev Constructor","id":15592,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":15571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15566,"name":"_reputation","nodeType":"VariableDeclaration","scope":15592,"src":"847:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"},"typeName":{"contractScope":null,"id":15565,"name":"Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":15082,"src":"847:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"value":null,"visibility":"internal"},{"constant":false,"id":15568,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15592,"src":"871:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15567,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"871:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15570,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":15592,"src":"893:32:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":15569,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"893:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"}],"src":"846:80:55"},"returnParameters":{"id":15572,"nodeType":"ParameterList","parameters":[],"src":"934:0:55"},"scope":15821,"src":"835:275:55","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":15611,"nodeType":"Block","src":"1237:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15607,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15596,"src":"1270:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15608,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15594,"src":"1284:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15605,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"1254:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mint","nodeType":"MemberAccess","referencedDeclaration":14844,"src":"1254:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1254:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15604,"id":15610,"nodeType":"Return","src":"1247:45:55"}]},"documentation":null,"id":15612,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15601,"modifierName":{"argumentTypes":null,"id":15600,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1205:9:55","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1205:9:55"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":15599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15594,"name":"_amount","nodeType":"VariableDeclaration","scope":15612,"src":"1140:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15593,"name":"uint256","nodeType":"ElementaryTypeName","src":"1140:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15596,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15612,"src":"1157:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15595,"name":"address","nodeType":"ElementaryTypeName","src":"1157:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15598,"name":"","nodeType":"VariableDeclaration","scope":15612,"src":"1179:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15597,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1179:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1139:48:55"},"returnParameters":{"id":15604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15603,"name":"","nodeType":"VariableDeclaration","scope":15612,"src":"1227:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15602,"name":"bool","nodeType":"ElementaryTypeName","src":"1227:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1226:6:55"},"scope":15821,"src":"1116:183:55","stateMutability":"nonpayable","superFunction":19981,"visibility":"external"},{"body":{"id":15631,"nodeType":"Block","src":"1426:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15627,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15616,"src":"1459:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15628,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15614,"src":"1473:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15625,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"1443:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"1443:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1443:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15624,"id":15630,"nodeType":"Return","src":"1436:45:55"}]},"documentation":null,"id":15632,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15621,"modifierName":{"argumentTypes":null,"id":15620,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1394:9:55","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1394:9:55"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":15619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15614,"name":"_amount","nodeType":"VariableDeclaration","scope":15632,"src":"1329:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15613,"name":"uint256","nodeType":"ElementaryTypeName","src":"1329:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15616,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15632,"src":"1346:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15615,"name":"address","nodeType":"ElementaryTypeName","src":"1346:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15618,"name":"","nodeType":"VariableDeclaration","scope":15632,"src":"1368:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15617,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1368:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1328:48:55"},"returnParameters":{"id":15624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15623,"name":"","nodeType":"VariableDeclaration","scope":15632,"src":"1416:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15622,"name":"bool","nodeType":"ElementaryTypeName","src":"1416:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1415:6:55"},"scope":15821,"src":"1305:183:55","stateMutability":"nonpayable","superFunction":19992,"visibility":"external"},{"body":{"id":15653,"nodeType":"Block","src":"1643:69:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15649,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15636,"src":"1683:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15650,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15638,"src":"1697:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15647,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15634,"src":"1660:13:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"1660:22:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1660:45:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15646,"id":15652,"nodeType":"Return","src":"1653:52:55"}]},"documentation":null,"id":15654,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":15643,"modifierName":{"argumentTypes":null,"id":15642,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1611:9:55","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1611:9:55"}],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":15641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15634,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15654,"src":"1524:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15633,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1524:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15636,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15654,"src":"1546:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15635,"name":"address","nodeType":"ElementaryTypeName","src":"1546:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15638,"name":"_amount","nodeType":"VariableDeclaration","scope":15654,"src":"1568:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15637,"name":"uint256","nodeType":"ElementaryTypeName","src":"1568:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15640,"name":"","nodeType":"VariableDeclaration","scope":15654,"src":"1585:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15639,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1585:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1523:70:55"},"returnParameters":{"id":15646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15645,"name":"","nodeType":"VariableDeclaration","scope":15654,"src":"1633:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15644,"name":"bool","nodeType":"ElementaryTypeName","src":"1633:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1632:6:55"},"scope":15821,"src":"1494:218:55","stateMutability":"nonpayable","superFunction":20005,"visibility":"external"},{"body":{"id":15671,"nodeType":"Block","src":"1817:77:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15667,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15658,"src":"1864:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},{"argumentTypes":null,"id":15668,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15660,"src":"1873:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15665,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"1834:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":15666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setParameters","nodeType":"MemberAccess","referencedDeclaration":17867,"src":"1834:29:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_uint256_$11_memory_ptr_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256[11] memory,address) external returns (bytes32)"}},"id":15669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1834:53:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15664,"id":15670,"nodeType":"Return","src":"1827:60:55"}]},"documentation":null,"id":15672,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":15661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15658,"name":"_params","nodeType":"VariableDeclaration","scope":15672,"src":"1741:25:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11]"},"typeName":{"baseType":{"id":15655,"name":"uint","nodeType":"ElementaryTypeName","src":"1741:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15657,"length":{"argumentTypes":null,"hexValue":"3131","id":15656,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1746:2:55","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"nodeType":"ArrayTypeName","src":"1741:8:55","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_storage_ptr","typeString":"uint256[11]"}},"value":null,"visibility":"internal"},{"constant":false,"id":15660,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":15672,"src":"1768:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15659,"name":"address","nodeType":"ElementaryTypeName","src":"1768:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1740:50:55"},"returnParameters":{"id":15664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15663,"name":"","nodeType":"VariableDeclaration","scope":15672,"src":"1808:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15662,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1808:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1807:9:55"},"scope":15821,"src":"1718:176:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15691,"nodeType":"Block","src":"1984:98:55","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15682,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15674,"src":"2010:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15681,"name":"LogBytes32","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15521,"src":"1999:10:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":15683,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1999:23:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15684,"nodeType":"EmitStatement","src":"1994:28:55"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15686,"name":"_decision","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15676,"src":"2044:9:55","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":15685,"name":"LogInt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15505,"src":"2037:6:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_int256_$returns$__$","typeString":"function (int256)"}},"id":15687,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2037:17:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15688,"nodeType":"EmitStatement","src":"2032:22:55"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":15689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2071:4:55","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":15680,"id":15690,"nodeType":"Return","src":"2064:11:55"}]},"documentation":null,"id":15692,"implemented":true,"kind":"function","modifiers":[],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":15677,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15674,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15692,"src":"1925:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15673,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1925:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15676,"name":"_decision","nodeType":"VariableDeclaration","scope":15692,"src":"1946:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":15675,"name":"int","nodeType":"ElementaryTypeName","src":"1946:3:55","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1924:36:55"},"returnParameters":{"id":15680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15679,"name":"","nodeType":"VariableDeclaration","scope":15692,"src":"1978:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15678,"name":"bool","nodeType":"ElementaryTypeName","src":"1978:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1977:6:55"},"scope":15821,"src":"1900:182:55","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":15736,"nodeType":"Block","src":"2243:293:55","statements":[{"assignments":[15708],"declarations":[{"constant":false,"id":15708,"name":"proposalId","nodeType":"VariableDeclaration","scope":15736,"src":"2253:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15707,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2253:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":15716,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15711,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"2298:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15712,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"2313:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":15713,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15700,"src":"2326:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15714,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15702,"src":"2337:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15709,"name":"genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15548,"src":"2274:15:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":15710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":17594,"src":"2274:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":15715,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2274:77:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2253:98:55"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15718,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"2378:10:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15720,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"2398:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}],"id":15719,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2390:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2390:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15722,"name":"_numOfChoices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15694,"src":"2405:13:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15723,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15700,"src":"2420:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15724,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15696,"src":"2431:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":15717,"name":"NewProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15564,"src":"2366:11:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,address,uint256,address,bytes32)"}},"id":15725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2366:77:55","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15726,"nodeType":"EmitStatement","src":"2361:82:55"},{"expression":{"argumentTypes":null,"id":15732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15727,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"2453:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15729,"indexExpression":{"argumentTypes":null,"id":15728,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"2475:10:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2453:33:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15730,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2489:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2489:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2453:48:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15733,"nodeType":"ExpressionStatement","src":"2453:48:55"},{"expression":{"argumentTypes":null,"id":15734,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15708,"src":"2519:10:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":15706,"id":15735,"nodeType":"Return","src":"2512:17:55"}]},"documentation":null,"id":15737,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":15703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15694,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":15737,"src":"2105:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15693,"name":"uint256","nodeType":"ElementaryTypeName","src":"2105:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15696,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":15737,"src":"2128:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15695,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2128:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":15698,"name":"","nodeType":"VariableDeclaration","scope":15737,"src":"2149:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15697,"name":"address","nodeType":"ElementaryTypeName","src":"2149:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15700,"name":"_proposer","nodeType":"VariableDeclaration","scope":15737,"src":"2158:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15699,"name":"address","nodeType":"ElementaryTypeName","src":"2158:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15702,"name":"_organization","nodeType":"VariableDeclaration","scope":15737,"src":"2177:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15701,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2104:95:55"},"returnParameters":{"id":15706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15705,"name":"","nodeType":"VariableDeclaration","scope":15737,"src":"2230:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15704,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2230:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2229:9:55"},"scope":15821,"src":"2088:448:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15754,"nodeType":"Block","src":"2728:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15750,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15741,"src":"2761:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":15751,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15739,"src":"2775:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15748,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"2745:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burn","nodeType":"MemberAccess","referencedDeclaration":14903,"src":"2745:15:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":15752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2745:38:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":15747,"id":15753,"nodeType":"Return","src":"2738:45:55"}]},"documentation":null,"id":15755,"implemented":true,"kind":"function","modifiers":[],"name":"burnReputationTest","nodeType":"FunctionDefinition","parameters":{"id":15744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15739,"name":"_amount","nodeType":"VariableDeclaration","scope":15755,"src":"2645:15:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15738,"name":"uint256","nodeType":"ElementaryTypeName","src":"2645:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15741,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":15755,"src":"2662:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15740,"name":"address","nodeType":"ElementaryTypeName","src":"2662:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15743,"name":"","nodeType":"VariableDeclaration","scope":15755,"src":"2684:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2684:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2644:48:55"},"returnParameters":{"id":15747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15746,"name":"","nodeType":"VariableDeclaration","scope":15755,"src":"2718:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15745,"name":"bool","nodeType":"ElementaryTypeName","src":"2718:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2717:6:55"},"scope":15821,"src":"2617:173:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15769,"nodeType":"Block","src":"2861:66:55","statements":[{"expression":{"argumentTypes":null,"id":15767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15762,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"2871:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15764,"indexExpression":{"argumentTypes":null,"id":15763,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15757,"src":"2893:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2871:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15765,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2908:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15766,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2908:12:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2871:49:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15768,"nodeType":"ExpressionStatement","src":"2871:49:55"}]},"documentation":null,"id":15770,"implemented":true,"kind":"function","modifiers":[],"name":"setProposal","nodeType":"FunctionDefinition","parameters":{"id":15758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15757,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15770,"src":"2817:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2817:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2816:21:55"},"returnParameters":{"id":15761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15760,"name":"","nodeType":"VariableDeclaration","scope":15770,"src":"2855:4:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":15759,"name":"bool","nodeType":"ElementaryTypeName","src":"2855:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2854:6:55"},"scope":15821,"src":"2796:131:55","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":15784,"nodeType":"Block","src":"3019:84:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15779,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"3061:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15781,"indexExpression":{"argumentTypes":null,"id":15780,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15772,"src":"3083:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3061:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15777,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"3036:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":14782,"src":"3036:24:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":15782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3036:60:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15776,"id":15783,"nodeType":"Return","src":"3029:67:55"}]},"documentation":null,"id":15785,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":15773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15772,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15785,"src":"2967:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2967:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2966:21:55"},"returnParameters":{"id":15776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15775,"name":"","nodeType":"VariableDeclaration","scope":15785,"src":"3010:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15774,"name":"uint256","nodeType":"ElementaryTypeName","src":"3010:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3009:9:55"},"scope":15821,"src":"2933:170:55","stateMutability":"view","superFunction":20012,"visibility":"external"},{"body":{"id":15801,"nodeType":"Block","src":"3218:62:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15797,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21215,"src":"3267:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolCallbacksMock_$15821","typeString":"contract GenesisProtocolCallbacksMock"}],"id":15796,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3259:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":15798,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3259:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":15794,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15787,"src":"3235:13:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":15795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"3235:23:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":15799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3235:38:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15793,"id":15800,"nodeType":"Return","src":"3228:45:55"}]},"documentation":null,"id":15802,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":15790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15787,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":15802,"src":"3140:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":15786,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3140:6:55","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":15789,"name":"","nodeType":"VariableDeclaration","scope":15802,"src":"3162:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3162:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3139:31:55"},"returnParameters":{"id":15793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15792,"name":"","nodeType":"VariableDeclaration","scope":15802,"src":"3205:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15791,"name":"uint256","nodeType":"ElementaryTypeName","src":"3205:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3204:9:55"},"scope":15821,"src":"3109:171:55","stateMutability":"view","superFunction":20030,"visibility":"external"},{"body":{"id":15819,"nodeType":"Block","src":"3376:90:55","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15813,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15804,"src":"3416:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15814,"name":"proposalsBlockNumbers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15552,"src":"3424:21:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":15816,"indexExpression":{"argumentTypes":null,"id":15815,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15806,"src":"3446:11:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3424:34:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":15811,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15544,"src":"3393:10:55","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":15812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"3393:22:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":15817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3393:66:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15810,"id":15818,"nodeType":"Return","src":"3386:73:55"}]},"documentation":null,"id":15820,"implemented":true,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":15807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15804,"name":"_owner","nodeType":"VariableDeclaration","scope":15820,"src":"3308:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":15803,"name":"address","nodeType":"ElementaryTypeName","src":"3308:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":15806,"name":"_proposalId","nodeType":"VariableDeclaration","scope":15820,"src":"3324:19:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":15805,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3324:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3307:37:55"},"returnParameters":{"id":15810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15809,"name":"","nodeType":"VariableDeclaration","scope":15820,"src":"3367:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15808,"name":"uint256","nodeType":"ElementaryTypeName","src":"3367:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3366:9:55"},"scope":15821,"src":"3286:180:55","stateMutability":"view","superFunction":20021,"visibility":"external"}],"scope":15822,"src":"311:3158:55"}],"src":"0:3470:55"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.237Z","devdoc":{"methods":{"constructor":{"details":"Constructor"},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocolLogic.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocolLogic.json new file mode 100644 index 00000000..9758410c --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GenesisProtocolLogic.json @@ -0,0 +1 @@ +{"contractName":"GenesisProtocolLogic","abi":[{"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"}],"name":"CancelProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"}],"name":"CancelVoting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_confidenceThreshold","type":"uint256"}],"name":"ConfidenceLevelChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_decision","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalReputation","type":"uint256"}],"name":"ExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ExpirationCallBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"enum GenesisProtocolLogic.ExecutionState","name":"_executionState","type":"uint8"}],"name":"GPExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemDaoBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"RedeemReputation","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"enum GenesisProtocolLogic.ProposalState","name":"_proposalState","type":"uint8"}],"name":"StateChange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"VoteProposal","type":"event"},{"constant":true,"inputs":[],"name":"NO","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"NUM_OF_CHOICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"YES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"averagesDownstakesOfBoosted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"cancelVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAllowedRangeOfChoices","outputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getNumberOfChoices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isAbstainAllow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"isVotable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"orgBoostedProposalsCnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizations","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"uint256","name":"queuedVoteRequiredPercentage","type":"uint256"},{"internalType":"uint256","name":"queuedVotePeriodLimit","type":"uint256"},{"internalType":"uint256","name":"boostedVotePeriodLimit","type":"uint256"},{"internalType":"uint256","name":"preBoostedVotePeriodLimit","type":"uint256"},{"internalType":"uint256","name":"thresholdConst","type":"uint256"},{"internalType":"uint256","name":"limitExponentValue","type":"uint256"},{"internalType":"uint256","name":"quietEndingPeriod","type":"uint256"},{"internalType":"uint256","name":"proposingRepReward","type":"uint256"},{"internalType":"uint256","name":"votersReputationLossRatio","type":"uint256"},{"internalType":"uint256","name":"minimumDaoBounty","type":"uint256"},{"internalType":"uint256","name":"daoBountyConst","type":"uint256"},{"internalType":"uint256","name":"activationTime","type":"uint256"},{"internalType":"address","name":"voteOnBehalf","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"bytes32","name":"organizationId","type":"bytes32"},{"internalType":"address","name":"callbacks","type":"address"},{"internalType":"enum GenesisProtocolLogic.ProposalState","name":"state","type":"uint8"},{"internalType":"uint256","name":"winningVote","type":"uint256"},{"internalType":"address","name":"proposer","type":"address"},{"internalType":"uint256","name":"currentBoostedVotePeriodLimit","type":"uint256"},{"internalType":"bytes32","name":"paramsHash","type":"bytes32"},{"internalType":"uint256","name":"daoBountyRemain","type":"uint256"},{"internalType":"uint256","name":"daoBounty","type":"uint256"},{"internalType":"uint256","name":"totalStakes","type":"uint256"},{"internalType":"uint256","name":"confidenceThreshold","type":"uint256"},{"internalType":"uint256","name":"secondsFromTimeOutTillExecuteBoosted","type":"uint256"},{"internalType":"bool","name":"daoRedeemItsWinnings","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalsCnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_rep","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_choice","type":"uint256"}],"name":"voteStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"executeBoosted","outputs":[{"internalType":"uint256","name":"expirationCallBounty","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256[11]","name":"_params","type":"uint256[11]"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256[3]","name":"rewards","type":"uint256[3]"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeemDaoBounty","outputs":[{"internalType":"uint256","name":"redeemedAmount","type":"uint256"},{"internalType":"uint256","name":"potentialAmount","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"calcExecuteCallBounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"shouldBoost","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"bytes32","name":"_organizationId","type":"bytes32"}],"name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256[11]","name":"_params","type":"uint256[11]"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"CancelVoting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_confidenceThreshold\",\"type\":\"uint256\"}],\"name\":\"ConfidenceLevelChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_decision\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_totalReputation\",\"type\":\"uint256\"}],\"name\":\"ExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ExpirationCallBounty\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum GenesisProtocolLogic.ExecutionState\",\"name\":\"_executionState\",\"type\":\"uint8\"}],\"name\":\"GPExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemDaoBounty\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"RedeemReputation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_staker\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Stake\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"enum GenesisProtocolLogic.ProposalState\",\"name\":\"_proposalState\",\"type\":\"uint8\"}],\"name\":\"StateChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"VoteProposal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"NO\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"NUM_OF_CHOICES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"YES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"averagesDownstakesOfBoosted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"calcExecuteCallBounty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"cancelVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"executeBoosted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"expirationCallBounty\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllowedRangeOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256[11]\",\"name\":\"_params\",\"type\":\"uint256[11]\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAbstainAllow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"isVotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"orgBoostedProposalsCnt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"queuedVoteRequiredPercentage\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"queuedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"boostedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"preBoostedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"thresholdConst\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"limitExponentValue\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"quietEndingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"proposingRepReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"votersReputationLossRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumDaoBounty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"daoBountyConst\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"activationTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voteOnBehalf\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"organizationId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callbacks\",\"type\":\"address\"},{\"internalType\":\"enum GenesisProtocolLogic.ProposalState\",\"name\":\"state\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"winningVote\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"proposer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"currentBoostedVotePeriodLimit\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"daoBountyRemain\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"daoBounty\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"totalStakes\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"confidenceThreshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondsFromTimeOutTillExecuteBoosted\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"daoRedeemItsWinnings\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalsCnt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"rewards\",\"type\":\"uint256[3]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeemDaoBounty\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"redeemedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"potentialAmount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[11]\",\"name\":\"_params\",\"type\":\"uint256[11]\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"shouldBoost\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"stakingToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_organizationId\",\"type\":\"bytes32\"}],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rep\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_choice\",\"type\":\"uint256\"}],\"name\":\"voteStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"calcExecuteCallBounty(bytes32)\":{\"details\":\"calcExecuteCallBounty calculate the execute boosted call bounty\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 executeCallBounty\"},\"constructor\":{\"details\":\"Constructor\"},\"executeBoosted(bytes32)\":{\"details\":\"executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function. P = t/150, where t is the number of seconds passed since the the proposal's timeout. P is capped by 10%.\",\"params\":{\"_proposalId\":\"the id of the proposal\"},\"return\":\"uint256 expirationCallBounty the bounty amount for the expiration call\"},\"getAllowedRangeOfChoices()\":{\"details\":\"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\",\"return\":\"min - minimum number of choices max - maximum number of choices\"},\"getParametersHash(uint256[11],address)\":{\"details\":\"hashParameters returns a hash of the given parameters\"},\"isAbstainAllow()\":{\"details\":\"isAbstainAllow returns if the voting machine allow abstain (0)\",\"return\":\"bool true or false\"},\"propose(uint256,bytes32,address,address)\":{\"details\":\"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.\",\"params\":{\"_organization\":\"address\",\"_paramsHash\":\"parameters hash\",\"_proposer\":\"address\"}},\"redeem(bytes32,address)\":{\"details\":\"redeem a reward for a successful stake, vote or proposing. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.\",\"params\":{\"_beneficiary\":\"- the beneficiary address\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"rewards - [0] stakerTokenReward [1] voterReputationReward [2] proposerReputationReward\"},\"redeemDaoBounty(bytes32,address)\":{\"details\":\"redeemDaoBounty a reward for a successful stake. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.\",\"params\":{\"_beneficiary\":\"- the beneficiary address\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"redeemedAmount - redeem token amountpotentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )\"},\"setParameters(uint256[11],address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\",\"params\":{\"_params\":\"a parameters array _params[0] - _queuedVoteRequiredPercentage, _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode. _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode. _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation state (stable) before boosted. _params[4] -_thresholdConst _params[5] -_quietEndingPeriod _params[6] -_proposingRepReward _params[7] -_votersReputationLossRatio _params[8] -_minimumDaoBounty _params[9] -_daoBountyConst _params[10] -_activationTime\",\"_voteOnBehalf\":\"- authorized to vote on behalf of others.\"}},\"shouldBoost(bytes32)\":{\"details\":\"shouldBoost check if a proposal should be shifted to boosted phase.\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"bool true or false.\"},\"threshold(bytes32,bytes32)\":{\"details\":\"threshold return the organization's score threshold which required by a proposal to shift to boosted state. This threshold is dynamically set and it depend on the number of boosted proposal.\",\"params\":{\"_organizationId\":\"the organization identifier\",\"_paramsHash\":\"the organization parameters hash\"},\"return\":\"uint256 organization's score threshold as real number.\"},\"voteStatus(bytes32,uint256)\":{\"details\":\"voteStatus returns the reputation voted for a proposal for a specific voting choice.\",\"params\":{\"_choice\":\"the index in the\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"voted reputation for the given choice\"}},\"title\":\"GenesisProtocol implementation -an organization's voting machine scheme.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":\"GenesisProtocolLogic\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.11;\n\nimport \"./IntVoteInterface.sol\";\nimport { RealMath } from \"../libs/RealMath.sol\";\nimport \"./VotingMachineCallbacksInterface.sol\";\nimport \"./ProposalExecuteInterface.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"openzeppelin-solidity/contracts/math/Math.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"openzeppelin-solidity/contracts/utils/Address.sol\";\n\n\n\n/**\n * @title GenesisProtocol implementation -an organization's voting machine scheme.\n */\ncontract GenesisProtocolLogic is IntVoteInterface {\n using SafeMath for uint256;\n using Math for uint256;\n using RealMath for uint216;\n using RealMath for uint256;\n using Address for address;\n\n enum ProposalState { None, ExpiredInQueue, Executed, Queued, PreBoosted, Boosted, QuietEndingPeriod}\n enum ExecutionState { None, QueueBarCrossed, QueueTimeOut, PreBoostedBarCrossed, BoostedTimeOut, BoostedBarCrossed}\n\n //Organization's parameters\n struct Parameters {\n uint256 queuedVoteRequiredPercentage; // the absolute vote percentages bar.\n uint256 queuedVotePeriodLimit; //the time limit for a proposal to be in an absolute voting mode.\n uint256 boostedVotePeriodLimit; //the time limit for a proposal to be in boost mode.\n uint256 preBoostedVotePeriodLimit; //the time limit for a proposal\n //to be in an preparation state (stable) before boosted.\n uint256 thresholdConst; //constant for threshold calculation .\n //threshold =thresholdConst ** (numberOfBoostedProposals)\n uint256 limitExponentValue;// an upper limit for numberOfBoostedProposals\n //in the threshold calculation to prevent overflow\n uint256 quietEndingPeriod; //quite ending period\n uint256 proposingRepReward;//proposer reputation reward.\n uint256 votersReputationLossRatio;//Unsuccessful pre booster\n //voters lose votersReputationLossRatio% of their reputation.\n uint256 minimumDaoBounty;\n uint256 daoBountyConst;//The DAO downstake for each proposal is calculate according to the formula\n //(daoBountyConst * averageBoostDownstakes)/100 .\n uint256 activationTime;//the point in time after which proposals can be created.\n //if this address is set so only this address is allowed to vote of behalf of someone else.\n address voteOnBehalf;\n }\n\n struct Voter {\n uint256 vote; // YES(1) ,NO(2)\n uint256 reputation; // amount of voter's reputation\n bool preBoosted;\n }\n\n struct Staker {\n uint256 vote; // YES(1) ,NO(2)\n uint256 amount; // amount of staker's stake\n uint256 amount4Bounty;// amount of staker's stake used for bounty reward calculation.\n }\n\n struct Proposal {\n bytes32 organizationId; // the organization unique identifier the proposal is target to.\n address callbacks; // should fulfill voting callbacks interface.\n ProposalState state;\n uint256 winningVote; //the winning vote.\n address proposer;\n //the proposal boosted period limit . it is updated for the case of quiteWindow mode.\n uint256 currentBoostedVotePeriodLimit;\n bytes32 paramsHash;\n uint256 daoBountyRemain; //use for checking sum zero bounty claims.it is set at the proposing time.\n uint256 daoBounty;\n uint256 totalStakes;// Total number of tokens staked which can be redeemable by stakers.\n uint256 confidenceThreshold;\n uint256 secondsFromTimeOutTillExecuteBoosted;\n uint[3] times; //times[0] - submittedTime\n //times[1] - boostedPhaseTime\n //times[2] -preBoostedPhaseTime;\n bool daoRedeemItsWinnings;\n // vote reputation\n mapping(uint256 => uint256 ) votes;\n // vote reputation\n mapping(uint256 => uint256 ) preBoostedVotes;\n // address voter\n mapping(address => Voter ) voters;\n // vote stakes\n mapping(uint256 => uint256 ) stakes;\n // address staker\n mapping(address => Staker ) stakers;\n }\n\n event Stake(bytes32 indexed _proposalId,\n address indexed _organization,\n address indexed _staker,\n uint256 _vote,\n uint256 _amount\n );\n\n event Redeem(bytes32 indexed _proposalId,\n address indexed _organization,\n address indexed _beneficiary,\n uint256 _amount\n );\n\n event RedeemDaoBounty(bytes32 indexed _proposalId,\n address indexed _organization,\n address indexed _beneficiary,\n uint256 _amount\n );\n\n event RedeemReputation(bytes32 indexed _proposalId,\n address indexed _organization,\n address indexed _beneficiary,\n uint256 _amount\n );\n\n event StateChange(bytes32 indexed _proposalId, ProposalState _proposalState);\n event GPExecuteProposal(bytes32 indexed _proposalId, ExecutionState _executionState);\n event ExpirationCallBounty(bytes32 indexed _proposalId, address indexed _beneficiary, uint256 _amount);\n event ConfidenceLevelChange(bytes32 indexed _proposalId, uint256 _confidenceThreshold);\n\n mapping(bytes32=>Parameters) public parameters; // A mapping from hashes to parameters\n mapping(bytes32=>Proposal) public proposals; // Mapping from the ID of the proposal to the proposal itself.\n mapping(bytes32=>uint) public orgBoostedProposalsCnt;\n //organizationId => organization\n mapping(bytes32 => address ) public organizations;\n //organizationId => averageBoostDownstakes\n mapping(bytes32 => uint256 ) public averagesDownstakesOfBoosted;\n uint256 constant public NUM_OF_CHOICES = 2;\n uint256 constant public NO = 2;\n uint256 constant public YES = 1;\n uint256 public proposalsCnt; // Total number of proposals\n IERC20 public stakingToken;\n address constant private GEN_TOKEN_ADDRESS = 0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf;\n uint256 constant private MAX_BOOSTED_PROPOSALS = 4096;\n\n /**\n * @dev Constructor\n */\n constructor(IERC20 _stakingToken) public {\n //The GEN token (staking token) address is hard coded in the contract by GEN_TOKEN_ADDRESS .\n //This will work for a network which already hosted the GEN token on this address (e.g mainnet).\n //If such contract address does not exist in the network (e.g ganache)\n //the contract will use the _stakingToken param as the\n //staking token address.\n if (address(GEN_TOKEN_ADDRESS).isContract()) {\n stakingToken = IERC20(GEN_TOKEN_ADDRESS);\n } else {\n stakingToken = _stakingToken;\n }\n }\n\n /**\n * @dev Check that the proposal is votable\n * a proposal is votable if it is in one of the following states:\n * PreBoosted,Boosted,QuietEndingPeriod or Queued\n */\n modifier votable(bytes32 _proposalId) {\n require(_isVotable(_proposalId));\n _;\n }\n\n /**\n * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\n * generated by calculating keccak256 of a incremented counter.\n * @param _paramsHash parameters hash\n * @param _proposer address\n * @param _organization address\n */\n function propose(uint256, bytes32 _paramsHash, address _proposer, address _organization)\n external\n returns(bytes32)\n {\n // solhint-disable-next-line not-rely-on-time\n require(now > parameters[_paramsHash].activationTime, \"not active yet\");\n //Check parameters existence.\n require(parameters[_paramsHash].queuedVoteRequiredPercentage >= 50);\n // Generate a unique ID:\n bytes32 proposalId = keccak256(abi.encodePacked(this, proposalsCnt));\n proposalsCnt = proposalsCnt.add(1);\n // Open proposal:\n Proposal memory proposal;\n proposal.callbacks = msg.sender;\n proposal.organizationId = keccak256(abi.encodePacked(msg.sender, _organization));\n\n proposal.state = ProposalState.Queued;\n // solhint-disable-next-line not-rely-on-time\n proposal.times[0] = now;//submitted time\n proposal.currentBoostedVotePeriodLimit = parameters[_paramsHash].boostedVotePeriodLimit;\n proposal.proposer = _proposer;\n proposal.winningVote = NO;\n proposal.paramsHash = _paramsHash;\n if (organizations[proposal.organizationId] == address(0)) {\n if (_organization == address(0)) {\n organizations[proposal.organizationId] = msg.sender;\n } else {\n organizations[proposal.organizationId] = _organization;\n }\n }\n //calc dao bounty\n uint256 daoBounty =\n parameters[_paramsHash].daoBountyConst.mul(averagesDownstakesOfBoosted[proposal.organizationId]).div(100);\n proposal.daoBountyRemain = daoBounty.max(parameters[_paramsHash].minimumDaoBounty);\n proposals[proposalId] = proposal;\n proposals[proposalId].stakes[NO] = proposal.daoBountyRemain;//dao downstake on the proposal\n\n emit NewProposal(proposalId, organizations[proposal.organizationId], NUM_OF_CHOICES, _proposer, _paramsHash);\n return proposalId;\n }\n\n /**\n * @dev executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired\n * it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function.\n * P = t/150, where t is the number of seconds passed since the the proposal's timeout.\n * P is capped by 10%.\n * @param _proposalId the id of the proposal\n * @return uint256 expirationCallBounty the bounty amount for the expiration call\n */\n function executeBoosted(bytes32 _proposalId) external returns(uint256 expirationCallBounty) {\n Proposal storage proposal = proposals[_proposalId];\n require(proposal.state == ProposalState.Boosted || proposal.state == ProposalState.QuietEndingPeriod,\n \"proposal state in not Boosted nor QuietEndingPeriod\");\n require(_execute(_proposalId), \"proposal need to expire\");\n\n proposal.secondsFromTimeOutTillExecuteBoosted =\n // solhint-disable-next-line not-rely-on-time\n now.sub(proposal.currentBoostedVotePeriodLimit.add(proposal.times[1]));\n\n expirationCallBounty = calcExecuteCallBounty(_proposalId);\n proposal.totalStakes = proposal.totalStakes.sub(expirationCallBounty);\n require(stakingToken.transfer(msg.sender, expirationCallBounty), \"transfer to msg.sender failed\");\n emit ExpirationCallBounty(_proposalId, msg.sender, expirationCallBounty);\n }\n\n /**\n * @dev hash the parameters, save them if necessary, and return the hash value\n * @param _params a parameters array\n * _params[0] - _queuedVoteRequiredPercentage,\n * _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode.\n * _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode.\n * _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation\n * state (stable) before boosted.\n * _params[4] -_thresholdConst\n * _params[5] -_quietEndingPeriod\n * _params[6] -_proposingRepReward\n * _params[7] -_votersReputationLossRatio\n * _params[8] -_minimumDaoBounty\n * _params[9] -_daoBountyConst\n * _params[10] -_activationTime\n * @param _voteOnBehalf - authorized to vote on behalf of others.\n */\n function setParameters(\n uint[11] calldata _params, //use array here due to stack too deep issue.\n address _voteOnBehalf\n )\n external\n returns(bytes32)\n {\n require(_params[0] <= 100 && _params[0] >= 50, \"50 <= queuedVoteRequiredPercentage <= 100\");\n require(_params[4] <= 16000 && _params[4] > 1000, \"1000 < thresholdConst <= 16000\");\n require(_params[7] <= 100, \"votersReputationLossRatio <= 100\");\n require(_params[2] >= _params[5], \"boostedVotePeriodLimit >= quietEndingPeriod\");\n require(_params[8] > 0, \"minimumDaoBounty should be > 0\");\n require(_params[9] > 0, \"daoBountyConst should be > 0\");\n\n bytes32 paramsHash = getParametersHash(_params, _voteOnBehalf);\n //set a limit for power for a given alpha to prevent overflow\n uint256 limitExponent = 172;//for alpha less or equal 2\n uint256 j = 2;\n for (uint256 i = 2000; i < 16000; i = i*2) {\n if ((_params[4] > i) && (_params[4] <= i*2)) {\n limitExponent = limitExponent/j;\n break;\n }\n j++;\n }\n\n parameters[paramsHash] = Parameters({\n queuedVoteRequiredPercentage: _params[0],\n queuedVotePeriodLimit: _params[1],\n boostedVotePeriodLimit: _params[2],\n preBoostedVotePeriodLimit: _params[3],\n thresholdConst:uint216(_params[4]).fraction(uint216(1000)),\n limitExponentValue:limitExponent,\n quietEndingPeriod: _params[5],\n proposingRepReward: _params[6],\n votersReputationLossRatio:_params[7],\n minimumDaoBounty:_params[8],\n daoBountyConst:_params[9],\n activationTime:_params[10],\n voteOnBehalf:_voteOnBehalf\n });\n return paramsHash;\n }\n\n /**\n * @dev redeem a reward for a successful stake, vote or proposing.\n * The function use a beneficiary address as a parameter (and not msg.sender) to enable\n * users to redeem on behalf of someone else.\n * @param _proposalId the ID of the proposal\n * @param _beneficiary - the beneficiary address\n * @return rewards -\n * [0] stakerTokenReward\n * [1] voterReputationReward\n * [2] proposerReputationReward\n */\n // solhint-disable-next-line function-max-lines,code-complexity\n function redeem(bytes32 _proposalId, address _beneficiary) public returns (uint[3] memory rewards) {\n Proposal storage proposal = proposals[_proposalId];\n require((proposal.state == ProposalState.Executed)||(proposal.state == ProposalState.ExpiredInQueue),\n \"Proposal should be Executed or ExpiredInQueue\");\n Parameters memory params = parameters[proposal.paramsHash];\n //as staker\n Staker storage staker = proposal.stakers[_beneficiary];\n uint256 totalWinningStakes = proposal.stakes[proposal.winningVote];\n uint256 totalStakesLeftAfterCallBounty =\n proposal.stakes[NO].add(proposal.stakes[YES]).sub(calcExecuteCallBounty(_proposalId));\n if (staker.amount > 0) {\n\n if (proposal.state == ProposalState.ExpiredInQueue) {\n //Stakes of a proposal that expires in Queue are sent back to stakers\n rewards[0] = staker.amount;\n } else if (staker.vote == proposal.winningVote) {\n if (staker.vote == YES) {\n if (proposal.daoBounty < totalStakesLeftAfterCallBounty) {\n uint256 _totalStakes = totalStakesLeftAfterCallBounty.sub(proposal.daoBounty);\n rewards[0] = (staker.amount.mul(_totalStakes))/totalWinningStakes;\n }\n } else {\n rewards[0] = (staker.amount.mul(totalStakesLeftAfterCallBounty))/totalWinningStakes;\n }\n }\n staker.amount = 0;\n }\n //dao redeem its winnings\n if (proposal.daoRedeemItsWinnings == false &&\n _beneficiary == organizations[proposal.organizationId] &&\n proposal.state != ProposalState.ExpiredInQueue &&\n proposal.winningVote == NO) {\n rewards[0] =\n rewards[0]\n .add((proposal.daoBounty.mul(totalStakesLeftAfterCallBounty))/totalWinningStakes)\n .sub(proposal.daoBounty);\n proposal.daoRedeemItsWinnings = true;\n }\n\n //as voter\n Voter storage voter = proposal.voters[_beneficiary];\n if ((voter.reputation != 0) && (voter.preBoosted)) {\n if (proposal.state == ProposalState.ExpiredInQueue) {\n //give back reputation for the voter\n rewards[1] = ((voter.reputation.mul(params.votersReputationLossRatio))/100);\n } else if (proposal.winningVote == voter.vote) {\n uint256 lostReputation;\n if (proposal.winningVote == YES) {\n lostReputation = proposal.preBoostedVotes[NO];\n } else {\n lostReputation = proposal.preBoostedVotes[YES];\n }\n lostReputation = (lostReputation.mul(params.votersReputationLossRatio))/100;\n rewards[1] = ((voter.reputation.mul(params.votersReputationLossRatio))/100)\n .add((voter.reputation.mul(lostReputation))/proposal.preBoostedVotes[proposal.winningVote]);\n }\n voter.reputation = 0;\n }\n //as proposer\n if ((proposal.proposer == _beneficiary)&&(proposal.winningVote == YES)&&(proposal.proposer != address(0))) {\n rewards[2] = params.proposingRepReward;\n proposal.proposer = address(0);\n }\n if (rewards[0] != 0) {\n proposal.totalStakes = proposal.totalStakes.sub(rewards[0]);\n require(stakingToken.transfer(_beneficiary, rewards[0]), \"transfer to beneficiary failed\");\n emit Redeem(_proposalId, organizations[proposal.organizationId], _beneficiary, rewards[0]);\n }\n if (rewards[1].add(rewards[2]) != 0) {\n VotingMachineCallbacksInterface(proposal.callbacks)\n .mintReputation(rewards[1].add(rewards[2]), _beneficiary, _proposalId);\n emit RedeemReputation(\n _proposalId,\n organizations[proposal.organizationId],\n _beneficiary,\n rewards[1].add(rewards[2])\n );\n }\n }\n\n /**\n * @dev redeemDaoBounty a reward for a successful stake.\n * The function use a beneficiary address as a parameter (and not msg.sender) to enable\n * users to redeem on behalf of someone else.\n * @param _proposalId the ID of the proposal\n * @param _beneficiary - the beneficiary address\n * @return redeemedAmount - redeem token amount\n * @return potentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )\n */\n function redeemDaoBounty(bytes32 _proposalId, address _beneficiary)\n public\n returns(uint256 redeemedAmount, uint256 potentialAmount) {\n Proposal storage proposal = proposals[_proposalId];\n require(proposal.state == ProposalState.Executed);\n uint256 totalWinningStakes = proposal.stakes[proposal.winningVote];\n Staker storage staker = proposal.stakers[_beneficiary];\n if (\n (staker.amount4Bounty > 0)&&\n (staker.vote == proposal.winningVote)&&\n (proposal.winningVote == YES)&&\n (totalWinningStakes != 0)) {\n //as staker\n potentialAmount = (staker.amount4Bounty * proposal.daoBounty)/totalWinningStakes;\n }\n if ((potentialAmount != 0)&&\n (VotingMachineCallbacksInterface(proposal.callbacks)\n .balanceOfStakingToken(stakingToken, _proposalId) >= potentialAmount)) {\n staker.amount4Bounty = 0;\n proposal.daoBountyRemain = proposal.daoBountyRemain.sub(potentialAmount);\n require(\n VotingMachineCallbacksInterface(proposal.callbacks)\n .stakingTokenTransfer(stakingToken, _beneficiary, potentialAmount, _proposalId));\n redeemedAmount = potentialAmount;\n emit RedeemDaoBounty(_proposalId, organizations[proposal.organizationId], _beneficiary, redeemedAmount);\n }\n }\n\n /**\n * @dev calcExecuteCallBounty calculate the execute boosted call bounty\n * @param _proposalId the ID of the proposal\n * @return uint256 executeCallBounty\n */\n function calcExecuteCallBounty(bytes32 _proposalId) public view returns(uint256) {\n uint maxRewardSeconds = 1500;\n uint rewardSeconds =\n uint256(maxRewardSeconds).min(proposals[_proposalId].secondsFromTimeOutTillExecuteBoosted);\n return rewardSeconds.mul(proposals[_proposalId].stakes[YES]).div(maxRewardSeconds*10);\n }\n\n /**\n * @dev shouldBoost check if a proposal should be shifted to boosted phase.\n * @param _proposalId the ID of the proposal\n * @return bool true or false.\n */\n function shouldBoost(bytes32 _proposalId) public view returns(bool) {\n Proposal memory proposal = proposals[_proposalId];\n return (_score(_proposalId) > threshold(proposal.paramsHash, proposal.organizationId));\n }\n\n /**\n * @dev threshold return the organization's score threshold which required by\n * a proposal to shift to boosted state.\n * This threshold is dynamically set and it depend on the number of boosted proposal.\n * @param _organizationId the organization identifier\n * @param _paramsHash the organization parameters hash\n * @return uint256 organization's score threshold as real number.\n */\n function threshold(bytes32 _paramsHash, bytes32 _organizationId) public view returns(uint256) {\n uint256 power = orgBoostedProposalsCnt[_organizationId];\n Parameters storage params = parameters[_paramsHash];\n\n if (power > params.limitExponentValue) {\n power = params.limitExponentValue;\n }\n\n return params.thresholdConst.pow(power);\n }\n\n /**\n * @dev hashParameters returns a hash of the given parameters\n */\n function getParametersHash(\n uint[11] memory _params,//use array here due to stack too deep issue.\n address _voteOnBehalf\n )\n public\n pure\n returns(bytes32)\n {\n //double call to keccak256 to avoid deep stack issue when call with too many params.\n return keccak256(\n abi.encodePacked(\n keccak256(\n abi.encodePacked(\n _params[0],\n _params[1],\n _params[2],\n _params[3],\n _params[4],\n _params[5],\n _params[6],\n _params[7],\n _params[8],\n _params[9],\n _params[10])\n ),\n _voteOnBehalf\n ));\n }\n\n /**\n * @dev execute check if the proposal has been decided, and if so, execute the proposal\n * @param _proposalId the id of the proposal\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n // solhint-disable-next-line function-max-lines,code-complexity\n function _execute(bytes32 _proposalId) internal votable(_proposalId) returns(bool) {\n Proposal storage proposal = proposals[_proposalId];\n Parameters memory params = parameters[proposal.paramsHash];\n Proposal memory tmpProposal = proposal;\n uint256 totalReputation =\n VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply(_proposalId);\n //first divide by 100 to prevent overflow\n uint256 executionBar = (totalReputation/100) * params.queuedVoteRequiredPercentage;\n ExecutionState executionState = ExecutionState.None;\n uint256 averageDownstakesOfBoosted;\n uint256 confidenceThreshold;\n\n if (proposal.votes[proposal.winningVote] > executionBar) {\n // someone crossed the absolute vote execution bar.\n if (proposal.state == ProposalState.Queued) {\n executionState = ExecutionState.QueueBarCrossed;\n } else if (proposal.state == ProposalState.PreBoosted) {\n executionState = ExecutionState.PreBoostedBarCrossed;\n } else {\n executionState = ExecutionState.BoostedBarCrossed;\n }\n proposal.state = ProposalState.Executed;\n } else {\n if (proposal.state == ProposalState.Queued) {\n // solhint-disable-next-line not-rely-on-time\n if ((now - proposal.times[0]) >= params.queuedVotePeriodLimit) {\n proposal.state = ProposalState.ExpiredInQueue;\n proposal.winningVote = NO;\n executionState = ExecutionState.QueueTimeOut;\n } else {\n confidenceThreshold = threshold(proposal.paramsHash, proposal.organizationId);\n if (_score(_proposalId) > confidenceThreshold) {\n //change proposal mode to PreBoosted mode.\n proposal.state = ProposalState.PreBoosted;\n // solhint-disable-next-line not-rely-on-time\n proposal.times[2] = now;\n proposal.confidenceThreshold = confidenceThreshold;\n }\n }\n }\n\n if (proposal.state == ProposalState.PreBoosted) {\n confidenceThreshold = threshold(proposal.paramsHash, proposal.organizationId);\n // solhint-disable-next-line not-rely-on-time\n if ((now - proposal.times[2]) >= params.preBoostedVotePeriodLimit) {\n if (_score(_proposalId) > confidenceThreshold) {\n if (orgBoostedProposalsCnt[proposal.organizationId] < MAX_BOOSTED_PROPOSALS) {\n //change proposal mode to Boosted mode.\n proposal.state = ProposalState.Boosted;\n // solhint-disable-next-line not-rely-on-time\n proposal.times[1] = now;\n orgBoostedProposalsCnt[proposal.organizationId]++;\n //add a value to average -> average = average + ((value - average) / nbValues)\n averageDownstakesOfBoosted = averagesDownstakesOfBoosted[proposal.organizationId];\n // solium-disable-next-line indentation\n averagesDownstakesOfBoosted[proposal.organizationId] =\n uint256(int256(averageDownstakesOfBoosted) +\n ((int256(proposal.stakes[NO])-int256(averageDownstakesOfBoosted))/\n int256(orgBoostedProposalsCnt[proposal.organizationId])));\n }\n } else {\n proposal.state = ProposalState.Queued;\n }\n } else { //check the Confidence level is stable\n uint256 proposalScore = _score(_proposalId);\n if (proposalScore <= proposal.confidenceThreshold.min(confidenceThreshold)) {\n proposal.state = ProposalState.Queued;\n } else if (proposal.confidenceThreshold > proposalScore) {\n proposal.confidenceThreshold = confidenceThreshold;\n emit ConfidenceLevelChange(_proposalId, confidenceThreshold);\n }\n }\n }\n }\n\n if ((proposal.state == ProposalState.Boosted) ||\n (proposal.state == ProposalState.QuietEndingPeriod)) {\n // solhint-disable-next-line not-rely-on-time\n if ((now - proposal.times[1]) >= proposal.currentBoostedVotePeriodLimit) {\n proposal.state = ProposalState.Executed;\n executionState = ExecutionState.BoostedTimeOut;\n }\n }\n\n if (executionState != ExecutionState.None) {\n if ((executionState == ExecutionState.BoostedTimeOut) ||\n (executionState == ExecutionState.BoostedBarCrossed)) {\n orgBoostedProposalsCnt[tmpProposal.organizationId] =\n orgBoostedProposalsCnt[tmpProposal.organizationId].sub(1);\n //remove a value from average = ((average * nbValues) - value) / (nbValues - 1);\n uint256 boostedProposals = orgBoostedProposalsCnt[tmpProposal.organizationId];\n if (boostedProposals == 0) {\n averagesDownstakesOfBoosted[proposal.organizationId] = 0;\n } else {\n averageDownstakesOfBoosted = averagesDownstakesOfBoosted[proposal.organizationId];\n averagesDownstakesOfBoosted[proposal.organizationId] =\n (averageDownstakesOfBoosted.mul(boostedProposals+1).sub(proposal.stakes[NO]))/boostedProposals;\n }\n }\n emit ExecuteProposal(\n _proposalId,\n organizations[proposal.organizationId],\n proposal.winningVote,\n totalReputation\n );\n emit GPExecuteProposal(_proposalId, executionState);\n ProposalExecuteInterface(proposal.callbacks).executeProposal(_proposalId, int(proposal.winningVote));\n proposal.daoBounty = proposal.daoBountyRemain;\n }\n if (tmpProposal.state != proposal.state) {\n emit StateChange(_proposalId, proposal.state);\n }\n return (executionState != ExecutionState.None);\n }\n\n /**\n * @dev staking function\n * @param _proposalId id of the proposal\n * @param _vote NO(2) or YES(1).\n * @param _amount the betting amount\n * @return bool true - the proposal has been executed\n * false - otherwise.\n */\n function _stake(bytes32 _proposalId, uint256 _vote, uint256 _amount, address _staker) internal returns(bool) {\n // 0 is not a valid vote.\n require(_vote <= NUM_OF_CHOICES && _vote > 0, \"wrong vote value\");\n require(_amount > 0, \"staking amount should be >0\");\n\n if (_execute(_proposalId)) {\n return true;\n }\n Proposal storage proposal = proposals[_proposalId];\n\n if ((proposal.state != ProposalState.PreBoosted) &&\n (proposal.state != ProposalState.Queued)) {\n return false;\n }\n\n // enable to increase stake only on the previous stake vote\n Staker storage staker = proposal.stakers[_staker];\n if ((staker.amount > 0) && (staker.vote != _vote)) {\n return false;\n }\n\n uint256 amount = _amount;\n require(stakingToken.transferFrom(_staker, address(this), amount), \"fail transfer from staker\");\n proposal.totalStakes = proposal.totalStakes.add(amount); //update totalRedeemableStakes\n staker.amount = staker.amount.add(amount);\n //This is to prevent average downstakes calculation overflow\n //Note that any how GEN cap is 100000000 ether.\n require(staker.amount <= 0x100000000000000000000000000000000, \"staking amount is too high\");\n require(proposal.totalStakes <= uint256(0x100000000000000000000000000000000).sub(proposal.daoBountyRemain),\n \"total stakes is too high\");\n\n if (_vote == YES) {\n staker.amount4Bounty = staker.amount4Bounty.add(amount);\n }\n staker.vote = _vote;\n\n proposal.stakes[_vote] = amount.add(proposal.stakes[_vote]);\n emit Stake(_proposalId, organizations[proposal.organizationId], _staker, _vote, _amount);\n return _execute(_proposalId);\n }\n\n /**\n * @dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead\n * @param _proposalId id of the proposal\n * @param _voter used in case the vote is cast for someone else\n * @param _vote a value between 0 to and the proposal's number of choices.\n * @param _rep how many reputation the voter would like to stake for this vote.\n * if _rep==0 so the voter full reputation will be use.\n * @return true in case of proposal execution otherwise false\n * throws if proposal is not open or if it has been executed\n * NB: executes the proposal if a decision has been reached\n */\n // solhint-disable-next-line function-max-lines,code-complexity\n function internalVote(bytes32 _proposalId, address _voter, uint256 _vote, uint256 _rep) internal returns(bool) {\n require(_vote <= NUM_OF_CHOICES && _vote > 0, \"0 < _vote <= 2\");\n if (_execute(_proposalId)) {\n return true;\n }\n\n Parameters memory params = parameters[proposals[_proposalId].paramsHash];\n Proposal storage proposal = proposals[_proposalId];\n\n // Check voter has enough reputation:\n uint256 reputation = VotingMachineCallbacksInterface(proposal.callbacks).reputationOf(_voter, _proposalId);\n require(reputation > 0, \"_voter must have reputation\");\n require(reputation >= _rep, \"reputation >= _rep\");\n uint256 rep = _rep;\n if (rep == 0) {\n rep = reputation;\n }\n // If this voter has already voted, return false.\n if (proposal.voters[_voter].reputation != 0) {\n return false;\n }\n // The voting itself:\n proposal.votes[_vote] = rep.add(proposal.votes[_vote]);\n //check if the current winningVote changed or there is a tie.\n //for the case there is a tie the current winningVote set to NO.\n if ((proposal.votes[_vote] > proposal.votes[proposal.winningVote]) ||\n ((proposal.votes[NO] == proposal.votes[proposal.winningVote]) &&\n proposal.winningVote == YES)) {\n if (proposal.state == ProposalState.Boosted &&\n // solhint-disable-next-line not-rely-on-time\n ((now - proposal.times[1]) >= (params.boostedVotePeriodLimit - params.quietEndingPeriod))||\n proposal.state == ProposalState.QuietEndingPeriod) {\n //quietEndingPeriod\n if (proposal.state != ProposalState.QuietEndingPeriod) {\n proposal.currentBoostedVotePeriodLimit = params.quietEndingPeriod;\n proposal.state = ProposalState.QuietEndingPeriod;\n emit StateChange(_proposalId, proposal.state);\n }\n // solhint-disable-next-line not-rely-on-time\n proposal.times[1] = now;\n }\n proposal.winningVote = _vote;\n }\n proposal.voters[_voter] = Voter({\n reputation: rep,\n vote: _vote,\n preBoosted:((proposal.state == ProposalState.PreBoosted) || (proposal.state == ProposalState.Queued))\n });\n if ((proposal.state == ProposalState.PreBoosted) || (proposal.state == ProposalState.Queued)) {\n proposal.preBoostedVotes[_vote] = rep.add(proposal.preBoostedVotes[_vote]);\n uint256 reputationDeposit = (params.votersReputationLossRatio.mul(rep))/100;\n VotingMachineCallbacksInterface(proposal.callbacks).burnReputation(reputationDeposit, _voter, _proposalId);\n }\n emit VoteProposal(_proposalId, organizations[proposal.organizationId], _voter, _vote, rep);\n return _execute(_proposalId);\n }\n\n /**\n * @dev _score return the proposal score (Confidence level)\n * For dual choice proposal S = (S+)/(S-)\n * @param _proposalId the ID of the proposal\n * @return uint256 proposal score as real number.\n */\n function _score(bytes32 _proposalId) internal view returns(uint256) {\n Proposal storage proposal = proposals[_proposalId];\n //proposal.stakes[NO] cannot be zero as the dao downstake > 0 for each proposal.\n return uint216(proposal.stakes[YES]).fraction(uint216(proposal.stakes[NO]));\n }\n\n /**\n * @dev _isVotable check if the proposal is votable\n * @param _proposalId the ID of the proposal\n * @return bool true or false\n */\n function _isVotable(bytes32 _proposalId) internal view returns(bool) {\n ProposalState pState = proposals[_proposalId].state;\n return ((pState == ProposalState.PreBoosted)||\n (pState == ProposalState.Boosted)||\n (pState == ProposalState.QuietEndingPeriod)||\n (pState == ProposalState.Queued)\n );\n }\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol","exportedSymbols":{"GenesisProtocolLogic":[19681]},"id":19682,"nodeType":"SourceUnit","nodes":[{"id":17113,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:58"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"./IntVoteInterface.sol","id":17114,"nodeType":"ImportDirective","scope":19682,"sourceUnit":19817,"src":"26:32:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/libs/RealMath.sol","file":"../libs/RealMath.sol","id":17116,"nodeType":"ImportDirective","scope":19682,"sourceUnit":15237,"src":"59:48:58","symbolAliases":[{"foreign":17115,"local":null}],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"./VotingMachineCallbacksInterface.sol","id":17117,"nodeType":"ImportDirective","scope":19682,"sourceUnit":20032,"src":"108:47:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"./ProposalExecuteInterface.sol","id":17118,"nodeType":"ImportDirective","scope":19682,"sourceUnit":19829,"src":"156:40:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":17119,"nodeType":"ImportDirective","scope":19682,"sourceUnit":20396,"src":"197:59:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/Math.sol","file":"openzeppelin-solidity/contracts/math/Math.sol","id":17120,"nodeType":"ImportDirective","scope":19682,"sourceUnit":20209,"src":"257:55:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":17121,"nodeType":"ImportDirective","scope":19682,"sourceUnit":21018,"src":"313:64:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/utils/Address.sol","file":"openzeppelin-solidity/contracts/utils/Address.sol","id":17122,"nodeType":"ImportDirective","scope":19682,"sourceUnit":21093,"src":"378:59:58","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":17123,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"565:16:58","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":17124,"nodeType":"InheritanceSpecifier","src":"565:16:58"}],"contractDependencies":[19816],"contractKind":"contract","documentation":"@title GenesisProtocol implementation -an organization's voting machine scheme.","fullyImplemented":false,"id":19681,"linearizedBaseContracts":[19681,19816],"name":"GenesisProtocolLogic","nodeType":"ContractDefinition","nodes":[{"id":17127,"libraryName":{"contractScope":null,"id":17125,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"594:8:58","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"588:27:58","typeName":{"id":17126,"name":"uint256","nodeType":"ElementaryTypeName","src":"607:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":17130,"libraryName":{"contractScope":null,"id":17128,"name":"Math","nodeType":"UserDefinedTypeName","referencedDeclaration":20208,"src":"626:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_Math_$20208","typeString":"library Math"}},"nodeType":"UsingForDirective","src":"620:23:58","typeName":{"id":17129,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":17133,"libraryName":{"contractScope":null,"id":17131,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"654:8:58","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"648:27:58","typeName":{"id":17132,"name":"uint216","nodeType":"ElementaryTypeName","src":"667:7:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}},{"id":17136,"libraryName":{"contractScope":null,"id":17134,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"686:8:58","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"680:27:58","typeName":{"id":17135,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":17139,"libraryName":{"contractScope":null,"id":17137,"name":"Address","nodeType":"UserDefinedTypeName","referencedDeclaration":21092,"src":"718:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}},"nodeType":"UsingForDirective","src":"712:26:58","typeName":{"id":17138,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"GenesisProtocolLogic.ProposalState","id":17147,"members":[{"id":17140,"name":"None","nodeType":"EnumValue","src":"765:4:58"},{"id":17141,"name":"ExpiredInQueue","nodeType":"EnumValue","src":"771:14:58"},{"id":17142,"name":"Executed","nodeType":"EnumValue","src":"787:8:58"},{"id":17143,"name":"Queued","nodeType":"EnumValue","src":"797:6:58"},{"id":17144,"name":"PreBoosted","nodeType":"EnumValue","src":"805:10:58"},{"id":17145,"name":"Boosted","nodeType":"EnumValue","src":"817:7:58"},{"id":17146,"name":"QuietEndingPeriod","nodeType":"EnumValue","src":"826:17:58"}],"name":"ProposalState","nodeType":"EnumDefinition","src":"744:100:58"},{"canonicalName":"GenesisProtocolLogic.ExecutionState","id":17154,"members":[{"id":17148,"name":"None","nodeType":"EnumValue","src":"871:4:58"},{"id":17149,"name":"QueueBarCrossed","nodeType":"EnumValue","src":"877:15:58"},{"id":17150,"name":"QueueTimeOut","nodeType":"EnumValue","src":"894:12:58"},{"id":17151,"name":"PreBoostedBarCrossed","nodeType":"EnumValue","src":"908:20:58"},{"id":17152,"name":"BoostedTimeOut","nodeType":"EnumValue","src":"930:14:58"},{"id":17153,"name":"BoostedBarCrossed","nodeType":"EnumValue","src":"946:17:58"}],"name":"ExecutionState","nodeType":"EnumDefinition","src":"849:115:58"},{"canonicalName":"GenesisProtocolLogic.Parameters","id":17181,"members":[{"constant":false,"id":17156,"name":"queuedVoteRequiredPercentage","nodeType":"VariableDeclaration","scope":17181,"src":"1030:36:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17155,"name":"uint256","nodeType":"ElementaryTypeName","src":"1030:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17158,"name":"queuedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17181,"src":"1114:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17157,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17160,"name":"boostedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17181,"src":"1219:30:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17162,"name":"preBoostedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17181,"src":"1312:33:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1312:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17164,"name":"thresholdConst","nodeType":"VariableDeclaration","scope":17181,"src":"1486:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17163,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17166,"name":"limitExponentValue","nodeType":"VariableDeclaration","scope":17181,"src":"1648:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17168,"name":"quietEndingPeriod","nodeType":"VariableDeclaration","scope":17181,"src":"1816:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17167,"name":"uint256","nodeType":"ElementaryTypeName","src":"1816:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17170,"name":"proposingRepReward","nodeType":"VariableDeclaration","scope":17181,"src":"1873:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1873:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17172,"name":"votersReputationLossRatio","nodeType":"VariableDeclaration","scope":17181,"src":"1938:33:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17171,"name":"uint256","nodeType":"ElementaryTypeName","src":"1938:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17174,"name":"minimumDaoBounty","nodeType":"VariableDeclaration","scope":17181,"src":"2111:24:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17173,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17176,"name":"daoBountyConst","nodeType":"VariableDeclaration","scope":17181,"src":"2145:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2145:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17178,"name":"activationTime","nodeType":"VariableDeclaration","scope":17181,"src":"2333:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17177,"name":"uint256","nodeType":"ElementaryTypeName","src":"2333:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17180,"name":"voteOnBehalf","nodeType":"VariableDeclaration","scope":17181,"src":"2522:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17179,"name":"address","nodeType":"ElementaryTypeName","src":"2522:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":19681,"src":"1002:1547:58","visibility":"public"},{"canonicalName":"GenesisProtocolLogic.Voter","id":17188,"members":[{"constant":false,"id":17183,"name":"vote","nodeType":"VariableDeclaration","scope":17188,"src":"2578:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17185,"name":"reputation","nodeType":"VariableDeclaration","scope":17188,"src":"2617:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17184,"name":"uint256","nodeType":"ElementaryTypeName","src":"2617:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17187,"name":"preBoosted","nodeType":"VariableDeclaration","scope":17188,"src":"2677:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17186,"name":"bool","nodeType":"ElementaryTypeName","src":"2677:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"Voter","nodeType":"StructDefinition","scope":19681,"src":"2555:144:58","visibility":"public"},{"canonicalName":"GenesisProtocolLogic.Staker","id":17195,"members":[{"constant":false,"id":17190,"name":"vote","nodeType":"VariableDeclaration","scope":17195,"src":"2729:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17189,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17192,"name":"amount","nodeType":"VariableDeclaration","scope":17195,"src":"2768:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17191,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17194,"name":"amount4Bounty","nodeType":"VariableDeclaration","scope":17195,"src":"2820:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17193,"name":"uint256","nodeType":"ElementaryTypeName","src":"2820:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Staker","nodeType":"StructDefinition","scope":19681,"src":"2705:206:58","visibility":"public"},{"canonicalName":"GenesisProtocolLogic.Proposal","id":17246,"members":[{"constant":false,"id":17197,"name":"organizationId","nodeType":"VariableDeclaration","scope":17246,"src":"2943:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2943:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17199,"name":"callbacks","nodeType":"VariableDeclaration","scope":17246,"src":"3040:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17198,"name":"address","nodeType":"ElementaryTypeName","src":"3040:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17201,"name":"state","nodeType":"VariableDeclaration","scope":17246,"src":"3116:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":17200,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"3116:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"},{"constant":false,"id":17203,"name":"winningVote","nodeType":"VariableDeclaration","scope":17246,"src":"3145:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17202,"name":"uint256","nodeType":"ElementaryTypeName","src":"3145:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17205,"name":"proposer","nodeType":"VariableDeclaration","scope":17246,"src":"3194:16:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17204,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17207,"name":"currentBoostedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17246,"src":"3314:37:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17206,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17209,"name":"paramsHash","nodeType":"VariableDeclaration","scope":17246,"src":"3361:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3361:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17211,"name":"daoBountyRemain","nodeType":"VariableDeclaration","scope":17246,"src":"3389:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17210,"name":"uint256","nodeType":"ElementaryTypeName","src":"3389:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17213,"name":"daoBounty","nodeType":"VariableDeclaration","scope":17246,"src":"3497:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17212,"name":"uint256","nodeType":"ElementaryTypeName","src":"3497:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17215,"name":"totalStakes","nodeType":"VariableDeclaration","scope":17246,"src":"3524:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17214,"name":"uint256","nodeType":"ElementaryTypeName","src":"3524:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17217,"name":"confidenceThreshold","nodeType":"VariableDeclaration","scope":17246,"src":"3621:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17216,"name":"uint256","nodeType":"ElementaryTypeName","src":"3621:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17219,"name":"secondsFromTimeOutTillExecuteBoosted","nodeType":"VariableDeclaration","scope":17246,"src":"3658:44:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3658:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17223,"name":"times","nodeType":"VariableDeclaration","scope":17246,"src":"3712:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":17220,"name":"uint","nodeType":"ElementaryTypeName","src":"3712:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17222,"length":{"argumentTypes":null,"hexValue":"33","id":17221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3717:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"3712:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":17225,"name":"daoRedeemItsWinnings","nodeType":"VariableDeclaration","scope":17246,"src":"3871:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17224,"name":"bool","nodeType":"ElementaryTypeName","src":"3871:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":17229,"name":"votes","nodeType":"VariableDeclaration","scope":17246,"src":"3943:40:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":17228,"keyType":{"id":17226,"name":"uint256","nodeType":"ElementaryTypeName","src":"3951:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3943:34:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":17227,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17233,"name":"preBoostedVotes","nodeType":"VariableDeclaration","scope":17246,"src":"4030:50:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":17232,"keyType":{"id":17230,"name":"uint256","nodeType":"ElementaryTypeName","src":"4038:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4030:34:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":17231,"name":"uint256","nodeType":"ElementaryTypeName","src":"4052:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17237,"name":"voters","nodeType":"VariableDeclaration","scope":17246,"src":"4124:37:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter)"},"typeName":{"id":17236,"keyType":{"id":17234,"name":"address","nodeType":"ElementaryTypeName","src":"4132:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4124:30:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter)"},"valueType":{"contractScope":null,"id":17235,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":17188,"src":"4144:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17241,"name":"stakes","nodeType":"VariableDeclaration","scope":17246,"src":"4206:41:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":17240,"keyType":{"id":17238,"name":"uint256","nodeType":"ElementaryTypeName","src":"4214:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4206:34:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":17239,"name":"uint256","nodeType":"ElementaryTypeName","src":"4228:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17245,"name":"stakers","nodeType":"VariableDeclaration","scope":17246,"src":"4289:38:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker)"},"typeName":{"id":17244,"keyType":{"id":17242,"name":"address","nodeType":"ElementaryTypeName","src":"4297:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4289:30:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker)"},"valueType":{"contractScope":null,"id":17243,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"4309:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":19681,"src":"2917:1417:58","visibility":"public"},{"anonymous":false,"documentation":null,"id":17258,"name":"Stake","nodeType":"EventDefinition","parameters":{"id":17257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17248,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17258,"src":"4352:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4352:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17250,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17258,"src":"4389:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17249,"name":"address","nodeType":"ElementaryTypeName","src":"4389:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17252,"indexed":true,"name":"_staker","nodeType":"VariableDeclaration","scope":17258,"src":"4428:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17251,"name":"address","nodeType":"ElementaryTypeName","src":"4428:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17254,"indexed":false,"name":"_vote","nodeType":"VariableDeclaration","scope":17258,"src":"4461:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17253,"name":"uint256","nodeType":"ElementaryTypeName","src":"4461:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17256,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17258,"src":"4484:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17255,"name":"uint256","nodeType":"ElementaryTypeName","src":"4484:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4351:154:58"},"src":"4340:166:58"},{"anonymous":false,"documentation":null,"id":17268,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":17267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17260,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17268,"src":"4525:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4525:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17262,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17268,"src":"4562:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17261,"name":"address","nodeType":"ElementaryTypeName","src":"4562:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17264,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17268,"src":"4601:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17263,"name":"address","nodeType":"ElementaryTypeName","src":"4601:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17266,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17268,"src":"4639:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17265,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4524:136:58"},"src":"4512:149:58"},{"anonymous":false,"documentation":null,"id":17278,"name":"RedeemDaoBounty","nodeType":"EventDefinition","parameters":{"id":17277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17270,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17278,"src":"4689:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4689:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17272,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17278,"src":"4726:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17271,"name":"address","nodeType":"ElementaryTypeName","src":"4726:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17274,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17278,"src":"4765:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17273,"name":"address","nodeType":"ElementaryTypeName","src":"4765:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17276,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17278,"src":"4803:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17275,"name":"uint256","nodeType":"ElementaryTypeName","src":"4803:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4688:136:58"},"src":"4667:158:58"},{"anonymous":false,"documentation":null,"id":17288,"name":"RedeemReputation","nodeType":"EventDefinition","parameters":{"id":17287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17280,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17288,"src":"4854:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4854:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17282,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17288,"src":"4891:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17281,"name":"address","nodeType":"ElementaryTypeName","src":"4891:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17284,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17288,"src":"4930:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17283,"name":"address","nodeType":"ElementaryTypeName","src":"4930:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17286,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17288,"src":"4968:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4968:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4853:136:58"},"src":"4831:159:58"},{"anonymous":false,"documentation":null,"id":17294,"name":"StateChange","nodeType":"EventDefinition","parameters":{"id":17293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17290,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17294,"src":"5014:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5014:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17292,"indexed":false,"name":"_proposalState","nodeType":"VariableDeclaration","scope":17294,"src":"5043:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":17291,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"5043:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"src":"5013:59:58"},"src":"4996:77:58"},{"anonymous":false,"documentation":null,"id":17300,"name":"GPExecuteProposal","nodeType":"EventDefinition","parameters":{"id":17299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17296,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17300,"src":"5102:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5102:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17298,"indexed":false,"name":"_executionState","nodeType":"VariableDeclaration","scope":17300,"src":"5131:30:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"typeName":{"contractScope":null,"id":17297,"name":"ExecutionState","nodeType":"UserDefinedTypeName","referencedDeclaration":17154,"src":"5131:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"value":null,"visibility":"internal"}],"src":"5101:61:58"},"src":"5078:85:58"},{"anonymous":false,"documentation":null,"id":17308,"name":"ExpirationCallBounty","nodeType":"EventDefinition","parameters":{"id":17307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17302,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17308,"src":"5195:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5195:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17304,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17308,"src":"5224:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17303,"name":"address","nodeType":"ElementaryTypeName","src":"5224:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17306,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17308,"src":"5254:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17305,"name":"uint256","nodeType":"ElementaryTypeName","src":"5254:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5194:76:58"},"src":"5168:103:58"},{"anonymous":false,"documentation":null,"id":17314,"name":"ConfidenceLevelChange","nodeType":"EventDefinition","parameters":{"id":17313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17310,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17314,"src":"5304:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5304:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17312,"indexed":false,"name":"_confidenceThreshold","nodeType":"VariableDeclaration","scope":17314,"src":"5333:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17311,"name":"uint256","nodeType":"ElementaryTypeName","src":"5333:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5303:59:58"},"src":"5276:87:58"},{"constant":false,"id":17318,"name":"parameters","nodeType":"VariableDeclaration","scope":19681,"src":"5369:46:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters)"},"typeName":{"id":17317,"keyType":{"id":17315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5377:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5369:28:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters)"},"valueType":{"contractScope":null,"id":17316,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"5386:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}}},"value":null,"visibility":"public"},{"constant":false,"id":17322,"name":"proposals","nodeType":"VariableDeclaration","scope":19681,"src":"5461:43:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal)"},"typeName":{"id":17321,"keyType":{"id":17319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5469:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5461:26:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal)"},"valueType":{"contractScope":null,"id":17320,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"5478:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":17326,"name":"orgBoostedProposalsCnt","nodeType":"VariableDeclaration","scope":19681,"src":"5573:52:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":17325,"keyType":{"id":17323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5581:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5573:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":17324,"name":"uint","nodeType":"ElementaryTypeName","src":"5590:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":17330,"name":"organizations","nodeType":"VariableDeclaration","scope":19681,"src":"5675:60:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":17329,"keyType":{"id":17327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5683:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5675:39:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":17328,"name":"address","nodeType":"ElementaryTypeName","src":"5701:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"constant":false,"id":17334,"name":"averagesDownstakesOfBoosted","nodeType":"VariableDeclaration","scope":19681,"src":"5794:86:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":17333,"keyType":{"id":17331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5802:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5794:51:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":17332,"name":"uint256","nodeType":"ElementaryTypeName","src":"5823:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":true,"id":17337,"name":"NUM_OF_CHOICES","nodeType":"VariableDeclaration","scope":19681,"src":"5886:42:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17335,"name":"uint256","nodeType":"ElementaryTypeName","src":"5886:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"32","id":17336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5927:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"constant":true,"id":17340,"name":"NO","nodeType":"VariableDeclaration","scope":19681,"src":"5934:30:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17338,"name":"uint256","nodeType":"ElementaryTypeName","src":"5934:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"32","id":17339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5963:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"constant":true,"id":17343,"name":"YES","nodeType":"VariableDeclaration","scope":19681,"src":"5970:31:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17341,"name":"uint256","nodeType":"ElementaryTypeName","src":"5970:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"31","id":17342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6000:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":false,"id":17345,"name":"proposalsCnt","nodeType":"VariableDeclaration","scope":19681,"src":"6007:27:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17344,"name":"uint256","nodeType":"ElementaryTypeName","src":"6007:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":17347,"name":"stakingToken","nodeType":"VariableDeclaration","scope":19681,"src":"6069:26:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":17346,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"6069:6:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":true,"id":17350,"name":"GEN_TOKEN_ADDRESS","nodeType":"VariableDeclaration","scope":19681,"src":"6101:87:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17348,"name":"address","nodeType":"ElementaryTypeName","src":"6101:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"argumentTypes":null,"hexValue":"307835343346663232374636344161313765413133324266393838366341623544423535444341646466","id":17349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6146:42:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"value":"0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf"},"visibility":"private"},{"constant":true,"id":17353,"name":"MAX_BOOSTED_PROPOSALS","nodeType":"VariableDeclaration","scope":19681,"src":"6194:53:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17351,"name":"uint256","nodeType":"ElementaryTypeName","src":"6194:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"34303936","id":17352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"},"value":"4096"},"visibility":"private"},{"body":{"id":17376,"nodeType":"Block","src":"6335:556:58","statements":[{"condition":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17359,"name":"GEN_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"6728:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6720:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":17360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:26:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"6720:37:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":17362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17374,"nodeType":"Block","src":"6832:53:58","statements":[{"expression":{"argumentTypes":null,"id":17372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17370,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"6846:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17371,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17355,"src":"6861:13:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"6846:28:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":17373,"nodeType":"ExpressionStatement","src":"6846:28:58"}]},"id":17375,"nodeType":"IfStatement","src":"6716:169:58","trueBody":{"id":17369,"nodeType":"Block","src":"6761:65:58","statements":[{"expression":{"argumentTypes":null,"id":17367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17363,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"6775:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17365,"name":"GEN_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"6797:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17364,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"6790:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":17366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6790:25:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"6775:40:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":17368,"nodeType":"ExpressionStatement","src":"6775:40:58"}]}}]},"documentation":"@dev Constructor","id":17377,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":17356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17355,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":17377,"src":"6306:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":17354,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"6306:6:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"src":"6305:22:58"},"returnParameters":{"id":17357,"nodeType":"ParameterList","parameters":[],"src":"6335:0:58"},"scope":19681,"src":"6294:597:58","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":17388,"nodeType":"Block","src":"7113:60:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17383,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17379,"src":"7142:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17382,"name":"_isVotable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19680,"src":"7131:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":17384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7131:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17381,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7123:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7123:32:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17386,"nodeType":"ExpressionStatement","src":"7123:32:58"},{"id":17387,"nodeType":"PlaceholderStatement","src":"7165:1:58"}]},"documentation":"@dev Check that the proposal is votable\na proposal is votable if it is in one of the following states:\n PreBoosted,Boosted,QuietEndingPeriod or Queued","id":17389,"name":"votable","nodeType":"ModifierDefinition","parameters":{"id":17380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17379,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17389,"src":"7092:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7092:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7091:21:58"},"src":"7075:98:58","visibility":"internal"},{"body":{"id":17593,"nodeType":"Block","src":"7617:1817:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17403,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"7687:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17404,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"7693:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17406,"indexExpression":{"argumentTypes":null,"id":17405,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"7704:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7693:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"activationTime","nodeType":"MemberAccess","referencedDeclaration":17178,"src":"7693:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7687:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f742061637469766520796574","id":17409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7733:16:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f30c2c4eef761b63d78da11427f8e9c88d014c48e08e70db1400926a3cd70480","typeString":"literal_string \"not active yet\""},"value":"not active yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f30c2c4eef761b63d78da11427f8e9c88d014c48e08e70db1400926a3cd70480","typeString":"literal_string \"not active yet\""}],"id":17402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7679:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7679:71:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17411,"nodeType":"ExpressionStatement","src":"7679:71:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17413,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"7806:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17415,"indexExpression":{"argumentTypes":null,"id":17414,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"7817:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7806:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"queuedVoteRequiredPercentage","nodeType":"MemberAccess","referencedDeclaration":17156,"src":"7806:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"3530","id":17417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7862:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"7806:58:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7798:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7798:67:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17420,"nodeType":"ExpressionStatement","src":"7798:67:58"},{"assignments":[17422],"declarations":[{"constant":false,"id":17422,"name":"proposalId","nodeType":"VariableDeclaration","scope":17593,"src":"7908:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7908:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":17430,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17426,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21171,"src":"7956:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}},{"argumentTypes":null,"id":17427,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17345,"src":"7962:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7939:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7939:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7939:36:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17423,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7929:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7929:47:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7908:68:58"},{"expression":{"argumentTypes":null,"id":17436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17431,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17345,"src":"7986:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":17434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8018:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":17432,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17345,"src":"8001:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8001:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8001:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7986:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17437,"nodeType":"ExpressionStatement","src":"7986:34:58"},{"assignments":[17439],"declarations":[{"constant":false,"id":17439,"name":"proposal","nodeType":"VariableDeclaration","scope":17593,"src":"8057:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":17438,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"8057:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":17440,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"8057:24:58"},{"expression":{"argumentTypes":null,"id":17446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17441,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8091:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"8091:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8112:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8112:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8091:31:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17447,"nodeType":"ExpressionStatement","src":"8091:31:58"},{"expression":{"argumentTypes":null,"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8132:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8132:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17454,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8185:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8185:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":17456,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17397,"src":"8197:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":17452,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"8168:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8168:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8168:43:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17451,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"8158:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8158:54:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8132:80:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17460,"nodeType":"ExpressionStatement","src":"8132:80:58"},{"expression":{"argumentTypes":null,"id":17466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17461,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8223:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"8223:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17464,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"8240:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8240:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"8223:37:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":17467,"nodeType":"ExpressionStatement","src":"8223:37:58"},{"expression":{"argumentTypes":null,"id":17474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17468,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8324:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"8324:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory","typeString":"uint256[3] memory"}},"id":17472,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8339:1:58","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":"8324:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17473,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8344:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8324:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17475,"nodeType":"ExpressionStatement","src":"8324:23:58"},{"expression":{"argumentTypes":null,"id":17483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17476,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8373:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"8373:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17479,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"8414:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17481,"indexExpression":{"argumentTypes":null,"id":17480,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"8425:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8414:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"boostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17160,"src":"8414:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8373:87:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17484,"nodeType":"ExpressionStatement","src":"8373:87:58"},{"expression":{"argumentTypes":null,"id":17489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17485,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8470:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"8470:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17488,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17395,"src":"8490:9:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8470:29:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17490,"nodeType":"ExpressionStatement","src":"8470:29:58"},{"expression":{"argumentTypes":null,"id":17495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17491,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8509:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"8509:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17494,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8532:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8509:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17496,"nodeType":"ExpressionStatement","src":"8509:25:58"},{"expression":{"argumentTypes":null,"id":17501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8544:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"8544:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17500,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"8566:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8544:33:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17502,"nodeType":"ExpressionStatement","src":"8544:33:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17503,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"8591:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17506,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17504,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8605:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8605:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8591:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":17508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8641:1:58","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":17507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8633:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":17509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8633:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8591:52:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":17535,"nodeType":"IfStatement","src":"8587:292:58","trueBody":{"id":17534,"nodeType":"Block","src":"8645:234:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17511,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17397,"src":"8663:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":17513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8688:1:58","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":17512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8680:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":17514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8680:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8663:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17532,"nodeType":"Block","src":"8782:87:58","statements":[{"expression":{"argumentTypes":null,"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17525,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"8800:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17528,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17526,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8814:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8814:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8800:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17529,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17397,"src":"8841:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8800:54:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17531,"nodeType":"ExpressionStatement","src":"8800:54:58"}]},"id":17533,"nodeType":"IfStatement","src":"8659:210:58","trueBody":{"id":17524,"nodeType":"Block","src":"8692:84:58","statements":[{"expression":{"argumentTypes":null,"id":17522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17516,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"8710:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17519,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17517,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8724:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8724:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8710:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17520,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8751:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8751:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8710:51:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17523,"nodeType":"ExpressionStatement","src":"8710:51:58"}]}}]}},{"assignments":[17537],"declarations":[{"constant":false,"id":17537,"name":"daoBounty","nodeType":"VariableDeclaration","scope":17593,"src":"8914:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17536,"name":"uint256","nodeType":"ElementaryTypeName","src":"8914:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17551,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":17549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9043:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17543,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"8985:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":17546,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17544,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9013:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"9013:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8985:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17538,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"8942:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17540,"indexExpression":{"argumentTypes":null,"id":17539,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"8953:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8942:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyConst","nodeType":"MemberAccess","referencedDeclaration":17176,"src":"8942:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"8942:42:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8942:96:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"8942:100:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8942:105:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8914:133:58"},{"expression":{"argumentTypes":null,"id":17562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17552,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9057:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"9057:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17557,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"9098:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17559,"indexExpression":{"argumentTypes":null,"id":17558,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"9109:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9098:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minimumDaoBounty","nodeType":"MemberAccess","referencedDeclaration":17174,"src":"9098:40:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17555,"name":"daoBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17537,"src":"9084:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":20158,"src":"9084:13:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9084:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9057:82:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17563,"nodeType":"ExpressionStatement","src":"9057:82:58"},{"expression":{"argumentTypes":null,"id":17568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17564,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9149:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17566,"indexExpression":{"argumentTypes":null,"id":17565,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9159:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9149:21:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17567,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9173:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"src":"9149:32:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17569,"nodeType":"ExpressionStatement","src":"9149:32:58"},{"expression":{"argumentTypes":null,"id":17578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17570,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9191:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17572,"indexExpression":{"argumentTypes":null,"id":17571,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9201:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9191:21:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"9191:28:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17575,"indexExpression":{"argumentTypes":null,"id":17574,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"9220:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9191:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17576,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9226:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"9226:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9191:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17579,"nodeType":"ExpressionStatement","src":"9191:59:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17581,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9309:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17582,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"9321:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17585,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17583,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9335:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"9335:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9321:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":17586,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"9361:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17587,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17395,"src":"9377:9:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":17588,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"9388:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17580,"name":"NewProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19713,"src":"9297:11:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,address,uint256,address,bytes32)"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9297:103:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17590,"nodeType":"EmitStatement","src":"9292:108:58"},{"expression":{"argumentTypes":null,"id":17591,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9417:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17401,"id":17592,"nodeType":"Return","src":"9410:17:58"}]},"documentation":"@dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\ngenerated by calculating keccak256 of a incremented counter.\n@param _paramsHash parameters hash\n@param _proposer address\n@param _organization address","id":17594,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":17398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17391,"name":"","nodeType":"VariableDeclaration","scope":17594,"src":"7499:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17390,"name":"uint256","nodeType":"ElementaryTypeName","src":"7499:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17393,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":17594,"src":"7508:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7508:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17395,"name":"_proposer","nodeType":"VariableDeclaration","scope":17594,"src":"7529:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17394,"name":"address","nodeType":"ElementaryTypeName","src":"7529:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17397,"name":"_organization","nodeType":"VariableDeclaration","scope":17594,"src":"7548:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17396,"name":"address","nodeType":"ElementaryTypeName","src":"7548:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"7498:72:58"},"returnParameters":{"id":17401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17400,"name":"","nodeType":"VariableDeclaration","scope":17594,"src":"7604:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7604:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7603:9:58"},"scope":19681,"src":"7482:1952:58","stateMutability":"nonpayable","superFunction":19762,"visibility":"external"},{"body":{"id":17678,"nodeType":"Block","src":"10017:835:58","statements":[{"assignments":[17602],"declarations":[{"constant":false,"id":17602,"name":"proposal","nodeType":"VariableDeclaration","scope":17678,"src":"10027:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":17601,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"10027:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":17606,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17603,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"10055:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17605,"indexExpression":{"argumentTypes":null,"id":17604,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10065:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10055:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10027:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17608,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10095:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"10095:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17610,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"10113:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10113:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"10095:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17613,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10138:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"10138:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17615,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"10156:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10156:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"10138:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10095:92:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20737461746520696e206e6f7420426f6f73746564206e6f72205175696574456e64696e67506572696f64","id":17619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10197:53:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d12753c56f593192768acab33c56c3c76e99c56e3892b0d2f229882577785553","typeString":"literal_string \"proposal state in not Boosted nor QuietEndingPeriod\""},"value":"proposal state in not Boosted nor QuietEndingPeriod"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d12753c56f593192768acab33c56c3c76e99c56e3892b0d2f229882577785553","typeString":"literal_string \"proposal state in not Boosted nor QuietEndingPeriod\""}],"id":17607,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10087:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10087:164:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17621,"nodeType":"ExpressionStatement","src":"10087:164:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17624,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10278:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17623,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"10269:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":17625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10269:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c206e65656420746f20657870697265","id":17626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10292:25:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_194736d0946e0cd4d131aa98afe9f266adc8d4f15ccac91b5a140d100c4a55cc","typeString":"literal_string \"proposal need to expire\""},"value":"proposal need to expire"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_194736d0946e0cd4d131aa98afe9f266adc8d4f15ccac91b5a140d100c4a55cc","typeString":"literal_string \"proposal need to expire\""}],"id":17622,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10261:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10261:57:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17628,"nodeType":"ExpressionStatement","src":"10261:57:58"},{"expression":{"argumentTypes":null,"id":17643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17629,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10329:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"secondsFromTimeOutTillExecuteBoosted","nodeType":"MemberAccess","referencedDeclaration":17219,"src":"10329:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17637,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10490:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"10490:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":17640,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":17639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10505:1:58","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":"10490:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17634,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10447:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"10447:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10447:42:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10447:61:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17632,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"10439:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10439:7:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10439:70:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10329:180:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17644,"nodeType":"ExpressionStatement","src":"10329:180:58"},{"expression":{"argumentTypes":null,"id":17649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17645,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10520:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17647,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10565:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17646,"name":"calcExecuteCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18492,"src":"10543:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":17648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10543:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10520:57:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17650,"nodeType":"ExpressionStatement","src":"10520:57:58"},{"expression":{"argumentTypes":null,"id":17659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17651,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10587:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"10587:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17657,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10635:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17654,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10610:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"10610:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10610:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10610:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10587:69:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17660,"nodeType":"ExpressionStatement","src":"10587:69:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17664,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10696:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10696:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":17666,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10708:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17662,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"10674:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":17663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"10674:21:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":17667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10674:55:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7472616e7366657220746f206d73672e73656e646572206661696c6564","id":17668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10731:31:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b85ceb8ee02c2d2292ab8271b7e4c009f72c6e882f9263faea1f89e089f0781d","typeString":"literal_string \"transfer to msg.sender failed\""},"value":"transfer to msg.sender failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b85ceb8ee02c2d2292ab8271b7e4c009f72c6e882f9263faea1f89e089f0781d","typeString":"literal_string \"transfer to msg.sender failed\""}],"id":17661,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10666:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10666:97:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17670,"nodeType":"ExpressionStatement","src":"10666:97:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17672,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10799:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17673,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10812:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10812:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":17675,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10824:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17671,"name":"ExpirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"10778:20:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":17676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10778:67:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17677,"nodeType":"EmitStatement","src":"10773:72:58"}]},"documentation":"@dev executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired\nit rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function.\nP = t/150, where t is the number of seconds passed since the the proposal's timeout.\nP is capped by 10%.\n@param _proposalId the id of the proposal\n@return uint256 expirationCallBounty the bounty amount for the expiration call","id":17679,"implemented":true,"kind":"function","modifiers":[],"name":"executeBoosted","nodeType":"FunctionDefinition","parameters":{"id":17597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17596,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17679,"src":"9949:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9949:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9948:21:58"},"returnParameters":{"id":17600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17599,"name":"expirationCallBounty","nodeType":"VariableDeclaration","scope":17679,"src":"9987:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17598,"name":"uint256","nodeType":"ElementaryTypeName","src":"9987:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9986:30:58"},"scope":19681,"src":"9925:927:58","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":17866,"nodeType":"Block","src":"11976:1650:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17691,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"11994:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17693,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12002:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11994:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":17694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12008:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11994:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17696,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12015:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17698,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12015:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"3530","id":17699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12029:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"12015:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11994:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"3530203c3d20717565756564566f7465526571756972656450657263656e74616765203c3d20313030","id":17702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12033:43:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_85b9f97a846fa88401fdf1381ec2257f07804de0b75677db4c2efd7a2ce62825","typeString":"literal_string \"50 <= queuedVoteRequiredPercentage <= 100\""},"value":"50 <= queuedVoteRequiredPercentage <= 100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_85b9f97a846fa88401fdf1381ec2257f07804de0b75677db4c2efd7a2ce62825","typeString":"literal_string \"50 <= queuedVoteRequiredPercentage <= 100\""}],"id":17690,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11986:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11986:91:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17704,"nodeType":"ExpressionStatement","src":"11986:91:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17706,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12095:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17708,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12103:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12095:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"3136303030","id":17709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12109:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16000_by_1","typeString":"int_const 16000"},"value":"16000"},"src":"12095:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17711,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12118:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17713,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12126:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12118:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"31303030","id":17714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"12118:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12095:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"31303030203c207468726573686f6c64436f6e7374203c3d203136303030","id":17717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12137:32:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_daddeca132c5a35f259acc956e39955b67e80315dbd0a39292b027685447fb58","typeString":"literal_string \"1000 < thresholdConst <= 16000\""},"value":"1000 < thresholdConst <= 16000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daddeca132c5a35f259acc956e39955b67e80315dbd0a39292b027685447fb58","typeString":"literal_string \"1000 < thresholdConst <= 16000\""}],"id":17705,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12087:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12087:83:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17719,"nodeType":"ExpressionStatement","src":"12087:83:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17721,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12188:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17723,"indexExpression":{"argumentTypes":null,"hexValue":"37","id":17722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12196:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12188:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":17724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12202:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"12188:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f7465727352657075746174696f6e4c6f7373526174696f203c3d20313030","id":17726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12207:34:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b9a8ef96bdbf8c6f5867a44627f3e55d258417d72b6eee622f0941021e48ccc2","typeString":"literal_string \"votersReputationLossRatio <= 100\""},"value":"votersReputationLossRatio <= 100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9a8ef96bdbf8c6f5867a44627f3e55d258417d72b6eee622f0941021e48ccc2","typeString":"literal_string \"votersReputationLossRatio <= 100\""}],"id":17720,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12180:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12180:62:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17728,"nodeType":"ExpressionStatement","src":"12180:62:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17730,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12260:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17732,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":17731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12268:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12260:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17733,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12274:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17735,"indexExpression":{"argumentTypes":null,"hexValue":"35","id":17734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12282:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12274:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12260:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"626f6f73746564566f7465506572696f644c696d6974203e3d207175696574456e64696e67506572696f64","id":17737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12286:45:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_609d5e4f75f374c5d875da125e2b6693907dc86231a6a7783cbd890bcb51f823","typeString":"literal_string \"boostedVotePeriodLimit >= quietEndingPeriod\""},"value":"boostedVotePeriodLimit >= quietEndingPeriod"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_609d5e4f75f374c5d875da125e2b6693907dc86231a6a7783cbd890bcb51f823","typeString":"literal_string \"boostedVotePeriodLimit >= quietEndingPeriod\""}],"id":17729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12252:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12252:80:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17739,"nodeType":"ExpressionStatement","src":"12252:80:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17741,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12350:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17743,"indexExpression":{"argumentTypes":null,"hexValue":"38","id":17742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12358:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12350:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":17744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12363:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12350:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e696d756d44616f426f756e74792073686f756c64206265203e2030","id":17746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12366:32:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2fb70181672a535ab2f25b5eb32644096d5daab13cf3cb8ef2cfc2561af9a3","typeString":"literal_string \"minimumDaoBounty should be > 0\""},"value":"minimumDaoBounty should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a2fb70181672a535ab2f25b5eb32644096d5daab13cf3cb8ef2cfc2561af9a3","typeString":"literal_string \"minimumDaoBounty should be > 0\""}],"id":17740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12342:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12342:57:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17748,"nodeType":"ExpressionStatement","src":"12342:57:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17750,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12417:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17752,"indexExpression":{"argumentTypes":null,"hexValue":"39","id":17751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12425:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12417:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":17753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12430:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12417:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64616f426f756e7479436f6e73742073686f756c64206265203e2030","id":17755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12433:30:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_996a184b88eb3effd28e9cef20fafeecddc7873295cdda23c6bb178b43ff4ba3","typeString":"literal_string \"daoBountyConst should be > 0\""},"value":"daoBountyConst should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_996a184b88eb3effd28e9cef20fafeecddc7873295cdda23c6bb178b43ff4ba3","typeString":"literal_string \"daoBountyConst should be > 0\""}],"id":17749,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12409:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12409:55:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17757,"nodeType":"ExpressionStatement","src":"12409:55:58"},{"assignments":[17759],"declarations":[{"constant":false,"id":17759,"name":"paramsHash","nodeType":"VariableDeclaration","scope":17866,"src":"12475:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12475:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":17764,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17761,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12514:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},{"argumentTypes":null,"id":17762,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17685,"src":"12523:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17760,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18614,"src":"12496:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$11_memory_ptr_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256[11] memory,address) pure returns (bytes32)"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12496:41:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12475:62:58"},{"assignments":[17766],"declarations":[{"constant":false,"id":17766,"name":"limitExponent","nodeType":"VariableDeclaration","scope":17866,"src":"12617:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17765,"name":"uint256","nodeType":"ElementaryTypeName","src":"12617:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17768,"initialValue":{"argumentTypes":null,"hexValue":"313732","id":17767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12641:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_172_by_1","typeString":"int_const 172"},"value":"172"},"nodeType":"VariableDeclarationStatement","src":"12617:27:58"},{"assignments":[17770],"declarations":[{"constant":false,"id":17770,"name":"j","nodeType":"VariableDeclaration","scope":17866,"src":"12681:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17769,"name":"uint256","nodeType":"ElementaryTypeName","src":"12681:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17772,"initialValue":{"argumentTypes":null,"hexValue":"32","id":17771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12693:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"VariableDeclarationStatement","src":"12681:13:58"},{"body":{"id":17813,"nodeType":"Block","src":"12747:173:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17786,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12766:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17788,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12774:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12766:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":17789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12779:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12766:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17791,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12765:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17792,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12786:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17794,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12794:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12786:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12800:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"32","id":17796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12802:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12800:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12786:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17799,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12785:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12765:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":17809,"nodeType":"IfStatement","src":"12761:132:58","trueBody":{"id":17808,"nodeType":"Block","src":"12806:87:58","statements":[{"expression":{"argumentTypes":null,"id":17805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17801,"name":"limitExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17766,"src":"12824:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17802,"name":"limitExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17766,"src":"12840:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":17803,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"12854:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12840:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12824:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17806,"nodeType":"ExpressionStatement","src":"12824:31:58"},{"id":17807,"nodeType":"Break","src":"12873:5:58"}]}},{"expression":{"argumentTypes":null,"id":17811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12906:3:58","subExpression":{"argumentTypes":null,"id":17810,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"12906:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17812,"nodeType":"ExpressionStatement","src":"12906:3:58"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12727:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"3136303030","id":17778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12731:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16000_by_1","typeString":"int_const 16000"},"value":"16000"},"src":"12727:9:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17814,"initializationExpression":{"assignments":[17774],"declarations":[{"constant":false,"id":17774,"name":"i","nodeType":"VariableDeclaration","scope":17814,"src":"12709:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17773,"name":"uint256","nodeType":"ElementaryTypeName","src":"12709:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17776,"initialValue":{"argumentTypes":null,"hexValue":"32303030","id":17775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12721:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"VariableDeclarationStatement","src":"12709:16:58"},"loopExpression":{"expression":{"argumentTypes":null,"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12738:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12742:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"32","id":17782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12744:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12742:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12738:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17785,"nodeType":"ExpressionStatement","src":"12738:7:58"},"nodeType":"ForStatement","src":"12704:216:58"},{"expression":{"argumentTypes":null,"id":17862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17815,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"12930:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17817,"indexExpression":{"argumentTypes":null,"id":17816,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17759,"src":"12941:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12930:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17819,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13010:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17821,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13018:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13010:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17822,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13057:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17824,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":17823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13065:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13057:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17825,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13105:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17827,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":17826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13105:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17828,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13156:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17830,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":17829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13164:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13156:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":17838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13232:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":17837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13224:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":17839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13224:13:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17832,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13203:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17834,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13211:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13203:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13195:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":17835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13195:19:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":17836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":15182,"src":"13195:28:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":17840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13195:43:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17841,"name":"limitExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17766,"src":"13271:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17842,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13317:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17844,"indexExpression":{"argumentTypes":null,"hexValue":"35","id":17843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13325:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13317:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17845,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13361:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17847,"indexExpression":{"argumentTypes":null,"hexValue":"36","id":17846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13369:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13361:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17848,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13411:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17850,"indexExpression":{"argumentTypes":null,"hexValue":"37","id":17849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13419:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13411:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17851,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13452:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17853,"indexExpression":{"argumentTypes":null,"hexValue":"38","id":17852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13460:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13452:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17854,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13491:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17856,"indexExpression":{"argumentTypes":null,"hexValue":"39","id":17855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13499:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13491:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17857,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13530:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17859,"indexExpression":{"argumentTypes":null,"hexValue":"3130","id":17858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13538:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13530:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17860,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17685,"src":"13568:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"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"},{"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"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17818,"name":"Parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17181,"src":"12955:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Parameters_$17181_storage_ptr_$","typeString":"type(struct GenesisProtocolLogic.Parameters storage pointer)"}},"id":17861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["queuedVoteRequiredPercentage","queuedVotePeriodLimit","boostedVotePeriodLimit","preBoostedVotePeriodLimit","thresholdConst","limitExponentValue","quietEndingPeriod","proposingRepReward","votersReputationLossRatio","minimumDaoBounty","daoBountyConst","activationTime","voteOnBehalf"],"nodeType":"FunctionCall","src":"12955:637:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"src":"12930:662:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17863,"nodeType":"ExpressionStatement","src":"12930:662:58"},{"expression":{"argumentTypes":null,"id":17864,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17759,"src":"13609:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17689,"id":17865,"nodeType":"Return","src":"13602:17:58"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value\n@param _params a parameters array\n _params[0] - _queuedVoteRequiredPercentage,\n _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode.\n _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode.\n _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation\n state (stable) before boosted.\n _params[4] -_thresholdConst\n _params[5] -_quietEndingPeriod\n _params[6] -_proposingRepReward\n _params[7] -_votersReputationLossRatio\n _params[8] -_minimumDaoBounty\n _params[9] -_daoBountyConst\n _params[10] -_activationTime\n@param _voteOnBehalf - authorized to vote on behalf of others.","id":17867,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":17686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17683,"name":"_params","nodeType":"VariableDeclaration","scope":17867,"src":"11829:25:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11]"},"typeName":{"baseType":{"id":17680,"name":"uint","nodeType":"ElementaryTypeName","src":"11829:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17682,"length":{"argumentTypes":null,"hexValue":"3131","id":17681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11834:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"nodeType":"ArrayTypeName","src":"11829:8:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_storage_ptr","typeString":"uint256[11]"}},"value":null,"visibility":"internal"},{"constant":false,"id":17685,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":17867,"src":"11910:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17684,"name":"address","nodeType":"ElementaryTypeName","src":"11910:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"11819:118:58"},"returnParameters":{"id":17689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17688,"name":"","nodeType":"VariableDeclaration","scope":17867,"src":"11963:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11963:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11962:9:58"},"scope":19681,"src":"11797:1829:58","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":18314,"nodeType":"Block","src":"14284:3943:58","statements":[{"assignments":[17879],"declarations":[{"constant":false,"id":17879,"name":"proposal","nodeType":"VariableDeclaration","scope":18314,"src":"14294:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":17878,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"14294:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":17883,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17880,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"14322:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17882,"indexExpression":{"argumentTypes":null,"id":17881,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"14332:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14322:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14294:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17885,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14363:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"14363:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17887,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"14381:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14381:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"14363:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17890,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14362:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17891,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14407:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"14407:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17893,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"14425:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14425:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"14407:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14406:48:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14362:92:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50726f706f73616c2073686f756c64206265204578656375746564206f722045787069726564496e5175657565","id":17898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14464:47:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4e192fc0c0c06bbf22b55d1039c663d5c5a02b944d66c77797d07c1d4ad01bb5","typeString":"literal_string \"Proposal should be Executed or ExpiredInQueue\""},"value":"Proposal should be Executed or ExpiredInQueue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4e192fc0c0c06bbf22b55d1039c663d5c5a02b944d66c77797d07c1d4ad01bb5","typeString":"literal_string \"Proposal should be Executed or ExpiredInQueue\""}],"id":17884,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"14354:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14354:158:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17900,"nodeType":"ExpressionStatement","src":"14354:158:58"},{"assignments":[17902],"declarations":[{"constant":false,"id":17902,"name":"params","nodeType":"VariableDeclaration","scope":18314,"src":"14522:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":17901,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"14522:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":17907,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17903,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"14549:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17906,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17904,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14560:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"14560:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14549:31:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14522:58:58"},{"assignments":[17909],"declarations":[{"constant":false,"id":17909,"name":"staker","nodeType":"VariableDeclaration","scope":18314,"src":"14610:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"},"typeName":{"contractScope":null,"id":17908,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"14610:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}},"value":null,"visibility":"internal"}],"id":17914,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17910,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14634:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"14634:16:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":17913,"indexExpression":{"argumentTypes":null,"id":17912,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"14651:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14634:30:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14610:54:58"},{"assignments":[17916],"declarations":[{"constant":false,"id":17916,"name":"totalWinningStakes","nodeType":"VariableDeclaration","scope":18314,"src":"14674:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17915,"name":"uint256","nodeType":"ElementaryTypeName","src":"14674:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17922,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17917,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14703:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"14703:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17921,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17919,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14719:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"14719:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14703:37:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14674:66:58"},{"assignments":[17924],"declarations":[{"constant":false,"id":17924,"name":"totalStakesLeftAfterCallBounty","nodeType":"VariableDeclaration","scope":18314,"src":"14750:38:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17923,"name":"uint256","nodeType":"ElementaryTypeName","src":"14750:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17940,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17937,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"14871:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17936,"name":"calcExecuteCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18492,"src":"14849:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":17938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14849:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17930,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14823:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"14823:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17933,"indexExpression":{"argumentTypes":null,"id":17932,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"14839:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14823:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17925,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14799:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"14799:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17928,"indexExpression":{"argumentTypes":null,"id":17927,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"14815:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14799:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"14799:23:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14799:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"14799:49:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14799:85:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14750:134:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17941,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"14898:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"14898:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":17943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14914:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14898:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18020,"nodeType":"IfStatement","src":"14894:823:58","trueBody":{"id":18019,"nodeType":"Block","src":"14917:800:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17945,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14936:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"14936:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17947,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"14954:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14954:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"14936:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17958,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15139:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"15139:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17960,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15154:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"15154:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15139:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18011,"nodeType":"IfStatement","src":"15135:541:58","trueBody":{"id":18010,"nodeType":"Block","src":"15176:500:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17963,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15198:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"15198:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":17965,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"15213:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15198:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18008,"nodeType":"Block","src":"15538:124:58","statements":[{"expression":{"argumentTypes":null,"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17995,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15560:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":17997,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15568:1:58","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":"15560:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18001,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"15592:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17998,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15574:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15574:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15574:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15574:49:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15573:51:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":18004,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"15625:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15573:70:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15560:83:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18007,"nodeType":"ExpressionStatement","src":"15560:83:58"}]},"id":18009,"nodeType":"IfStatement","src":"15194:468:58","trueBody":{"id":17994,"nodeType":"Block","src":"15218:314:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17967,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15244:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"15244:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":17969,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"15265:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15244:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":17993,"nodeType":"IfStatement","src":"15240:274:58","trueBody":{"id":17992,"nodeType":"Block","src":"15297:217:58","statements":[{"assignments":[17972],"declarations":[{"constant":false,"id":17972,"name":"_totalStakes","nodeType":"VariableDeclaration","scope":17992,"src":"15323:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17971,"name":"uint256","nodeType":"ElementaryTypeName","src":"15323:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17978,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17975,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15381:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"15381:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17973,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"15346:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"15346:34:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15346:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15323:77:58"},{"expression":{"argumentTypes":null,"id":17990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17979,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15426:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":17981,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15434:1:58","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":"15426:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17985,"name":"_totalStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17972,"src":"15458:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17982,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15440:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15440:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15440:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15440:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17987,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15439:33:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":17988,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"15473:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15439:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15426:65:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17991,"nodeType":"ExpressionStatement","src":"15426:65:58"}]}}]}}]}},"id":18012,"nodeType":"IfStatement","src":"14932:744:58","trueBody":{"id":17957,"nodeType":"Block","src":"14984:145:58","statements":[{"expression":{"argumentTypes":null,"id":17955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17950,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15088:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":17952,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15096:1:58","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":"15088:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17953,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15101:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15101:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15088:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17956,"nodeType":"ExpressionStatement","src":"15088:26:58"}]}},{"expression":{"argumentTypes":null,"id":18017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18013,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15689:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15689:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":18016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15705:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15689:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18018,"nodeType":"ExpressionStatement","src":"15689:17:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18021,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15768:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoRedeemItsWinnings","nodeType":"MemberAccess","referencedDeclaration":17225,"src":"15768:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":18023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15801:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15768:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18025,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"15822:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18026,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"15838:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18029,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18027,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15852:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"15852:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15838:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15822:54:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15768:108:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18032,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15892:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"15892:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18034,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"15910:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15910:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"15892:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15768:170:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18038,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15954:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"15954:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18040,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"15978:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15954:26:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15768:212:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18072,"nodeType":"IfStatement","src":"15764:459:58","trueBody":{"id":18071,"nodeType":"Block","src":"15982:241:58","statements":[{"expression":{"argumentTypes":null,"id":18063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18043,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15996:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18045,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16004:1:58","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":"15996:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18060,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16143:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"16143:18:58","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":18057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18053,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"16073:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18050,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16050:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"16050:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16050:22:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16050:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18055,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16049:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":18056,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"16106:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16049:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18046,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"16021:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18048,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16029:1:58","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":"16021:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"16021:27:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16021:104:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"16021:121:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16021:141:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15996:166:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18064,"nodeType":"ExpressionStatement","src":"15996:166:58"},{"expression":{"argumentTypes":null,"id":18069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18065,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoRedeemItsWinnings","nodeType":"MemberAccess","referencedDeclaration":17225,"src":"16176:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":18068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16208:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16176:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18070,"nodeType":"ExpressionStatement","src":"16176:36:58"}]}},{"assignments":[18074],"declarations":[{"constant":false,"id":18074,"name":"voter","nodeType":"VariableDeclaration","scope":18314,"src":"16252:19:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"},"typeName":{"contractScope":null,"id":18073,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":17188,"src":"16252:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"}},"value":null,"visibility":"internal"}],"id":18079,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18075,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16274:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"16274:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":18078,"indexExpression":{"argumentTypes":null,"id":18077,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"16290:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16274:29:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16252:51:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18080,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16318:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"16318:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16338:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16318:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16317:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18085,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16345:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoosted","nodeType":"MemberAccess","referencedDeclaration":17187,"src":"16345:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16344:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16317:45:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18189,"nodeType":"IfStatement","src":"16313:944:58","trueBody":{"id":18188,"nodeType":"Block","src":"16364:893:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18089,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16382:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"16382:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18091,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"16400:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16400:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"16382:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16599:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"16599:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18112,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16623:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"16623:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16599:34:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18180,"nodeType":"IfStatement","src":"16595:618:58","trueBody":{"id":18179,"nodeType":"Block","src":"16635:578:58","statements":[{"assignments":[18116],"declarations":[{"constant":false,"id":18116,"name":"lostReputation","nodeType":"VariableDeclaration","scope":18179,"src":"16653:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16653:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18117,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"16653:22:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16697:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"16697:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18120,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"16721:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16697:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18137,"nodeType":"Block","src":"16818:87:58","statements":[{"expression":{"argumentTypes":null,"id":18135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18130,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16840:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18131,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16857:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"16857:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18134,"indexExpression":{"argumentTypes":null,"id":18133,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"16882:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16857:29:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16840:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18136,"nodeType":"ExpressionStatement","src":"16840:46:58"}]},"id":18138,"nodeType":"IfStatement","src":"16693:212:58","trueBody":{"id":18129,"nodeType":"Block","src":"16726:86:58","statements":[{"expression":{"argumentTypes":null,"id":18127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18122,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16748:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18123,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16765:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"16765:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18126,"indexExpression":{"argumentTypes":null,"id":18125,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"16790:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16765:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16748:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18128,"nodeType":"ExpressionStatement","src":"16748:45:58"}]}},{"expression":{"argumentTypes":null,"id":18148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18139,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16922:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18142,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"16959:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"16959:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18140,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16940:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16940:18:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16940:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16939:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16994:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"16939:58:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16922:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18149,"nodeType":"ExpressionStatement","src":"16922:75:58"},{"expression":{"argumentTypes":null,"id":18177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18150,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17015:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18152,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17023:1:58","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":"17015:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18167,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"17134:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18164,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"17113:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"17113:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"17113:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17113:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17112:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18170,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17151:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"17151:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18174,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18172,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"17176:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17151:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17112:85:58","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":18161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18156,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"17051:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"17051:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18153,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"17030:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"17030:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"17030:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17030:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18159,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17029:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17086:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"17029:60:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18162,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17028:62:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"17028:83:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17028:170:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17015:183:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18178,"nodeType":"ExpressionStatement","src":"17015:183:58"}]}},"id":18181,"nodeType":"IfStatement","src":"16378:835:58","trueBody":{"id":18109,"nodeType":"Block","src":"16430:159:58","statements":[{"expression":{"argumentTypes":null,"id":18107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18094,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"16499:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18096,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16507:1:58","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":"16499:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18100,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"16535:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"16535:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18097,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16514:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"16514:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16514:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16514:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18103,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16513:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16570:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"16513:60:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16512:62:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16499:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18108,"nodeType":"ExpressionStatement","src":"16499:75:58"}]}},{"expression":{"argumentTypes":null,"id":18186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18182,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"17226:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"17226:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":18185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17245:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17226:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18187,"nodeType":"ExpressionStatement","src":"17226:20:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18190,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17293:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"17293:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18192,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17314:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17293:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18194,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17292:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18195,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17330:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"17330:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18197,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"17354:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17330:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18199,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17329:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17292:66:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18201,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17361:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"17361:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":18204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17390:1:58","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":18203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17382:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":18205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17382:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17361:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18207,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17360:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17292:101:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18225,"nodeType":"IfStatement","src":"17288:214:58","trueBody":{"id":18224,"nodeType":"Block","src":"17395:107:58","statements":[{"expression":{"argumentTypes":null,"id":18214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18209,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17409:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18211,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17417:1:58","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":"17409:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18212,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"17422:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposingRepReward","nodeType":"MemberAccess","referencedDeclaration":17170,"src":"17422:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17409:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18215,"nodeType":"ExpressionStatement","src":"17409:38:58"},{"expression":{"argumentTypes":null,"id":18222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18216,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17461:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"17461:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":18220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:58","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":18219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17481:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":18221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17481:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17461:30:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18223,"nodeType":"ExpressionStatement","src":"17461:30:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18226,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17515:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18228,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17523:1:58","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":"17515:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17529:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17515:15:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18267,"nodeType":"IfStatement","src":"17511:313:58","trueBody":{"id":18266,"nodeType":"Block","src":"17532:292:58","statements":[{"expression":{"argumentTypes":null,"id":18241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18231,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17546:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"17546:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18237,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17594:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18239,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17602:1:58","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":"17594:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18234,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17569:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"17569:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"17569:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17569:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17546:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18242,"nodeType":"ExpressionStatement","src":"17546:59:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18246,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17649:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18247,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17663:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18249,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17671:1:58","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":"17663:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18244,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"17627:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":18245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"17627:21:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":18250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17627:47:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7472616e7366657220746f2062656e6566696369617279206661696c6564","id":18251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17676:32:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_01f9c28ec45391324b198ba689dab8ac93829b0379c464b3a8745b9a5d1be004","typeString":"literal_string \"transfer to beneficiary failed\""},"value":"transfer to beneficiary failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01f9c28ec45391324b198ba689dab8ac93829b0379c464b3a8745b9a5d1be004","typeString":"literal_string \"transfer to beneficiary failed\""}],"id":18243,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"17619:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17619:90:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18253,"nodeType":"ExpressionStatement","src":"17619:90:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18255,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"17735:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18256,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"17748:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18259,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18257,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17762:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"17762:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17748:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18260,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17788:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18261,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17802:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18263,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17810:1:58","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":"17802:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18254,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17268,"src":"17728:6:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":18264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17728:85:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18265,"nodeType":"EmitStatement","src":"17723:90:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18272,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17852:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18274,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17860:1:58","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":"17852:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18268,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17837:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18270,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17845:1:58","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":"17837:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"17837:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17837:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17867:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17837:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18313,"nodeType":"IfStatement","src":"17833:388:58","trueBody":{"id":18312,"nodeType":"Block","src":"17870:351:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18287,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17979:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18289,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17987:1:58","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":"17979:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18283,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17964:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18285,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17972:1:58","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":"17964:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"17964:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17964:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":18291,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17992:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18292,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"18006:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18279,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17916:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"17916:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18278,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"17884:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17884:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":19981,"src":"17884:79:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,address,bytes32) external returns (bool)"}},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17884:134:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18294,"nodeType":"ExpressionStatement","src":"17884:134:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18296,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"18067:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18297,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"18092:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18300,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18298,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"18106:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"18106:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18092:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18301,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"18144:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18306,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"18185:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18308,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18193:1:58","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":"18185:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18302,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"18170:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18304,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18178:1:58","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":"18170:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"18170:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18170:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18295,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17288,"src":"18037:16:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":18310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18037:173:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18311,"nodeType":"EmitStatement","src":"18032:178:58"}]}}]},"documentation":"@dev redeem a reward for a successful stake, vote or proposing.\nThe function use a beneficiary address as a parameter (and not msg.sender) to enable\nusers to redeem on behalf of someone else.\n@param _proposalId the ID of the proposal\n@param _beneficiary - the beneficiary address\n@return rewards -\n [0] stakerTokenReward\n [1] voterReputationReward\n [2] proposerReputationReward","id":18315,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":17872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17869,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18315,"src":"14201:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14201:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17871,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":18315,"src":"14222:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17870,"name":"address","nodeType":"ElementaryTypeName","src":"14222:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"14200:43:58"},"returnParameters":{"id":17877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17876,"name":"rewards","nodeType":"VariableDeclaration","scope":18315,"src":"14260:22:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":17873,"name":"uint","nodeType":"ElementaryTypeName","src":"14260:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17875,"length":{"argumentTypes":null,"hexValue":"33","id":17874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14265:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"14260:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"}],"src":"14259:24:58"},"scope":19681,"src":"14185:4042:58","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":18452,"nodeType":"Block","src":"18864:1256:58","statements":[{"assignments":[18327],"declarations":[{"constant":false,"id":18327,"name":"proposal","nodeType":"VariableDeclaration","scope":18452,"src":"18874:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18326,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"18874:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18331,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18328,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"18902:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18330,"indexExpression":{"argumentTypes":null,"id":18329,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"18912:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18902:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18874:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18333,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"18942:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"18942:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18335,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"18960:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18960:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"18942:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18332,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"18934:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18934:49:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18339,"nodeType":"ExpressionStatement","src":"18934:49:58"},{"assignments":[18341],"declarations":[{"constant":false,"id":18341,"name":"totalWinningStakes","nodeType":"VariableDeclaration","scope":18452,"src":"18993:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18340,"name":"uint256","nodeType":"ElementaryTypeName","src":"18993:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18347,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18342,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19022:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"19022:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18346,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18344,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19038:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"19038:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19022:37:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18993:66:58"},{"assignments":[18349],"declarations":[{"constant":false,"id":18349,"name":"staker","nodeType":"VariableDeclaration","scope":18452,"src":"19069:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"},"typeName":{"contractScope":null,"id":18348,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"19069:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}},"value":null,"visibility":"internal"}],"id":18354,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18350,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19093:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"19093:16:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":18353,"indexExpression":{"argumentTypes":null,"id":18352,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18319,"src":"19110:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19093:30:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19069:54:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18355,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19151:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"19151:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19174:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19151:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18359,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19150:26:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18360,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19192:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"19192:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18362,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19207:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"19207:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19192:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18365,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19191:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19150:78:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18367,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19244:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"19244:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18369,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"19268:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19244:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18371,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19243:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19150:122:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18373,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18341,"src":"19288:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19310:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19288:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18376,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19287:25:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19150:162:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18390,"nodeType":"IfStatement","src":"19133:318:58","trueBody":{"id":18389,"nodeType":"Block","src":"19314:137:58","statements":[{"expression":{"argumentTypes":null,"id":18387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18378,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19356:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18379,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19375:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"19375:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18381,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19398:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"19398:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19375:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19374:43:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":18385,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18341,"src":"19418:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19374:62:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19356:80:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18388,"nodeType":"ExpressionStatement","src":"19356:80:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18391,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19465:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19484:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19465:20:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18394,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19464:22:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18400,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"19589:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":18401,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"19603:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18396,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19534:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"19534:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18395,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"19502:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19502:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfStakingToken","nodeType":"MemberAccess","referencedDeclaration":20030,"src":"19502:86:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IERC20_$21017_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (contract IERC20,bytes32) view external returns (uint256)"}},"id":18402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19502:113:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":18403,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19619:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19502:132:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19501:134:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19464:171:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18451,"nodeType":"IfStatement","src":"19460:654:58","trueBody":{"id":18450,"nodeType":"Block","src":"19637:477:58","statements":[{"expression":{"argumentTypes":null,"id":18411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18407,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19651:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"19651:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":18410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19674:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19651:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18412,"nodeType":"ExpressionStatement","src":"19651:24:58"},{"expression":{"argumentTypes":null,"id":18421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18413,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19689:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"19689:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18419,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19745:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19716:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"19716:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"19716:28:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19716:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19689:72:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18422,"nodeType":"ExpressionStatement","src":"19689:72:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18429,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"19882:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":18430,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18319,"src":"19896:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18431,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19910:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":18432,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"19927:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18425,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19828:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"19828:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18424,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"19796:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19796:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"stakingTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":20005,"src":"19796:85:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,bytes32) external returns (bool)"}},"id":18433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19796:143:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"19775:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19775:165:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18435,"nodeType":"ExpressionStatement","src":"19775:165:58"},{"expression":{"argumentTypes":null,"id":18438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18436,"name":"redeemedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18322,"src":"19954:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18437,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19971:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19954:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18439,"nodeType":"ExpressionStatement","src":"19954:32:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18441,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"20021:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18442,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"20034:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18445,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18443,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"20048:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"20048:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20034:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18446,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18319,"src":"20074:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18447,"name":"redeemedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18322,"src":"20088:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18440,"name":"RedeemDaoBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"20005:15:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":18448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20005:98:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18449,"nodeType":"EmitStatement","src":"20000:103:58"}]}}]},"documentation":"@dev redeemDaoBounty a reward for a successful stake.\nThe function use a beneficiary address as a parameter (and not msg.sender) to enable\nusers to redeem on behalf of someone else.\n@param _proposalId the ID of the proposal\n@param _beneficiary - the beneficiary address\n@return redeemedAmount - redeem token amount\n@return potentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )","id":18453,"implemented":true,"kind":"function","modifiers":[],"name":"redeemDaoBounty","nodeType":"FunctionDefinition","parameters":{"id":18320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18317,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18453,"src":"18749:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18749:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":18319,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":18453,"src":"18770:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18318,"name":"address","nodeType":"ElementaryTypeName","src":"18770:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"18748:43:58"},"returnParameters":{"id":18325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18322,"name":"redeemedAmount","nodeType":"VariableDeclaration","scope":18453,"src":"18815:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18321,"name":"uint256","nodeType":"ElementaryTypeName","src":"18815:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":18324,"name":"potentialAmount","nodeType":"VariableDeclaration","scope":18453,"src":"18839:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18323,"name":"uint256","nodeType":"ElementaryTypeName","src":"18839:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18814:49:58"},"scope":19681,"src":"18724:1396:58","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":18491,"nodeType":"Block","src":"20391:269:58","statements":[{"assignments":[18461],"declarations":[{"constant":false,"id":18461,"name":"maxRewardSeconds","nodeType":"VariableDeclaration","scope":18491,"src":"20401:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18460,"name":"uint","nodeType":"ElementaryTypeName","src":"20401:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18463,"initialValue":{"argumentTypes":null,"hexValue":"31353030","id":18462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20425:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1500_by_1","typeString":"int_const 1500"},"value":"1500"},"nodeType":"VariableDeclarationStatement","src":"20401:28:58"},{"assignments":[18465],"declarations":[{"constant":false,"id":18465,"name":"rewardSeconds","nodeType":"VariableDeclaration","scope":18491,"src":"20439:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18464,"name":"uint","nodeType":"ElementaryTypeName","src":"20439:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18475,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18470,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"20498:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18472,"indexExpression":{"argumentTypes":null,"id":18471,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"20508:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20498:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":18473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"secondsFromTimeOutTillExecuteBoosted","nodeType":"MemberAccess","referencedDeclaration":17219,"src":"20498:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18467,"name":"maxRewardSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18461,"src":"20476:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20468:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":18468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20468:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":20175,"src":"20468:29:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20468:90:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20439:119:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18486,"name":"maxRewardSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18461,"src":"20633:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3130","id":18487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20650:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"20633:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18478,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"20593:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18480,"indexExpression":{"argumentTypes":null,"id":18479,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"20603:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20593:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":18481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"20593:29:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18483,"indexExpression":{"argumentTypes":null,"id":18482,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"20623:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20593:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18476,"name":"rewardSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18465,"src":"20575:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"20575:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20575:53:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"20575:57:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20575:78:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18459,"id":18490,"nodeType":"Return","src":"20568:85:58"}]},"documentation":"@dev calcExecuteCallBounty calculate the execute boosted call bounty\n@param _proposalId the ID of the proposal\n@return uint256 executeCallBounty","id":18492,"implemented":true,"kind":"function","modifiers":[],"name":"calcExecuteCallBounty","nodeType":"FunctionDefinition","parameters":{"id":18456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18455,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18492,"src":"20341:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20341:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"20340:21:58"},"returnParameters":{"id":18459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18458,"name":"","nodeType":"VariableDeclaration","scope":18492,"src":"20382:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18457,"name":"uint256","nodeType":"ElementaryTypeName","src":"20382:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20381:9:58"},"scope":19681,"src":"20310:350:58","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":18517,"nodeType":"Block","src":"20914:162:58","statements":[{"assignments":[18500],"declarations":[{"constant":false,"id":18500,"name":"proposal","nodeType":"VariableDeclaration","scope":18517,"src":"20924:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18499,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"20924:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18504,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18501,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"20951:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18503,"indexExpression":{"argumentTypes":null,"id":18502,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"20961:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20951:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20924:49:58"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18506,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"20998:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18505,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"20991:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20991:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18509,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18500,"src":"21023:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":18510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"21023:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18511,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18500,"src":"21044:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":18512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"21044:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18508,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"21013:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":18513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21013:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20991:77:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20990:79:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18498,"id":18516,"nodeType":"Return","src":"20983:86:58"}]},"documentation":"@dev shouldBoost check if a proposal should be shifted to boosted phase.\n@param _proposalId the ID of the proposal\n@return bool true or false.","id":18518,"implemented":true,"kind":"function","modifiers":[],"name":"shouldBoost","nodeType":"FunctionDefinition","parameters":{"id":18495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18494,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18518,"src":"20867:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20867:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"20866:21:58"},"returnParameters":{"id":18498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18497,"name":"","nodeType":"VariableDeclaration","scope":18518,"src":"20908:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18496,"name":"bool","nodeType":"ElementaryTypeName","src":"20908:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"20907:6:58"},"scope":19681,"src":"20846:230:58","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":18556,"nodeType":"Block","src":"21596:290:58","statements":[{"assignments":[18528],"declarations":[{"constant":false,"id":18528,"name":"power","nodeType":"VariableDeclaration","scope":18556,"src":"21606:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18527,"name":"uint256","nodeType":"ElementaryTypeName","src":"21606:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18532,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18529,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"21622:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18531,"indexExpression":{"argumentTypes":null,"id":18530,"name":"_organizationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18522,"src":"21645:15:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21622:39:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21606:55:58"},{"assignments":[18534],"declarations":[{"constant":false,"id":18534,"name":"params","nodeType":"VariableDeclaration","scope":18556,"src":"21671:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":18533,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"21671:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":18538,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18535,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"21699:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":18537,"indexExpression":{"argumentTypes":null,"id":18536,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18520,"src":"21710:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21699:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21671:51:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18539,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"21737:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18540,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18534,"src":"21745:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters storage pointer"}},"id":18541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"limitExponentValue","nodeType":"MemberAccess","referencedDeclaration":17166,"src":"21745:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21737:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18549,"nodeType":"IfStatement","src":"21733:97:58","trueBody":{"id":18548,"nodeType":"Block","src":"21772:58:58","statements":[{"expression":{"argumentTypes":null,"id":18546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18543,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"21786:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18544,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18534,"src":"21794:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters storage pointer"}},"id":18545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"limitExponentValue","nodeType":"MemberAccess","referencedDeclaration":17166,"src":"21794:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21786:33:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18547,"nodeType":"ExpressionStatement","src":"21786:33:58"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18553,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"21873:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18550,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18534,"src":"21847:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters storage pointer"}},"id":18551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"thresholdConst","nodeType":"MemberAccess","referencedDeclaration":17164,"src":"21847:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pow","nodeType":"MemberAccess","referencedDeclaration":15159,"src":"21847:25:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21847:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18526,"id":18555,"nodeType":"Return","src":"21840:39:58"}]},"documentation":"@dev threshold return the organization's score threshold which required by\na proposal to shift to boosted state.\nThis threshold is dynamically set and it depend on the number of boosted proposal.\n@param _organizationId the organization identifier\n@param _paramsHash the organization parameters hash\n@return uint256 organization's score threshold as real number.","id":18557,"implemented":true,"kind":"function","modifiers":[],"name":"threshold","nodeType":"FunctionDefinition","parameters":{"id":18523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18520,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":18557,"src":"21521:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21521:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":18522,"name":"_organizationId","nodeType":"VariableDeclaration","scope":18557,"src":"21542:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21542:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"21520:46:58"},"returnParameters":{"id":18526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18525,"name":"","nodeType":"VariableDeclaration","scope":18557,"src":"21587:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18524,"name":"uint256","nodeType":"ElementaryTypeName","src":"21587:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21586:9:58"},"scope":19681,"src":"21502:384:58","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":18613,"nodeType":"Block","src":"22171:571:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18574,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22391:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18576,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22399:1:58","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":"22391:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18577,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22419:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18579,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22427:1:58","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":"22419:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18580,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22447:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18582,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:58","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":"22447:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18583,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22475:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18585,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":18584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22483:1:58","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":"22475:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18586,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22503:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18588,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":18587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22511:1:58","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":"22503:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18589,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22531:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18591,"indexExpression":{"argumentTypes":null,"hexValue":"35","id":18590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22539:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22531:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18592,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22559:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18594,"indexExpression":{"argumentTypes":null,"hexValue":"36","id":18593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22567:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22559:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18595,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22587:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18597,"indexExpression":{"argumentTypes":null,"hexValue":"37","id":18596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22595:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22587:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18598,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22615:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18600,"indexExpression":{"argumentTypes":null,"hexValue":"38","id":18599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22623:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22615:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18601,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22643:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18603,"indexExpression":{"argumentTypes":null,"hexValue":"39","id":18602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22651:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22643:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18604,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22671:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18606,"indexExpression":{"argumentTypes":null,"hexValue":"3130","id":18605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22679:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22671:11:58","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"},{"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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"22357:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22357:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22357:326:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18571,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"22334:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22334:363:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":18609,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18563,"src":"22711:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":18569,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"22304:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22304:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22304:430:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18568,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"22281:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22281:454:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":18567,"id":18612,"nodeType":"Return","src":"22274:461:58"}]},"documentation":"@dev hashParameters returns a hash of the given parameters","id":18614,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":18564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18561,"name":"_params","nodeType":"VariableDeclaration","scope":18614,"src":"22004:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11]"},"typeName":{"baseType":{"id":18558,"name":"uint","nodeType":"ElementaryTypeName","src":"22004:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18560,"length":{"argumentTypes":null,"hexValue":"3131","id":18559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22009:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"nodeType":"ArrayTypeName","src":"22004:8:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_storage_ptr","typeString":"uint256[11]"}},"value":null,"visibility":"internal"},{"constant":false,"id":18563,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":18614,"src":"22082:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18562,"name":"address","nodeType":"ElementaryTypeName","src":"22082:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"21994:115:58"},"returnParameters":{"id":18567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18566,"name":"","nodeType":"VariableDeclaration","scope":18614,"src":"22154:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22154:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"22153:9:58"},"scope":19681,"src":"21968:774:58","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":19117,"nodeType":"Block","src":"23158:6329:58","statements":[{"assignments":[18625],"declarations":[{"constant":false,"id":18625,"name":"proposal","nodeType":"VariableDeclaration","scope":19117,"src":"23168:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18624,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"23168:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18629,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18626,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"23196:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18628,"indexExpression":{"argumentTypes":null,"id":18627,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"23206:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23196:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23168:50:58"},{"assignments":[18631],"declarations":[{"constant":false,"id":18631,"name":"params","nodeType":"VariableDeclaration","scope":19117,"src":"23228:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":18630,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"23228:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":18636,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18632,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"23255:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":18635,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18633,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23266:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"23266:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23255:31:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23228:58:58"},{"assignments":[18638],"declarations":[{"constant":false,"id":18638,"name":"tmpProposal","nodeType":"VariableDeclaration","scope":19117,"src":"23296:27:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18637,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"23296:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18640,"initialValue":{"argumentTypes":null,"id":18639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23326:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23296:38:58"},{"assignments":[18642],"declarations":[{"constant":false,"id":18642,"name":"totalReputation","nodeType":"VariableDeclaration","scope":19117,"src":"23344:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18641,"name":"uint256","nodeType":"ElementaryTypeName","src":"23344:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18650,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18648,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"23455:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23410:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"23410:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18643,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"23378:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23378:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalReputationSupply","nodeType":"MemberAccess","referencedDeclaration":20012,"src":"23378:76:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":18649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23378:89:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23344:123:58"},{"assignments":[18652],"declarations":[{"constant":false,"id":18652,"name":"executionBar","nodeType":"VariableDeclaration","scope":19117,"src":"23527:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18651,"name":"uint256","nodeType":"ElementaryTypeName","src":"23527:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18660,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18653,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18642,"src":"23551:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23567:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23551:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23550:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18657,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"23574:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"queuedVoteRequiredPercentage","nodeType":"MemberAccess","referencedDeclaration":17156,"src":"23574:35:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23550:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23527:82:58"},{"assignments":[18662],"declarations":[{"constant":false,"id":18662,"name":"executionState","nodeType":"VariableDeclaration","scope":19117,"src":"23619:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"typeName":{"contractScope":null,"id":18661,"name":"ExecutionState","nodeType":"UserDefinedTypeName","referencedDeclaration":17154,"src":"23619:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"value":null,"visibility":"internal"}],"id":18665,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18663,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"23651:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"None","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23651:19:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"VariableDeclarationStatement","src":"23619:51:58"},{"assignments":[18667],"declarations":[{"constant":false,"id":18667,"name":"averageDownstakesOfBoosted","nodeType":"VariableDeclaration","scope":19117,"src":"23680:34:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18666,"name":"uint256","nodeType":"ElementaryTypeName","src":"23680:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18668,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"23680:34:58"},{"assignments":[18670],"declarations":[{"constant":false,"id":18670,"name":"confidenceThreshold","nodeType":"VariableDeclaration","scope":19117,"src":"23724:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18669,"name":"uint256","nodeType":"ElementaryTypeName","src":"23724:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18671,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"23724:27:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18672,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23766:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"23766:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18676,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18674,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23781:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"23781:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23766:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18677,"name":"executionBar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18652,"src":"23805:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23766:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18942,"nodeType":"Block","src":"24314:3135:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18717,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24332:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24332:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18719,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24350:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24350:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24332:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18791,"nodeType":"IfStatement","src":"24328:944:58","trueBody":{"id":18790,"nodeType":"Block","src":"24372:900:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18722,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"24457:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18723,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24463:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"24463:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18726,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24478:1:58","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":"24463:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24457:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18728,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24456:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18729,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"24485:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"queuedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17158,"src":"24485:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24456:57:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18788,"nodeType":"Block","src":"24720:538:58","statements":[{"expression":{"argumentTypes":null,"id":18758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18751,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"24742:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18753,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24774:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"24774:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18755,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24795:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"24795:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18752,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"24764:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":18757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24764:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24742:77:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18759,"nodeType":"ExpressionStatement","src":"24742:77:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18761,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"24852:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18760,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"24845:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24845:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18763,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"24867:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24845:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18787,"nodeType":"IfStatement","src":"24841:399:58","trueBody":{"id":18786,"nodeType":"Block","src":"24888:352:58","statements":[{"expression":{"argumentTypes":null,"id":18770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18765,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24981:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24981:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18768,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24998:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24998:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24981:41:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18771,"nodeType":"ExpressionStatement","src":"24981:41:58"},{"expression":{"argumentTypes":null,"id":18778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18772,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25118:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"25118:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18776,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:58","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":"25118:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18777,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"25138:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25118:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18779,"nodeType":"ExpressionStatement","src":"25118:23:58"},{"expression":{"argumentTypes":null,"id":18784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18780,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25167:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"25167:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18783,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"25198:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25167:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18785,"nodeType":"ExpressionStatement","src":"25167:50:58"}]}}]},"id":18789,"nodeType":"IfStatement","src":"24452:806:58","trueBody":{"id":18750,"nodeType":"Block","src":"24515:199:58","statements":[{"expression":{"argumentTypes":null,"id":18737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18732,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24537:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24537:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18735,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24554:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24554:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24537:45:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18738,"nodeType":"ExpressionStatement","src":"24537:45:58"},{"expression":{"argumentTypes":null,"id":18743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18739,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24604:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"24604:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18742,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"24627:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24604:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18744,"nodeType":"ExpressionStatement","src":"24604:25:58"},{"expression":{"argumentTypes":null,"id":18748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18745,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"24651:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18746,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"24668:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QueueTimeOut","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24668:27:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"24651:44:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18749,"nodeType":"ExpressionStatement","src":"24651:44:58"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18792,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25290:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"25290:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18794,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"25308:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"25308:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"25290:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18941,"nodeType":"IfStatement","src":"25286:2153:58","trueBody":{"id":18940,"nodeType":"Block","src":"25334:2105:58","statements":[{"expression":{"argumentTypes":null,"id":18804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18797,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"25352:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18799,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25384:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"25384:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18801,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25405:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"25405:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18798,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"25374:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":18803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25374:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25352:77:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18805,"nodeType":"ExpressionStatement","src":"25352:77:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18806,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"25512:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18807,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25518:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"25518:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18810,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25533:1:58","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":"25518:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25512:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18812,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25511:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18813,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"25540:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17162,"src":"25540:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25511:61:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18938,"nodeType":"Block","src":"26878:547:58","statements":[{"assignments":[18900],"declarations":[{"constant":false,"id":18900,"name":"proposalScore","nodeType":"VariableDeclaration","scope":18938,"src":"26939:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18899,"name":"uint256","nodeType":"ElementaryTypeName","src":"26939:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18904,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18902,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"26970:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18901,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"26963:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26963:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26939:43:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18905,"name":"proposalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18900,"src":"27008:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18909,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"27058:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18906,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27025:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"27025:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":20175,"src":"27025:32:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27025:53:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27008:70:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18920,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"27176:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18922,"name":"proposalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18900,"src":"27207:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27176:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18936,"nodeType":"IfStatement","src":"27172:235:58","trueBody":{"id":18935,"nodeType":"Block","src":"27222:185:58","statements":[{"expression":{"argumentTypes":null,"id":18928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18924,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27248:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"27248:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18927,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"27279:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27248:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18929,"nodeType":"ExpressionStatement","src":"27248:50:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18931,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"27351:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":18932,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"27364:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18930,"name":"ConfidenceLevelChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"27329:21:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":18933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27329:55:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18934,"nodeType":"EmitStatement","src":"27324:60:58"}]}},"id":18937,"nodeType":"IfStatement","src":"27004:403:58","trueBody":{"id":18919,"nodeType":"Block","src":"27080:86:58","statements":[{"expression":{"argumentTypes":null,"id":18917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18912,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27106:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27106:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18915,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27123:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27123:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27106:37:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18918,"nodeType":"ExpressionStatement","src":"27106:37:58"}]}}]},"id":18939,"nodeType":"IfStatement","src":"25507:1918:58","trueBody":{"id":18898,"nodeType":"Block","src":"25574:1298:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18817,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"25607:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18816,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"25600:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25600:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18819,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"25622:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25600:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18896,"nodeType":"Block","src":"26768:86:58","statements":[{"expression":{"argumentTypes":null,"id":18894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18889,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26794:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"26794:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18892,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"26811:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"26811:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"26794:37:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18895,"nodeType":"ExpressionStatement","src":"26794:37:58"}]},"id":18897,"nodeType":"IfStatement","src":"25596:1258:58","trueBody":{"id":18888,"nodeType":"Block","src":"25643:1119:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18821,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"25673:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18824,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18822,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25696:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"25696:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25673:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":18825,"name":"MAX_BOOSTED_PROPOSALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17353,"src":"25723:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25673:71:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18887,"nodeType":"IfStatement","src":"25669:1071:58","trueBody":{"id":18886,"nodeType":"Block","src":"25746:994:58","statements":[{"expression":{"argumentTypes":null,"id":18832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18827,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25841:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"25841:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18830,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"25858:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"25858:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"25841:38:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18833,"nodeType":"ExpressionStatement","src":"25841:38:58"},{"expression":{"argumentTypes":null,"id":18840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18834,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25980:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"25980:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18838,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25995:1:58","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":"25980:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18839,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"26000:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25980:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18841,"nodeType":"ExpressionStatement","src":"25980:23:58"},{"expression":{"argumentTypes":null,"id":18846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26033:49:58","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18842,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"26033:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18845,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18843,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26056:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26056:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26033:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18847,"nodeType":"ExpressionStatement","src":"26033:49:58"},{"expression":{"argumentTypes":null,"id":18853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18848,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"26216:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18849,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"26245:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18852,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18850,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26273:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26273:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26245:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26216:81:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18854,"nodeType":"ExpressionStatement","src":"26216:81:58"},{"expression":{"argumentTypes":null,"id":18884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18855,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"26393:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18858,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18856,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26421:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26421:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26393:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18861,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"26495:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26488:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26488:34:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18864,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26566:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"26566:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18867,"indexExpression":{"argumentTypes":null,"id":18866,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"26582:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26566:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26559:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26559:27:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18870,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"26594:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26587:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26587:34:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26559:62:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":18873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26558:64:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18875,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"26663:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18878,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18876,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26686:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26686:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26663:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26656:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26656:55:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26558:153:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":18881,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26557:155:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26488:224:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26480:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":18883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26480:233:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26393:320:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18885,"nodeType":"ExpressionStatement","src":"26393:320:58"}]}}]}}]}}]}}]},"id":18943,"nodeType":"IfStatement","src":"23762:3687:58","trueBody":{"id":18716,"nodeType":"Block","src":"23819:489:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18679,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23898:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"23898:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18681,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"23916:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23916:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"23898:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18690,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24028:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24028:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18692,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24046:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24046:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24028:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18706,"nodeType":"Block","src":"24163:82:58","statements":[{"expression":{"argumentTypes":null,"id":18704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18701,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"24181:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18702,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"24198:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24198:32:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"24181:49:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18705,"nodeType":"ExpressionStatement","src":"24181:49:58"}]},"id":18707,"nodeType":"IfStatement","src":"24024:221:58","trueBody":{"id":18700,"nodeType":"Block","src":"24072:85:58","statements":[{"expression":{"argumentTypes":null,"id":18698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18695,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"24090:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18696,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"24107:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoostedBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24107:35:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"24090:52:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18699,"nodeType":"ExpressionStatement","src":"24090:52:58"}]}},"id":18708,"nodeType":"IfStatement","src":"23894:351:58","trueBody":{"id":18689,"nodeType":"Block","src":"23938:80:58","statements":[{"expression":{"argumentTypes":null,"id":18687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18684,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"23956:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18685,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"23973:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QueueBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23973:30:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"23956:47:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18688,"nodeType":"ExpressionStatement","src":"23956:47:58"}]}},{"expression":{"argumentTypes":null,"id":18714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18709,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24258:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24258:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18712,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24275:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24275:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24258:39:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18715,"nodeType":"ExpressionStatement","src":"24258:39:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18944,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27464:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27464:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18946,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27482:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27482:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27464:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18949,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27463:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18950,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27521:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27521:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18952,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27539:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27539:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27521:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18955,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27520:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27463:108:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18982,"nodeType":"IfStatement","src":"27459:405:58","trueBody":{"id":18981,"nodeType":"Block","src":"27573:291:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18957,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"27650:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18958,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27656:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"27656:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18961,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27671:1:58","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":"27656:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27650:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18963,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27649:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18964,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27678:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"27678:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27649:67:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18980,"nodeType":"IfStatement","src":"27645:209:58","trueBody":{"id":18979,"nodeType":"Block","src":"27718:136:58","statements":[{"expression":{"argumentTypes":null,"id":18972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18967,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27736:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27736:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18970,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27753:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27753:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27736:39:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18973,"nodeType":"ExpressionStatement","src":"27736:39:58"},{"expression":{"argumentTypes":null,"id":18977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18974,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"27793:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18975,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"27810:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedTimeOut","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27810:29:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"27793:46:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18978,"nodeType":"ExpressionStatement","src":"27793:46:58"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":18986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18983,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"27878:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18984,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"27896:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"None","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27896:19:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"27878:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19097,"nodeType":"IfStatement","src":"27874:1431:58","trueBody":{"id":19096,"nodeType":"Block","src":"27917:1388:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":18990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18987,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"27936:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18988,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"27954:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedTimeOut","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27954:29:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"27936:47:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27935:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":18995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18992,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"28005:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18993,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"28023:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"28023:32:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"28005:50:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18996,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28004:52:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27935:121:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19060,"nodeType":"IfStatement","src":"27931:938:58","trueBody":{"id":19059,"nodeType":"Block","src":"28058:811:58","statements":[{"expression":{"argumentTypes":null,"id":19009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18998,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"28076:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19001,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18999,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"28099:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28099:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28076:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":19007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28200:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19002,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"28145:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19005,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19003,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"28168:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28168:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28145:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"28145:54:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28145:57:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28076:126:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19010,"nodeType":"ExpressionStatement","src":"28076:126:58"},{"assignments":[19012],"declarations":[{"constant":false,"id":19012,"name":"boostedProposals","nodeType":"VariableDeclaration","scope":19059,"src":"28317:24:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19011,"name":"uint256","nodeType":"ElementaryTypeName","src":"28317:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19017,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19013,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"28344:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19016,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19014,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"28367:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28367:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28344:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28317:77:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19018,"name":"boostedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"28416:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28436:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28416:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19057,"nodeType":"Block","src":"28542:313:58","statements":[{"expression":{"argumentTypes":null,"id":19034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19029,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"28564:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19030,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"28593:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19033,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19031,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28621:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28621:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28593:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28564:81:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19035,"nodeType":"ExpressionStatement","src":"28564:81:58"},{"expression":{"argumentTypes":null,"id":19055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19036,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"28667:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19039,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19037,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28695:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28695:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28667:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19047,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28798:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"28798:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19050,"indexExpression":{"argumentTypes":null,"id":19049,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"28814:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28798:19:58","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":19044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19042,"name":"boostedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"28774:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":19043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28791:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28774:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19040,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"28743:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"28743:30:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28743:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"28743:54:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28743:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19052,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28742:77:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":19053,"name":"boostedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"28820:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28742:94:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28667:169:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19056,"nodeType":"ExpressionStatement","src":"28667:169:58"}]},"id":19058,"nodeType":"IfStatement","src":"28412:443:58","trueBody":{"id":19028,"nodeType":"Block","src":"28439:97:58","statements":[{"expression":{"argumentTypes":null,"id":19026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19021,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"28461:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19024,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19022,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28489:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28489:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28461:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":19025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28516:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28461:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19027,"nodeType":"ExpressionStatement","src":"28461:56:58"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19062,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"28916:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19063,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"28941:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19066,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19064,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28955:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28955:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28941:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19067,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28993:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"28993:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19069,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18642,"src":"29027:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19061,"name":"ExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"28887:15:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":19070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28887:169:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19071,"nodeType":"EmitStatement","src":"28882:174:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19073,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"29093:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":19074,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"29106:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}],"id":19072,"name":"GPExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17300,"src":"29075:17:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ExecutionState_$17154_$returns$__$","typeString":"function (bytes32,enum GenesisProtocolLogic.ExecutionState)"}},"id":19075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29075:46:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19076,"nodeType":"EmitStatement","src":"29070:51:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19082,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"29196:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19084,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29213:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"29213:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29209:3:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":19086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29209:25:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19078,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29160:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"29160:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19077,"name":"ProposalExecuteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"29135:24:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ProposalExecuteInterface_$19828_$","typeString":"type(contract ProposalExecuteInterface)"}},"id":19080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29135:44:58","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":19081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeProposal","nodeType":"MemberAccess","referencedDeclaration":19827,"src":"29135:60:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_int256_$returns$_t_bool_$","typeString":"function (bytes32,int256) external returns (bool)"}},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29135:100:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19088,"nodeType":"ExpressionStatement","src":"29135:100:58"},{"expression":{"argumentTypes":null,"id":19094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19089,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29249:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"29249:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19092,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29270:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"29270:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29249:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19095,"nodeType":"ExpressionStatement","src":"29249:45:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19098,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"29318:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"29318:17:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19100,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29339:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"29339:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"29318:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19110,"nodeType":"IfStatement","src":"29314:111:58","trueBody":{"id":19109,"nodeType":"Block","src":"29355:70:58","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19104,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"29386:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19105,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29399:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"29399:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}],"id":19103,"name":"StateChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17294,"src":"29374:11:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ProposalState_$17147_$returns$__$","typeString":"function (bytes32,enum GenesisProtocolLogic.ProposalState)"}},"id":19107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29374:40:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19108,"nodeType":"EmitStatement","src":"29369:45:58"}]}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":19114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19111,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"29442:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19112,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"29460:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":19113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"None","nodeType":"MemberAccess","referencedDeclaration":null,"src":"29460:19:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"29442:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19115,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29441:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18623,"id":19116,"nodeType":"Return","src":"29434:46:58"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":19118,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":18619,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"23131:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18620,"modifierName":{"argumentTypes":null,"id":18618,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"23123:7:58","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"23123:20:58"}],"name":"_execute","nodeType":"FunctionDefinition","parameters":{"id":18617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18616,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19118,"src":"23093:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23093:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"23092:21:58"},"returnParameters":{"id":18623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18622,"name":"","nodeType":"VariableDeclaration","scope":19118,"src":"23152:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18621,"name":"bool","nodeType":"ElementaryTypeName","src":"23152:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"23151:6:58"},"scope":19681,"src":"23075:6412:58","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":19309,"nodeType":"Block","src":"29868:1705:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19132,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"29920:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":19133,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"29929:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29920:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19135,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"29947:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29955:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29947:9:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29920:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"77726f6e6720766f74652076616c7565","id":19139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29958:18:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d82d70f2dacf08ad4e0d64af0a4b6b4468b32b18c064b4e753cdfba3c6e5a6a8","typeString":"literal_string \"wrong vote value\""},"value":"wrong vote value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d82d70f2dacf08ad4e0d64af0a4b6b4468b32b18c064b4e753cdfba3c6e5a6a8","typeString":"literal_string \"wrong vote value\""}],"id":19131,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"29912:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29912:65:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19141,"nodeType":"ExpressionStatement","src":"29912:65:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19143,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19124,"src":"29995:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30005:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29995:11:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7374616b696e6720616d6f756e742073686f756c64206265203e30","id":19146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30008:29:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_91d4369e2212c0af5bece6ece1fcbdc47c9df9cbc0c01f068a62871681a0f61a","typeString":"literal_string \"staking amount should be >0\""},"value":"staking amount should be >0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91d4369e2212c0af5bece6ece1fcbdc47c9df9cbc0c01f068a62871681a0f61a","typeString":"literal_string \"staking amount should be >0\""}],"id":19142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"29987:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29987:51:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19148,"nodeType":"ExpressionStatement","src":"29987:51:58"},{"condition":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19150,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"30062:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19149,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"30053:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30053:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19155,"nodeType":"IfStatement","src":"30049:63:58","trueBody":{"id":19154,"nodeType":"Block","src":"30076:36:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":19152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30097:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19130,"id":19153,"nodeType":"Return","src":"30090:11:58"}]}},{"assignments":[19157],"declarations":[{"constant":false,"id":19157,"name":"proposal","nodeType":"VariableDeclaration","scope":19309,"src":"30121:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":19156,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"30121:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":19161,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19158,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"30149:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19160,"indexExpression":{"argumentTypes":null,"id":19159,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"30159:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30149:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30121:50:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19162,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30187:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"30187:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19164,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"30205:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"30205:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"30187:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30186:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19168,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30247:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"30247:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19170,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"30265:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"30265:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"30247:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19173,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30246:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30186:100:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19178,"nodeType":"IfStatement","src":"30182:143:58","trueBody":{"id":19177,"nodeType":"Block","src":"30288:37:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30309:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19130,"id":19176,"nodeType":"Return","src":"30302:12:58"}]}},{"assignments":[19180],"declarations":[{"constant":false,"id":19180,"name":"staker","nodeType":"VariableDeclaration","scope":19309,"src":"30403:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"},"typeName":{"contractScope":null,"id":19179,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"30403:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}},"value":null,"visibility":"internal"}],"id":19185,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19181,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30427:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"30427:16:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":19184,"indexExpression":{"argumentTypes":null,"id":19183,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19126,"src":"30444:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30427:25:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30403:49:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19186,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30467:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30467:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30483:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30467:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30466:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19191,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30490:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"30490:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"id":19193,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"30505:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30490:20:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30489:22:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30466:45:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19200,"nodeType":"IfStatement","src":"30462:88:58","trueBody":{"id":19199,"nodeType":"Block","src":"30513:37:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30534:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19130,"id":19198,"nodeType":"Return","src":"30527:12:58"}]}},{"assignments":[19202],"declarations":[{"constant":false,"id":19202,"name":"amount","nodeType":"VariableDeclaration","scope":19309,"src":"30560:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19201,"name":"uint256","nodeType":"ElementaryTypeName","src":"30560:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19204,"initialValue":{"argumentTypes":null,"id":19203,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19124,"src":"30577:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30560:24:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19208,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19126,"src":"30628:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19210,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21171,"src":"30645:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}],"id":19209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30637:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":19211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30637:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19212,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"30652:6:58","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":19206,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"30602:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":19207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":21000,"src":"30602:25:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30602:57:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6661696c207472616e736665722066726f6d207374616b6572","id":19214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30661:27:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ad0934b2b17c5a144168f7c3b41e6e295357361c44445f6c875b7de168a8b283","typeString":"literal_string \"fail transfer from staker\""},"value":"fail transfer from staker"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad0934b2b17c5a144168f7c3b41e6e295357361c44445f6c875b7de168a8b283","typeString":"literal_string \"fail transfer from staker\""}],"id":19205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"30594:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30594:95:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19216,"nodeType":"ExpressionStatement","src":"30594:95:58"},{"expression":{"argumentTypes":null,"id":19225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19217,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30699:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"30699:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19223,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"30747:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19220,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30722:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"30722:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"30722:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30722:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30699:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19226,"nodeType":"ExpressionStatement","src":"30699:55:58"},{"expression":{"argumentTypes":null,"id":19235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19227,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30795:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30795:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19233,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"30829:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19230,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30811:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30811:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"30811:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30811:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30795:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19236,"nodeType":"ExpressionStatement","src":"30795:41:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19238,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30979:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30979:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":19240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30996:35:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"30979:52:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7374616b696e6720616d6f756e7420697320746f6f2068696768","id":19242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31033:28:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c08e8b6b6438b031b9203bfd11dc79b9738fb9df8efea56d562c5a29a6e1f3ee","typeString":"literal_string \"staking amount is too high\""},"value":"staking amount is too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c08e8b6b6438b031b9203bfd11dc79b9738fb9df8efea56d562c5a29a6e1f3ee","typeString":"literal_string \"staking amount is too high\""}],"id":19237,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"30971:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30971:91:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19244,"nodeType":"ExpressionStatement","src":"30971:91:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31080:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"31080:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19252,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31153:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"31153:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":19249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31112:35:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"id":19248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31104:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":19250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31104:44:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"31104:48:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31104:74:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31080:98:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f74616c207374616b657320697320746f6f2068696768","id":19256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31196:26:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3ddc8a760353c6cb4764665e8783f172d91728d9fd6e3fa17211593e37c1469","typeString":"literal_string \"total stakes is too high\""},"value":"total stakes is too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3ddc8a760353c6cb4764665e8783f172d91728d9fd6e3fa17211593e37c1469","typeString":"literal_string \"total stakes is too high\""}],"id":19245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"31072:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31072:151:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19258,"nodeType":"ExpressionStatement","src":"31072:151:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19259,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31238:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":19260,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"31247:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31238:12:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19273,"nodeType":"IfStatement","src":"31234:98:58","trueBody":{"id":19272,"nodeType":"Block","src":"31252:80:58","statements":[{"expression":{"argumentTypes":null,"id":19270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19262,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"31266:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"31266:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19268,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"31314:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19265,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"31289:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"31289:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"31289:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31289:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31266:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19271,"nodeType":"ExpressionStatement","src":"31266:55:58"}]}},{"expression":{"argumentTypes":null,"id":19278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19274,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"31341:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"31341:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19277,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31355:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19279,"nodeType":"ExpressionStatement","src":"31341:19:58"},{"expression":{"argumentTypes":null,"id":19292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19280,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31371:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"31371:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19284,"indexExpression":{"argumentTypes":null,"id":19282,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31387:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31371:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19287,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31407:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"31407:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19290,"indexExpression":{"argumentTypes":null,"id":19289,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31423:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31407:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"31396:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"31396:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31396:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31371:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19293,"nodeType":"ExpressionStatement","src":"31371:59:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19295,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"31451:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19296,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"31464:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19299,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19297,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31478:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"31478:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31464:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19300,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19126,"src":"31504:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19301,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31513:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19302,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19124,"src":"31520:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19294,"name":"Stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"31445:5:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256,uint256)"}},"id":19303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31445:83:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19304,"nodeType":"EmitStatement","src":"31440:88:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19306,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"31554:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19305,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"31545:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31545:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19130,"id":19308,"nodeType":"Return","src":"31538:28:58"}]},"documentation":"@dev staking function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the betting amount\n@return bool true - the proposal has been executed\n false - otherwise.","id":19310,"implemented":true,"kind":"function","modifiers":[],"name":"_stake","nodeType":"FunctionDefinition","parameters":{"id":19127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19120,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19310,"src":"29775:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29775:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19122,"name":"_vote","nodeType":"VariableDeclaration","scope":19310,"src":"29796:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19121,"name":"uint256","nodeType":"ElementaryTypeName","src":"29796:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19124,"name":"_amount","nodeType":"VariableDeclaration","scope":19310,"src":"29811:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19123,"name":"uint256","nodeType":"ElementaryTypeName","src":"29811:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19126,"name":"_staker","nodeType":"VariableDeclaration","scope":19310,"src":"29828:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19125,"name":"address","nodeType":"ElementaryTypeName","src":"29828:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"29774:70:58"},"returnParameters":{"id":19130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19129,"name":"","nodeType":"VariableDeclaration","scope":19310,"src":"29862:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19128,"name":"bool","nodeType":"ElementaryTypeName","src":"29862:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"29861:6:58"},"scope":19681,"src":"29759:1814:58","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":19610,"nodeType":"Block","src":"32423:2843:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19324,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"32441:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":19325,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"32450:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32441:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19327,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"32468:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32476:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32468:9:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32441:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"30203c205f766f7465203c3d2032","id":19331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32479:16:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6c167076fd1b36c01702a4c4b1e40be23cd6e9623d657cdb939ad9f0e6a548db","typeString":"literal_string \"0 < _vote <= 2\""},"value":"0 < _vote <= 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6c167076fd1b36c01702a4c4b1e40be23cd6e9623d657cdb939ad9f0e6a548db","typeString":"literal_string \"0 < _vote <= 2\""}],"id":19323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"32433:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32433:63:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19333,"nodeType":"ExpressionStatement","src":"32433:63:58"},{"condition":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19335,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32519:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19334,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"32510:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32510:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19340,"nodeType":"IfStatement","src":"32506:63:58","trueBody":{"id":19339,"nodeType":"Block","src":"32533:36:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":19337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32554:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19322,"id":19338,"nodeType":"Return","src":"32547:11:58"}]}},{"assignments":[19342],"declarations":[{"constant":false,"id":19342,"name":"params","nodeType":"VariableDeclaration","scope":19610,"src":"32579:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":19341,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"32579:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":19349,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19343,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"32606:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":19348,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19344,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"32617:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19346,"indexExpression":{"argumentTypes":null,"id":19345,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32627:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32617:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":19347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"32617:33:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32606:45:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32579:72:58"},{"assignments":[19351],"declarations":[{"constant":false,"id":19351,"name":"proposal","nodeType":"VariableDeclaration","scope":19610,"src":"32661:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":19350,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"32661:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":19355,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19352,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"32689:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19354,"indexExpression":{"argumentTypes":null,"id":19353,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32699:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32689:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32661:50:58"},{"assignments":[19357],"declarations":[{"constant":false,"id":19357,"name":"reputation","nodeType":"VariableDeclaration","scope":19610,"src":"32768:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19356,"name":"uint256","nodeType":"ElementaryTypeName","src":"32768:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19366,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19363,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"32854:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19364,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32862:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19359,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"32821:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"32821:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19358,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"32789:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":19361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32789:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":19362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"reputationOf","nodeType":"MemberAccess","referencedDeclaration":20021,"src":"32789:64:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) view external returns (uint256)"}},"id":19365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32789:85:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32768:106:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19368,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"32892:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32905:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32892:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f766f746572206d75737420686176652072657075746174696f6e","id":19371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32908:29:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""},"value":"_voter must have reputation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""}],"id":19367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"32884:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32884:54:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19373,"nodeType":"ExpressionStatement","src":"32884:54:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19375,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"32956:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":19376,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19318,"src":"32970:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32956:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657075746174696f6e203e3d205f726570","id":19378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32976:20:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_854a896e4ac217d1bc6f5707e5523361ed247e9f3d2bb1c843a9e088d13a9e72","typeString":"literal_string \"reputation >= _rep\""},"value":"reputation >= _rep"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_854a896e4ac217d1bc6f5707e5523361ed247e9f3d2bb1c843a9e088d13a9e72","typeString":"literal_string \"reputation >= _rep\""}],"id":19374,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"32948:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32948:49:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19380,"nodeType":"ExpressionStatement","src":"32948:49:58"},{"assignments":[19382],"declarations":[{"constant":false,"id":19382,"name":"rep","nodeType":"VariableDeclaration","scope":19610,"src":"33007:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19381,"name":"uint256","nodeType":"ElementaryTypeName","src":"33007:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19384,"initialValue":{"argumentTypes":null,"id":19383,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19318,"src":"33021:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33007:18:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19385,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"33039:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33046:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33039:8:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19393,"nodeType":"IfStatement","src":"33035:55:58","trueBody":{"id":19392,"nodeType":"Block","src":"33049:41:58","statements":[{"expression":{"argumentTypes":null,"id":19390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19388,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"33063:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19389,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"33069:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33063:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19391,"nodeType":"ExpressionStatement","src":"33063:16:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19394,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33161:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"33161:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":19397,"indexExpression":{"argumentTypes":null,"id":19396,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"33177:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33161:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"id":19398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"33161:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33199:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33161:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19404,"nodeType":"IfStatement","src":"33157:82:58","trueBody":{"id":19403,"nodeType":"Block","src":"33202:37:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33223:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19322,"id":19402,"nodeType":"Return","src":"33216:12:58"}]}},{"expression":{"argumentTypes":null,"id":19417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19405,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33278:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33278:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19409,"indexExpression":{"argumentTypes":null,"id":19407,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"33293:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"33278:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19412,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33310:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33310:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19415,"indexExpression":{"argumentTypes":null,"id":19414,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"33325:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33310:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19410,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"33302:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"33302:7:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33302:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33278:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19418,"nodeType":"ExpressionStatement","src":"33278:54:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19419,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33490:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33490:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19422,"indexExpression":{"argumentTypes":null,"id":19421,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"33505:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33490:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33514:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33514:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19427,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19425,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33529:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"33529:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33514:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33490:60:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19429,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33489:62:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19430,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33569:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33569:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19433,"indexExpression":{"argumentTypes":null,"id":19432,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"33584:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33569:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19434,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33591:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33591:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19438,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19436,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33606:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"33606:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33591:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33569:58:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19440,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33568:60:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19441,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33644:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"33644:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":19443,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"33668:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33644:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33568:103:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19446,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33567:105:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33489:183:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19519,"nodeType":"IfStatement","src":"33485:1004:58","trueBody":{"id":19518,"nodeType":"Block","src":"33674:815:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33692:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"33692:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19450,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"33710:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"33710:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"33692:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19453,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"33811:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19454,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33817:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"33817:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":19457,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":19456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33832:1:58","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":"33817:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33811:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33810:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19460,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"33840:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"boostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17160,"src":"33840:29:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19462,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"33872:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":17168,"src":"33872:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33840:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19465,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33839:58:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33810:87:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33809:89:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33692:206:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19469,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33917:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"33917:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19471,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"33935:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"33935:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"33917:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33692:274:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19511,"nodeType":"IfStatement","src":"33688:749:58","trueBody":{"id":19510,"nodeType":"Block","src":"33968:469:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19475,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34026:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34026:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19477,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34044:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34044:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34026:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19501,"nodeType":"IfStatement","src":"34022:298:58","trueBody":{"id":19500,"nodeType":"Block","src":"34077:243:58","statements":[{"expression":{"argumentTypes":null,"id":19485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19480,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34099:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"34099:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19483,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"34140:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":17168,"src":"34140:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34099:65:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19486,"nodeType":"ExpressionStatement","src":"34099:65:58"},{"expression":{"argumentTypes":null,"id":19492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34186:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34186:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19490,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34203:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34203:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34186:48:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":19493,"nodeType":"ExpressionStatement","src":"34186:48:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19495,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"34273:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19496,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34286:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34286:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}],"id":19494,"name":"StateChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17294,"src":"34261:11:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ProposalState_$17147_$returns$__$","typeString":"function (bytes32,enum GenesisProtocolLogic.ProposalState)"}},"id":19498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34261:40:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19499,"nodeType":"EmitStatement","src":"34256:45:58"}]}},{"expression":{"argumentTypes":null,"id":19508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19502,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34399:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"34399:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":19506,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":19504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34414:1:58","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":"34399:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19507,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"34419:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34399:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19509,"nodeType":"ExpressionStatement","src":"34399:23:58"}]}},{"expression":{"argumentTypes":null,"id":19516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19512,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34450:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"34450:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19515,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34473:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34450:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19517,"nodeType":"ExpressionStatement","src":"34450:28:58"}]}},{"expression":{"argumentTypes":null,"id":19543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19520,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34498:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"34498:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":19524,"indexExpression":{"argumentTypes":null,"id":19522,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"34514:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"34498:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19526,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"34556:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19527,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34579:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19528,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34611:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34611:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19530,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34629:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34629:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34611:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34610:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19534,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34659:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34659:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19536,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34677:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34677:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34659:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34658:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"34610:88:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34609:90:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19525,"name":"Voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17188,"src":"34524:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Voter_$17188_storage_ptr_$","typeString":"type(struct GenesisProtocolLogic.Voter storage pointer)"}},"id":19542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["reputation","vote","preBoosted"],"nodeType":"FunctionCall","src":"34524:186:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory","typeString":"struct GenesisProtocolLogic.Voter memory"}},"src":"34498:212:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"id":19544,"nodeType":"ExpressionStatement","src":"34498:212:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19545,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34725:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34725:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19547,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34743:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34743:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34725:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19550,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34724:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19551,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34773:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34773:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19553,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34791:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34791:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34773:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34772:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"34724:88:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19594,"nodeType":"IfStatement","src":"34720:402:58","trueBody":{"id":19593,"nodeType":"Block","src":"34814:308:58","statements":[{"expression":{"argumentTypes":null,"id":19570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19558,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34828:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"34828:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19562,"indexExpression":{"argumentTypes":null,"id":19560,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34853:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"34828:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19565,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34870:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"34870:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19568,"indexExpression":{"argumentTypes":null,"id":19567,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34895:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34870:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19563,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"34862:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"34862:7:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34862:40:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34828:74:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19571,"nodeType":"ExpressionStatement","src":"34828:74:58"},{"assignments":[19573],"declarations":[{"constant":false,"id":19573,"name":"reputationDeposit","nodeType":"VariableDeclaration","scope":19593,"src":"34916:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19572,"name":"uint256","nodeType":"ElementaryTypeName","src":"34916:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19582,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19577,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"34982:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19574,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"34945:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"34945:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"34945:36:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34945:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34944:43:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":19580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34988:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"34944:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34916:75:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19588,"name":"reputationDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19573,"src":"35072:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19589,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"35091:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19590,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"35099:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19584,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"35037:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"35037:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19583,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"35005:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":19586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35005:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":19587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":19992,"src":"35005:66:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,address,bytes32) external returns (bool)"}},"id":19591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35005:106:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19592,"nodeType":"ExpressionStatement","src":"35005:106:58"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19596,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"35149:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19597,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"35162:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19600,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19598,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"35176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"35176:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35162:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19601,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"35202:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19602,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"35210:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19603,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"35217:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19595,"name":"VoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19735,"src":"35136:12:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256,uint256)"}},"id":19604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35136:85:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19605,"nodeType":"EmitStatement","src":"35131:90:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19607,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"35247:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19606,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"35238:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35238:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19322,"id":19609,"nodeType":"Return","src":"35231:28:58"}]},"documentation":"@dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead\n@param _proposalId id of the proposal\n@param _voter used in case the vote is cast for someone else\n@param _vote a value between 0 to and the proposal's number of choices.\n@param _rep how many reputation the voter would like to stake for this vote.\n if _rep==0 so the voter full reputation will be use.\n@return true in case of proposal execution otherwise false\nthrows if proposal is not open or if it has been executed\nNB: executes the proposal if a decision has been reached","id":19611,"implemented":true,"kind":"function","modifiers":[],"name":"internalVote","nodeType":"FunctionDefinition","parameters":{"id":19319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19312,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19611,"src":"32334:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32334:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19314,"name":"_voter","nodeType":"VariableDeclaration","scope":19611,"src":"32355:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19313,"name":"address","nodeType":"ElementaryTypeName","src":"32355:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19316,"name":"_vote","nodeType":"VariableDeclaration","scope":19611,"src":"32371:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19315,"name":"uint256","nodeType":"ElementaryTypeName","src":"32371:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19318,"name":"_rep","nodeType":"VariableDeclaration","scope":19611,"src":"32386:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19317,"name":"uint256","nodeType":"ElementaryTypeName","src":"32386:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"32333:66:58"},"returnParameters":{"id":19322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19321,"name":"","nodeType":"VariableDeclaration","scope":19611,"src":"32417:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19320,"name":"bool","nodeType":"ElementaryTypeName","src":"32417:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"32416:6:58"},"scope":19681,"src":"32312:2954:58","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":19639,"nodeType":"Block","src":"35569:241:58","statements":[{"assignments":[19619],"declarations":[{"constant":false,"id":19619,"name":"proposal","nodeType":"VariableDeclaration","scope":19639,"src":"35579:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":19618,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"35579:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":19623,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19620,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"35607:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19622,"indexExpression":{"argumentTypes":null,"id":19621,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19613,"src":"35617:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35607:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"35579:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19632,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19619,"src":"35782:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"35782:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19635,"indexExpression":{"argumentTypes":null,"id":19634,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"35798:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35782:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35774:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":19636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35774:28:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19625,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19619,"src":"35743:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"35743:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19628,"indexExpression":{"argumentTypes":null,"id":19627,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"35759:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35743:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35735:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":19629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35735:29:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":19630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":15182,"src":"35735:38:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":19637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35735:68:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19617,"id":19638,"nodeType":"Return","src":"35728:75:58"}]},"documentation":"@dev _score return the proposal score (Confidence level)\nFor dual choice proposal S = (S+)/(S-)\n@param _proposalId the ID of the proposal\n@return uint256 proposal score as real number.","id":19640,"implemented":true,"kind":"function","modifiers":[],"name":"_score","nodeType":"FunctionDefinition","parameters":{"id":19614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19613,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19640,"src":"35517:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35517:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"35516:21:58"},"returnParameters":{"id":19617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19616,"name":"","nodeType":"VariableDeclaration","scope":19640,"src":"35560:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19615,"name":"uint256","nodeType":"ElementaryTypeName","src":"35560:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"35559:9:58"},"scope":19681,"src":"35501:309:58","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":19679,"nodeType":"Block","src":"36042:297:58","statements":[{"assignments":[19648],"declarations":[{"constant":false,"id":19648,"name":"pState","nodeType":"VariableDeclaration","scope":19679,"src":"36052:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":19647,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"36052:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"id":19653,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19649,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"36075:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19651,"indexExpression":{"argumentTypes":null,"id":19650,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19642,"src":"36085:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36075:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":19652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"36075:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"36052:51:58"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19654,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36122:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19655,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36132:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36132:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36122:34:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36121:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19659,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36177:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19660,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36187:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36187:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36177:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36176:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36121:88:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19665,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36229:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19666,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36239:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36239:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36229:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19669,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36228:43:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36121:150:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19671,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36291:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19672,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36301:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36301:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36291:30:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19675,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36290:32:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36121:201:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36120:212:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19646,"id":19678,"nodeType":"Return","src":"36113:219:58"}]},"documentation":"@dev _isVotable check if the proposal is votable\n@param _proposalId the ID of the proposal\n@return bool true or false","id":19680,"implemented":true,"kind":"function","modifiers":[],"name":"_isVotable","nodeType":"FunctionDefinition","parameters":{"id":19643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19642,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19680,"src":"35993:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35993:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"35992:21:58"},"returnParameters":{"id":19646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19645,"name":"","nodeType":"VariableDeclaration","scope":19680,"src":"36036:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19644,"name":"bool","nodeType":"ElementaryTypeName","src":"36036:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"36035:6:58"},"scope":19681,"src":"35973:366:58","stateMutability":"view","superFunction":null,"visibility":"internal"}],"scope":19682,"src":"532:35809:58"}],"src":"0:36342:58"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol","exportedSymbols":{"GenesisProtocolLogic":[19681]},"id":19682,"nodeType":"SourceUnit","nodes":[{"id":17113,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:58"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"./IntVoteInterface.sol","id":17114,"nodeType":"ImportDirective","scope":19682,"sourceUnit":19817,"src":"26:32:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/libs/RealMath.sol","file":"../libs/RealMath.sol","id":17116,"nodeType":"ImportDirective","scope":19682,"sourceUnit":15237,"src":"59:48:58","symbolAliases":[{"foreign":17115,"local":null}],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"./VotingMachineCallbacksInterface.sol","id":17117,"nodeType":"ImportDirective","scope":19682,"sourceUnit":20032,"src":"108:47:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"./ProposalExecuteInterface.sol","id":17118,"nodeType":"ImportDirective","scope":19682,"sourceUnit":19829,"src":"156:40:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":17119,"nodeType":"ImportDirective","scope":19682,"sourceUnit":20396,"src":"197:59:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/Math.sol","file":"openzeppelin-solidity/contracts/math/Math.sol","id":17120,"nodeType":"ImportDirective","scope":19682,"sourceUnit":20209,"src":"257:55:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":17121,"nodeType":"ImportDirective","scope":19682,"sourceUnit":21018,"src":"313:64:58","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/utils/Address.sol","file":"openzeppelin-solidity/contracts/utils/Address.sol","id":17122,"nodeType":"ImportDirective","scope":19682,"sourceUnit":21093,"src":"378:59:58","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":17123,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"565:16:58","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":17124,"nodeType":"InheritanceSpecifier","src":"565:16:58"}],"contractDependencies":[19816],"contractKind":"contract","documentation":"@title GenesisProtocol implementation -an organization's voting machine scheme.","fullyImplemented":false,"id":19681,"linearizedBaseContracts":[19681,19816],"name":"GenesisProtocolLogic","nodeType":"ContractDefinition","nodes":[{"id":17127,"libraryName":{"contractScope":null,"id":17125,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"594:8:58","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"588:27:58","typeName":{"id":17126,"name":"uint256","nodeType":"ElementaryTypeName","src":"607:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":17130,"libraryName":{"contractScope":null,"id":17128,"name":"Math","nodeType":"UserDefinedTypeName","referencedDeclaration":20208,"src":"626:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_Math_$20208","typeString":"library Math"}},"nodeType":"UsingForDirective","src":"620:23:58","typeName":{"id":17129,"name":"uint256","nodeType":"ElementaryTypeName","src":"635:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":17133,"libraryName":{"contractScope":null,"id":17131,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"654:8:58","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"648:27:58","typeName":{"id":17132,"name":"uint216","nodeType":"ElementaryTypeName","src":"667:7:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}},{"id":17136,"libraryName":{"contractScope":null,"id":17134,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":15236,"src":"686:8:58","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$15236","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"680:27:58","typeName":{"id":17135,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":17139,"libraryName":{"contractScope":null,"id":17137,"name":"Address","nodeType":"UserDefinedTypeName","referencedDeclaration":21092,"src":"718:7:58","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}},"nodeType":"UsingForDirective","src":"712:26:58","typeName":{"id":17138,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"GenesisProtocolLogic.ProposalState","id":17147,"members":[{"id":17140,"name":"None","nodeType":"EnumValue","src":"765:4:58"},{"id":17141,"name":"ExpiredInQueue","nodeType":"EnumValue","src":"771:14:58"},{"id":17142,"name":"Executed","nodeType":"EnumValue","src":"787:8:58"},{"id":17143,"name":"Queued","nodeType":"EnumValue","src":"797:6:58"},{"id":17144,"name":"PreBoosted","nodeType":"EnumValue","src":"805:10:58"},{"id":17145,"name":"Boosted","nodeType":"EnumValue","src":"817:7:58"},{"id":17146,"name":"QuietEndingPeriod","nodeType":"EnumValue","src":"826:17:58"}],"name":"ProposalState","nodeType":"EnumDefinition","src":"744:100:58"},{"canonicalName":"GenesisProtocolLogic.ExecutionState","id":17154,"members":[{"id":17148,"name":"None","nodeType":"EnumValue","src":"871:4:58"},{"id":17149,"name":"QueueBarCrossed","nodeType":"EnumValue","src":"877:15:58"},{"id":17150,"name":"QueueTimeOut","nodeType":"EnumValue","src":"894:12:58"},{"id":17151,"name":"PreBoostedBarCrossed","nodeType":"EnumValue","src":"908:20:58"},{"id":17152,"name":"BoostedTimeOut","nodeType":"EnumValue","src":"930:14:58"},{"id":17153,"name":"BoostedBarCrossed","nodeType":"EnumValue","src":"946:17:58"}],"name":"ExecutionState","nodeType":"EnumDefinition","src":"849:115:58"},{"canonicalName":"GenesisProtocolLogic.Parameters","id":17181,"members":[{"constant":false,"id":17156,"name":"queuedVoteRequiredPercentage","nodeType":"VariableDeclaration","scope":17181,"src":"1030:36:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17155,"name":"uint256","nodeType":"ElementaryTypeName","src":"1030:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17158,"name":"queuedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17181,"src":"1114:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17157,"name":"uint256","nodeType":"ElementaryTypeName","src":"1114:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17160,"name":"boostedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17181,"src":"1219:30:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17159,"name":"uint256","nodeType":"ElementaryTypeName","src":"1219:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17162,"name":"preBoostedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17181,"src":"1312:33:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17161,"name":"uint256","nodeType":"ElementaryTypeName","src":"1312:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17164,"name":"thresholdConst","nodeType":"VariableDeclaration","scope":17181,"src":"1486:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17163,"name":"uint256","nodeType":"ElementaryTypeName","src":"1486:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17166,"name":"limitExponentValue","nodeType":"VariableDeclaration","scope":17181,"src":"1648:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1648:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17168,"name":"quietEndingPeriod","nodeType":"VariableDeclaration","scope":17181,"src":"1816:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17167,"name":"uint256","nodeType":"ElementaryTypeName","src":"1816:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17170,"name":"proposingRepReward","nodeType":"VariableDeclaration","scope":17181,"src":"1873:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1873:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17172,"name":"votersReputationLossRatio","nodeType":"VariableDeclaration","scope":17181,"src":"1938:33:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17171,"name":"uint256","nodeType":"ElementaryTypeName","src":"1938:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17174,"name":"minimumDaoBounty","nodeType":"VariableDeclaration","scope":17181,"src":"2111:24:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17173,"name":"uint256","nodeType":"ElementaryTypeName","src":"2111:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17176,"name":"daoBountyConst","nodeType":"VariableDeclaration","scope":17181,"src":"2145:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17175,"name":"uint256","nodeType":"ElementaryTypeName","src":"2145:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17178,"name":"activationTime","nodeType":"VariableDeclaration","scope":17181,"src":"2333:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17177,"name":"uint256","nodeType":"ElementaryTypeName","src":"2333:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17180,"name":"voteOnBehalf","nodeType":"VariableDeclaration","scope":17181,"src":"2522:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17179,"name":"address","nodeType":"ElementaryTypeName","src":"2522:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":19681,"src":"1002:1547:58","visibility":"public"},{"canonicalName":"GenesisProtocolLogic.Voter","id":17188,"members":[{"constant":false,"id":17183,"name":"vote","nodeType":"VariableDeclaration","scope":17188,"src":"2578:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17182,"name":"uint256","nodeType":"ElementaryTypeName","src":"2578:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17185,"name":"reputation","nodeType":"VariableDeclaration","scope":17188,"src":"2617:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17184,"name":"uint256","nodeType":"ElementaryTypeName","src":"2617:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17187,"name":"preBoosted","nodeType":"VariableDeclaration","scope":17188,"src":"2677:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17186,"name":"bool","nodeType":"ElementaryTypeName","src":"2677:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"Voter","nodeType":"StructDefinition","scope":19681,"src":"2555:144:58","visibility":"public"},{"canonicalName":"GenesisProtocolLogic.Staker","id":17195,"members":[{"constant":false,"id":17190,"name":"vote","nodeType":"VariableDeclaration","scope":17195,"src":"2729:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17189,"name":"uint256","nodeType":"ElementaryTypeName","src":"2729:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17192,"name":"amount","nodeType":"VariableDeclaration","scope":17195,"src":"2768:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17191,"name":"uint256","nodeType":"ElementaryTypeName","src":"2768:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17194,"name":"amount4Bounty","nodeType":"VariableDeclaration","scope":17195,"src":"2820:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17193,"name":"uint256","nodeType":"ElementaryTypeName","src":"2820:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Staker","nodeType":"StructDefinition","scope":19681,"src":"2705:206:58","visibility":"public"},{"canonicalName":"GenesisProtocolLogic.Proposal","id":17246,"members":[{"constant":false,"id":17197,"name":"organizationId","nodeType":"VariableDeclaration","scope":17246,"src":"2943:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17196,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2943:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17199,"name":"callbacks","nodeType":"VariableDeclaration","scope":17246,"src":"3040:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17198,"name":"address","nodeType":"ElementaryTypeName","src":"3040:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17201,"name":"state","nodeType":"VariableDeclaration","scope":17246,"src":"3116:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":17200,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"3116:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"},{"constant":false,"id":17203,"name":"winningVote","nodeType":"VariableDeclaration","scope":17246,"src":"3145:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17202,"name":"uint256","nodeType":"ElementaryTypeName","src":"3145:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17205,"name":"proposer","nodeType":"VariableDeclaration","scope":17246,"src":"3194:16:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17204,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17207,"name":"currentBoostedVotePeriodLimit","nodeType":"VariableDeclaration","scope":17246,"src":"3314:37:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17206,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17209,"name":"paramsHash","nodeType":"VariableDeclaration","scope":17246,"src":"3361:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17208,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3361:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17211,"name":"daoBountyRemain","nodeType":"VariableDeclaration","scope":17246,"src":"3389:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17210,"name":"uint256","nodeType":"ElementaryTypeName","src":"3389:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17213,"name":"daoBounty","nodeType":"VariableDeclaration","scope":17246,"src":"3497:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17212,"name":"uint256","nodeType":"ElementaryTypeName","src":"3497:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17215,"name":"totalStakes","nodeType":"VariableDeclaration","scope":17246,"src":"3524:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17214,"name":"uint256","nodeType":"ElementaryTypeName","src":"3524:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17217,"name":"confidenceThreshold","nodeType":"VariableDeclaration","scope":17246,"src":"3621:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17216,"name":"uint256","nodeType":"ElementaryTypeName","src":"3621:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17219,"name":"secondsFromTimeOutTillExecuteBoosted","nodeType":"VariableDeclaration","scope":17246,"src":"3658:44:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17218,"name":"uint256","nodeType":"ElementaryTypeName","src":"3658:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17223,"name":"times","nodeType":"VariableDeclaration","scope":17246,"src":"3712:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":17220,"name":"uint","nodeType":"ElementaryTypeName","src":"3712:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17222,"length":{"argumentTypes":null,"hexValue":"33","id":17221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3717:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"3712:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":17225,"name":"daoRedeemItsWinnings","nodeType":"VariableDeclaration","scope":17246,"src":"3871:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":17224,"name":"bool","nodeType":"ElementaryTypeName","src":"3871:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":17229,"name":"votes","nodeType":"VariableDeclaration","scope":17246,"src":"3943:40:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":17228,"keyType":{"id":17226,"name":"uint256","nodeType":"ElementaryTypeName","src":"3951:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"3943:34:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":17227,"name":"uint256","nodeType":"ElementaryTypeName","src":"3965:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17233,"name":"preBoostedVotes","nodeType":"VariableDeclaration","scope":17246,"src":"4030:50:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":17232,"keyType":{"id":17230,"name":"uint256","nodeType":"ElementaryTypeName","src":"4038:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4030:34:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":17231,"name":"uint256","nodeType":"ElementaryTypeName","src":"4052:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17237,"name":"voters","nodeType":"VariableDeclaration","scope":17246,"src":"4124:37:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter)"},"typeName":{"id":17236,"keyType":{"id":17234,"name":"address","nodeType":"ElementaryTypeName","src":"4132:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4124:30:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter)"},"valueType":{"contractScope":null,"id":17235,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":17188,"src":"4144:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17241,"name":"stakes","nodeType":"VariableDeclaration","scope":17246,"src":"4206:41:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"typeName":{"id":17240,"keyType":{"id":17238,"name":"uint256","nodeType":"ElementaryTypeName","src":"4214:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"4206:34:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"},"valueType":{"id":17239,"name":"uint256","nodeType":"ElementaryTypeName","src":"4228:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"internal"},{"constant":false,"id":17245,"name":"stakers","nodeType":"VariableDeclaration","scope":17246,"src":"4289:38:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker)"},"typeName":{"id":17244,"keyType":{"id":17242,"name":"address","nodeType":"ElementaryTypeName","src":"4297:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4289:30:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker)"},"valueType":{"contractScope":null,"id":17243,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"4309:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":19681,"src":"2917:1417:58","visibility":"public"},{"anonymous":false,"documentation":null,"id":17258,"name":"Stake","nodeType":"EventDefinition","parameters":{"id":17257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17248,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17258,"src":"4352:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17247,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4352:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17250,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17258,"src":"4389:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17249,"name":"address","nodeType":"ElementaryTypeName","src":"4389:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17252,"indexed":true,"name":"_staker","nodeType":"VariableDeclaration","scope":17258,"src":"4428:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17251,"name":"address","nodeType":"ElementaryTypeName","src":"4428:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17254,"indexed":false,"name":"_vote","nodeType":"VariableDeclaration","scope":17258,"src":"4461:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17253,"name":"uint256","nodeType":"ElementaryTypeName","src":"4461:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17256,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17258,"src":"4484:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17255,"name":"uint256","nodeType":"ElementaryTypeName","src":"4484:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4351:154:58"},"src":"4340:166:58"},{"anonymous":false,"documentation":null,"id":17268,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":17267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17260,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17268,"src":"4525:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17259,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4525:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17262,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17268,"src":"4562:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17261,"name":"address","nodeType":"ElementaryTypeName","src":"4562:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17264,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17268,"src":"4601:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17263,"name":"address","nodeType":"ElementaryTypeName","src":"4601:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17266,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17268,"src":"4639:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17265,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4524:136:58"},"src":"4512:149:58"},{"anonymous":false,"documentation":null,"id":17278,"name":"RedeemDaoBounty","nodeType":"EventDefinition","parameters":{"id":17277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17270,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17278,"src":"4689:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17269,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4689:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17272,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17278,"src":"4726:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17271,"name":"address","nodeType":"ElementaryTypeName","src":"4726:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17274,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17278,"src":"4765:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17273,"name":"address","nodeType":"ElementaryTypeName","src":"4765:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17276,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17278,"src":"4803:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17275,"name":"uint256","nodeType":"ElementaryTypeName","src":"4803:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4688:136:58"},"src":"4667:158:58"},{"anonymous":false,"documentation":null,"id":17288,"name":"RedeemReputation","nodeType":"EventDefinition","parameters":{"id":17287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17280,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17288,"src":"4854:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17279,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4854:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17282,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":17288,"src":"4891:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17281,"name":"address","nodeType":"ElementaryTypeName","src":"4891:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17284,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17288,"src":"4930:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17283,"name":"address","nodeType":"ElementaryTypeName","src":"4930:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17286,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17288,"src":"4968:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17285,"name":"uint256","nodeType":"ElementaryTypeName","src":"4968:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4853:136:58"},"src":"4831:159:58"},{"anonymous":false,"documentation":null,"id":17294,"name":"StateChange","nodeType":"EventDefinition","parameters":{"id":17293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17290,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17294,"src":"5014:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17289,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5014:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17292,"indexed":false,"name":"_proposalState","nodeType":"VariableDeclaration","scope":17294,"src":"5043:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":17291,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"5043:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"src":"5013:59:58"},"src":"4996:77:58"},{"anonymous":false,"documentation":null,"id":17300,"name":"GPExecuteProposal","nodeType":"EventDefinition","parameters":{"id":17299,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17296,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17300,"src":"5102:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17295,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5102:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17298,"indexed":false,"name":"_executionState","nodeType":"VariableDeclaration","scope":17300,"src":"5131:30:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"typeName":{"contractScope":null,"id":17297,"name":"ExecutionState","nodeType":"UserDefinedTypeName","referencedDeclaration":17154,"src":"5131:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"value":null,"visibility":"internal"}],"src":"5101:61:58"},"src":"5078:85:58"},{"anonymous":false,"documentation":null,"id":17308,"name":"ExpirationCallBounty","nodeType":"EventDefinition","parameters":{"id":17307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17302,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17308,"src":"5195:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17301,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5195:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17304,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":17308,"src":"5224:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17303,"name":"address","nodeType":"ElementaryTypeName","src":"5224:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17306,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":17308,"src":"5254:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17305,"name":"uint256","nodeType":"ElementaryTypeName","src":"5254:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5194:76:58"},"src":"5168:103:58"},{"anonymous":false,"documentation":null,"id":17314,"name":"ConfidenceLevelChange","nodeType":"EventDefinition","parameters":{"id":17313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17310,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17314,"src":"5304:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17309,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5304:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17312,"indexed":false,"name":"_confidenceThreshold","nodeType":"VariableDeclaration","scope":17314,"src":"5333:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17311,"name":"uint256","nodeType":"ElementaryTypeName","src":"5333:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5303:59:58"},"src":"5276:87:58"},{"constant":false,"id":17318,"name":"parameters","nodeType":"VariableDeclaration","scope":19681,"src":"5369:46:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters)"},"typeName":{"id":17317,"keyType":{"id":17315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5377:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5369:28:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters)"},"valueType":{"contractScope":null,"id":17316,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"5386:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}}},"value":null,"visibility":"public"},{"constant":false,"id":17322,"name":"proposals","nodeType":"VariableDeclaration","scope":19681,"src":"5461:43:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal)"},"typeName":{"id":17321,"keyType":{"id":17319,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5469:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5461:26:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal)"},"valueType":{"contractScope":null,"id":17320,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"5478:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":17326,"name":"orgBoostedProposalsCnt","nodeType":"VariableDeclaration","scope":19681,"src":"5573:52:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":17325,"keyType":{"id":17323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5581:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5573:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":17324,"name":"uint","nodeType":"ElementaryTypeName","src":"5590:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":17330,"name":"organizations","nodeType":"VariableDeclaration","scope":19681,"src":"5675:60:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":17329,"keyType":{"id":17327,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5683:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5675:39:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":17328,"name":"address","nodeType":"ElementaryTypeName","src":"5701:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"constant":false,"id":17334,"name":"averagesDownstakesOfBoosted","nodeType":"VariableDeclaration","scope":19681,"src":"5794:86:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"typeName":{"id":17333,"keyType":{"id":17331,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5802:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5794:51:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"},"valueType":{"id":17332,"name":"uint256","nodeType":"ElementaryTypeName","src":"5823:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":true,"id":17337,"name":"NUM_OF_CHOICES","nodeType":"VariableDeclaration","scope":19681,"src":"5886:42:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17335,"name":"uint256","nodeType":"ElementaryTypeName","src":"5886:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"32","id":17336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5927:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"constant":true,"id":17340,"name":"NO","nodeType":"VariableDeclaration","scope":19681,"src":"5934:30:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17338,"name":"uint256","nodeType":"ElementaryTypeName","src":"5934:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"32","id":17339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5963:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"visibility":"public"},{"constant":true,"id":17343,"name":"YES","nodeType":"VariableDeclaration","scope":19681,"src":"5970:31:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17341,"name":"uint256","nodeType":"ElementaryTypeName","src":"5970:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"31","id":17342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6000:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"visibility":"public"},{"constant":false,"id":17345,"name":"proposalsCnt","nodeType":"VariableDeclaration","scope":19681,"src":"6007:27:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17344,"name":"uint256","nodeType":"ElementaryTypeName","src":"6007:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":17347,"name":"stakingToken","nodeType":"VariableDeclaration","scope":19681,"src":"6069:26:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":17346,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"6069:6:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":true,"id":17350,"name":"GEN_TOKEN_ADDRESS","nodeType":"VariableDeclaration","scope":19681,"src":"6101:87:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17348,"name":"address","nodeType":"ElementaryTypeName","src":"6101:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"argumentTypes":null,"hexValue":"307835343346663232374636344161313765413133324266393838366341623544423535444341646466","id":17349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6146:42:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"value":"0x543Ff227F64Aa17eA132Bf9886cAb5DB55DCAddf"},"visibility":"private"},{"constant":true,"id":17353,"name":"MAX_BOOSTED_PROPOSALS","nodeType":"VariableDeclaration","scope":19681,"src":"6194:53:58","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17351,"name":"uint256","nodeType":"ElementaryTypeName","src":"6194:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"34303936","id":17352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6243:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4096_by_1","typeString":"int_const 4096"},"value":"4096"},"visibility":"private"},{"body":{"id":17376,"nodeType":"Block","src":"6335:556:58","statements":[{"condition":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17359,"name":"GEN_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"6728:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6720:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":17360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:26:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"6720:37:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":17362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6720:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17374,"nodeType":"Block","src":"6832:53:58","statements":[{"expression":{"argumentTypes":null,"id":17372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17370,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"6846:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17371,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17355,"src":"6861:13:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"6846:28:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":17373,"nodeType":"ExpressionStatement","src":"6846:28:58"}]},"id":17375,"nodeType":"IfStatement","src":"6716:169:58","trueBody":{"id":17369,"nodeType":"Block","src":"6761:65:58","statements":[{"expression":{"argumentTypes":null,"id":17367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17363,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"6775:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17365,"name":"GEN_TOKEN_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17350,"src":"6797:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":17364,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"6790:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":17366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6790:25:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"6775:40:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":17368,"nodeType":"ExpressionStatement","src":"6775:40:58"}]}}]},"documentation":"@dev Constructor","id":17377,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":17356,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17355,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":17377,"src":"6306:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":17354,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"6306:6:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"src":"6305:22:58"},"returnParameters":{"id":17357,"nodeType":"ParameterList","parameters":[],"src":"6335:0:58"},"scope":19681,"src":"6294:597:58","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":17388,"nodeType":"Block","src":"7113:60:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17383,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17379,"src":"7142:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17382,"name":"_isVotable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19680,"src":"7131:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view returns (bool)"}},"id":17384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7131:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17381,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7123:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7123:32:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17386,"nodeType":"ExpressionStatement","src":"7123:32:58"},{"id":17387,"nodeType":"PlaceholderStatement","src":"7165:1:58"}]},"documentation":"@dev Check that the proposal is votable\na proposal is votable if it is in one of the following states:\n PreBoosted,Boosted,QuietEndingPeriod or Queued","id":17389,"name":"votable","nodeType":"ModifierDefinition","parameters":{"id":17380,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17379,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17389,"src":"7092:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17378,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7092:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7091:21:58"},"src":"7075:98:58","visibility":"internal"},{"body":{"id":17593,"nodeType":"Block","src":"7617:1817:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17403,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"7687:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17404,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"7693:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17406,"indexExpression":{"argumentTypes":null,"id":17405,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"7704:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7693:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"activationTime","nodeType":"MemberAccess","referencedDeclaration":17178,"src":"7693:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7687:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f742061637469766520796574","id":17409,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7733:16:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f30c2c4eef761b63d78da11427f8e9c88d014c48e08e70db1400926a3cd70480","typeString":"literal_string \"not active yet\""},"value":"not active yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f30c2c4eef761b63d78da11427f8e9c88d014c48e08e70db1400926a3cd70480","typeString":"literal_string \"not active yet\""}],"id":17402,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"7679:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7679:71:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17411,"nodeType":"ExpressionStatement","src":"7679:71:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17413,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"7806:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17415,"indexExpression":{"argumentTypes":null,"id":17414,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"7817:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7806:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"queuedVoteRequiredPercentage","nodeType":"MemberAccess","referencedDeclaration":17156,"src":"7806:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"3530","id":17417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7862:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"7806:58:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":17412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"7798:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":17419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7798:67:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17420,"nodeType":"ExpressionStatement","src":"7798:67:58"},{"assignments":[17422],"declarations":[{"constant":false,"id":17422,"name":"proposalId","nodeType":"VariableDeclaration","scope":17593,"src":"7908:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17421,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7908:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":17430,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17426,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21171,"src":"7956:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}},{"argumentTypes":null,"id":17427,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17345,"src":"7962:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7939:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7939:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7939:36:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17423,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7929:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7929:47:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7908:68:58"},{"expression":{"argumentTypes":null,"id":17436,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17431,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17345,"src":"7986:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":17434,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8018:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":17432,"name":"proposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17345,"src":"8001:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"8001:16:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8001:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7986:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17437,"nodeType":"ExpressionStatement","src":"7986:34:58"},{"assignments":[17439],"declarations":[{"constant":false,"id":17439,"name":"proposal","nodeType":"VariableDeclaration","scope":17593,"src":"8057:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":17438,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"8057:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":17440,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"8057:24:58"},{"expression":{"argumentTypes":null,"id":17446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17441,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8091:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"8091:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17444,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8112:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8112:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8091:31:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17447,"nodeType":"ExpressionStatement","src":"8091:31:58"},{"expression":{"argumentTypes":null,"id":17459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8132:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8132:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17454,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8185:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8185:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":17456,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17397,"src":"8197:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":17452,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"8168:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":17453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8168:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":17457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8168:43:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":17451,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"8158:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":17458,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8158:54:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8132:80:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17460,"nodeType":"ExpressionStatement","src":"8132:80:58"},{"expression":{"argumentTypes":null,"id":17466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17461,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8223:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"8223:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17464,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"8240:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17465,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8240:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"8223:37:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":17467,"nodeType":"ExpressionStatement","src":"8223:37:58"},{"expression":{"argumentTypes":null,"id":17474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17468,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8324:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17471,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"8324:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory","typeString":"uint256[3] memory"}},"id":17472,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8339:1:58","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":"8324:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17473,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"8344:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8324:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17475,"nodeType":"ExpressionStatement","src":"8324:23:58"},{"expression":{"argumentTypes":null,"id":17483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17476,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8373:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17478,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"8373:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17479,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"8414:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17481,"indexExpression":{"argumentTypes":null,"id":17480,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"8425:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8414:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"boostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17160,"src":"8414:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8373:87:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17484,"nodeType":"ExpressionStatement","src":"8373:87:58"},{"expression":{"argumentTypes":null,"id":17489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17485,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8470:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17487,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"8470:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17488,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17395,"src":"8490:9:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8470:29:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17490,"nodeType":"ExpressionStatement","src":"8470:29:58"},{"expression":{"argumentTypes":null,"id":17495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17491,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8509:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17493,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"8509:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17494,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"8532:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8509:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17496,"nodeType":"ExpressionStatement","src":"8509:25:58"},{"expression":{"argumentTypes":null,"id":17501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8544:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17499,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"8544:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17500,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"8566:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"8544:33:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":17502,"nodeType":"ExpressionStatement","src":"8544:33:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17503,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"8591:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17506,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17504,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8605:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8605:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8591:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":17508,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8641:1:58","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":17507,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8633:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":17509,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8633:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8591:52:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":17535,"nodeType":"IfStatement","src":"8587:292:58","trueBody":{"id":17534,"nodeType":"Block","src":"8645:234:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":17515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17511,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17397,"src":"8663:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":17513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8688:1:58","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":17512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8680:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":17514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8680:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8663:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":17532,"nodeType":"Block","src":"8782:87:58","statements":[{"expression":{"argumentTypes":null,"id":17530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17525,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"8800:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17528,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17526,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8814:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17527,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8814:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8800:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17529,"name":"_organization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17397,"src":"8841:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8800:54:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17531,"nodeType":"ExpressionStatement","src":"8800:54:58"}]},"id":17533,"nodeType":"IfStatement","src":"8659:210:58","trueBody":{"id":17524,"nodeType":"Block","src":"8692:84:58","statements":[{"expression":{"argumentTypes":null,"id":17522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17516,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"8710:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17519,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17517,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"8724:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17518,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"8724:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8710:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17520,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"8751:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8751:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"8710:51:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":17523,"nodeType":"ExpressionStatement","src":"8710:51:58"}]}}]}},{"assignments":[17537],"declarations":[{"constant":false,"id":17537,"name":"daoBounty","nodeType":"VariableDeclaration","scope":17593,"src":"8914:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17536,"name":"uint256","nodeType":"ElementaryTypeName","src":"8914:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17551,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"313030","id":17549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9043:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17543,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"8985:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":17546,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17544,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9013:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"9013:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8985:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17538,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"8942:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17540,"indexExpression":{"argumentTypes":null,"id":17539,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"8953:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8942:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyConst","nodeType":"MemberAccess","referencedDeclaration":17176,"src":"8942:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"8942:42:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8942:96:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"8942:100:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8942:105:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8914:133:58"},{"expression":{"argumentTypes":null,"id":17562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17552,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9057:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"9057:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17557,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"9098:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17559,"indexExpression":{"argumentTypes":null,"id":17558,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"9109:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9098:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"minimumDaoBounty","nodeType":"MemberAccess","referencedDeclaration":17174,"src":"9098:40:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17555,"name":"daoBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17537,"src":"9084:9:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"max","nodeType":"MemberAccess","referencedDeclaration":20158,"src":"9084:13:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9084:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9057:82:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17563,"nodeType":"ExpressionStatement","src":"9057:82:58"},{"expression":{"argumentTypes":null,"id":17568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17564,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9149:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17566,"indexExpression":{"argumentTypes":null,"id":17565,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9159:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9149:21:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":17567,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9173:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"src":"9149:32:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17569,"nodeType":"ExpressionStatement","src":"9149:32:58"},{"expression":{"argumentTypes":null,"id":17578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17570,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"9191:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17572,"indexExpression":{"argumentTypes":null,"id":17571,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9201:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9191:21:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":17573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"9191:28:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17575,"indexExpression":{"argumentTypes":null,"id":17574,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"9220:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9191:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17576,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9226:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"9226:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9191:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17579,"nodeType":"ExpressionStatement","src":"9191:59:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17581,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9309:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17582,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"9321:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":17585,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17583,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17439,"src":"9335:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":17584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"9335:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9321:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":17586,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"9361:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17587,"name":"_proposer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17395,"src":"9377:9:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":17588,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17393,"src":"9388:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17580,"name":"NewProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19713,"src":"9297:11:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_address_$_t_bytes32_$returns$__$","typeString":"function (bytes32,address,uint256,address,bytes32)"}},"id":17589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9297:103:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17590,"nodeType":"EmitStatement","src":"9292:108:58"},{"expression":{"argumentTypes":null,"id":17591,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17422,"src":"9417:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17401,"id":17592,"nodeType":"Return","src":"9410:17:58"}]},"documentation":"@dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\ngenerated by calculating keccak256 of a incremented counter.\n@param _paramsHash parameters hash\n@param _proposer address\n@param _organization address","id":17594,"implemented":true,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":17398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17391,"name":"","nodeType":"VariableDeclaration","scope":17594,"src":"7499:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17390,"name":"uint256","nodeType":"ElementaryTypeName","src":"7499:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":17393,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":17594,"src":"7508:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17392,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7508:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17395,"name":"_proposer","nodeType":"VariableDeclaration","scope":17594,"src":"7529:17:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17394,"name":"address","nodeType":"ElementaryTypeName","src":"7529:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":17397,"name":"_organization","nodeType":"VariableDeclaration","scope":17594,"src":"7548:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17396,"name":"address","nodeType":"ElementaryTypeName","src":"7548:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"7498:72:58"},"returnParameters":{"id":17401,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17400,"name":"","nodeType":"VariableDeclaration","scope":17594,"src":"7604:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17399,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7604:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7603:9:58"},"scope":19681,"src":"7482:1952:58","stateMutability":"nonpayable","superFunction":19762,"visibility":"external"},{"body":{"id":17678,"nodeType":"Block","src":"10017:835:58","statements":[{"assignments":[17602],"declarations":[{"constant":false,"id":17602,"name":"proposal","nodeType":"VariableDeclaration","scope":17678,"src":"10027:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":17601,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"10027:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":17606,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17603,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"10055:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17605,"indexExpression":{"argumentTypes":null,"id":17604,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10065:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10055:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10027:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17608,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10095:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"10095:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17610,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"10113:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10113:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"10095:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17613,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10138:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17614,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"10138:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17615,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"10156:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17616,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10156:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"10138:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10095:92:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c20737461746520696e206e6f7420426f6f73746564206e6f72205175696574456e64696e67506572696f64","id":17619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10197:53:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d12753c56f593192768acab33c56c3c76e99c56e3892b0d2f229882577785553","typeString":"literal_string \"proposal state in not Boosted nor QuietEndingPeriod\""},"value":"proposal state in not Boosted nor QuietEndingPeriod"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d12753c56f593192768acab33c56c3c76e99c56e3892b0d2f229882577785553","typeString":"literal_string \"proposal state in not Boosted nor QuietEndingPeriod\""}],"id":17607,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10087:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10087:164:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17621,"nodeType":"ExpressionStatement","src":"10087:164:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17624,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10278:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17623,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"10269:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":17625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10269:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"70726f706f73616c206e65656420746f20657870697265","id":17626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10292:25:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_194736d0946e0cd4d131aa98afe9f266adc8d4f15ccac91b5a140d100c4a55cc","typeString":"literal_string \"proposal need to expire\""},"value":"proposal need to expire"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_194736d0946e0cd4d131aa98afe9f266adc8d4f15ccac91b5a140d100c4a55cc","typeString":"literal_string \"proposal need to expire\""}],"id":17622,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10261:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10261:57:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17628,"nodeType":"ExpressionStatement","src":"10261:57:58"},{"expression":{"argumentTypes":null,"id":17643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17629,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10329:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"secondsFromTimeOutTillExecuteBoosted","nodeType":"MemberAccess","referencedDeclaration":17219,"src":"10329:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17637,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10490:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17638,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"10490:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":17640,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":17639,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10505:1:58","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":"10490:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17634,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10447:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17635,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"10447:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"10447:42:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10447:61:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17632,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"10439:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10439:7:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10439:70:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10329:180:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17644,"nodeType":"ExpressionStatement","src":"10329:180:58"},{"expression":{"argumentTypes":null,"id":17649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17645,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10520:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17647,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10565:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17646,"name":"calcExecuteCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18492,"src":"10543:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":17648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10543:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10520:57:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17650,"nodeType":"ExpressionStatement","src":"10520:57:58"},{"expression":{"argumentTypes":null,"id":17659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17651,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10587:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17653,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"10587:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17657,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10635:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17654,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17602,"src":"10610:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17655,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"10610:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"10610:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10610:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10587:69:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17660,"nodeType":"ExpressionStatement","src":"10587:69:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17664,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10696:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10696:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":17666,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10708:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17662,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"10674:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":17663,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"10674:21:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":17667,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10674:55:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7472616e7366657220746f206d73672e73656e646572206661696c6564","id":17668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10731:31:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b85ceb8ee02c2d2292ab8271b7e4c009f72c6e882f9263faea1f89e089f0781d","typeString":"literal_string \"transfer to msg.sender failed\""},"value":"transfer to msg.sender failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b85ceb8ee02c2d2292ab8271b7e4c009f72c6e882f9263faea1f89e089f0781d","typeString":"literal_string \"transfer to msg.sender failed\""}],"id":17661,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"10666:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10666:97:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17670,"nodeType":"ExpressionStatement","src":"10666:97:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17672,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17596,"src":"10799:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17673,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"10812:3:58","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":17674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"10812:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":17675,"name":"expirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17599,"src":"10824:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17671,"name":"ExpirationCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17308,"src":"10778:20:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":17676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10778:67:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17677,"nodeType":"EmitStatement","src":"10773:72:58"}]},"documentation":"@dev executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired\nit rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function.\nP = t/150, where t is the number of seconds passed since the the proposal's timeout.\nP is capped by 10%.\n@param _proposalId the id of the proposal\n@return uint256 expirationCallBounty the bounty amount for the expiration call","id":17679,"implemented":true,"kind":"function","modifiers":[],"name":"executeBoosted","nodeType":"FunctionDefinition","parameters":{"id":17597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17596,"name":"_proposalId","nodeType":"VariableDeclaration","scope":17679,"src":"9949:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17595,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9949:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9948:21:58"},"returnParameters":{"id":17600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17599,"name":"expirationCallBounty","nodeType":"VariableDeclaration","scope":17679,"src":"9987:28:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17598,"name":"uint256","nodeType":"ElementaryTypeName","src":"9987:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9986:30:58"},"scope":19681,"src":"9925:927:58","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":17866,"nodeType":"Block","src":"11976:1650:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17691,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"11994:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17693,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17692,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12002:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11994:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":17694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12008:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"11994:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17696,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12015:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17698,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12023:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12015:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"hexValue":"3530","id":17699,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12029:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"src":"12015:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"11994:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"3530203c3d20717565756564566f7465526571756972656450657263656e74616765203c3d20313030","id":17702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12033:43:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_85b9f97a846fa88401fdf1381ec2257f07804de0b75677db4c2efd7a2ce62825","typeString":"literal_string \"50 <= queuedVoteRequiredPercentage <= 100\""},"value":"50 <= queuedVoteRequiredPercentage <= 100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_85b9f97a846fa88401fdf1381ec2257f07804de0b75677db4c2efd7a2ce62825","typeString":"literal_string \"50 <= queuedVoteRequiredPercentage <= 100\""}],"id":17690,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"11986:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"11986:91:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17704,"nodeType":"ExpressionStatement","src":"11986:91:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17706,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12095:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17708,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12103:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12095:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"3136303030","id":17709,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12109:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16000_by_1","typeString":"int_const 16000"},"value":"16000"},"src":"12095:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17711,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12118:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17713,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17712,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12126:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12118:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"31303030","id":17714,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12131:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"},"src":"12118:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12095:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"31303030203c207468726573686f6c64436f6e7374203c3d203136303030","id":17717,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12137:32:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_daddeca132c5a35f259acc956e39955b67e80315dbd0a39292b027685447fb58","typeString":"literal_string \"1000 < thresholdConst <= 16000\""},"value":"1000 < thresholdConst <= 16000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_daddeca132c5a35f259acc956e39955b67e80315dbd0a39292b027685447fb58","typeString":"literal_string \"1000 < thresholdConst <= 16000\""}],"id":17705,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12087:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12087:83:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17719,"nodeType":"ExpressionStatement","src":"12087:83:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17721,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12188:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17723,"indexExpression":{"argumentTypes":null,"hexValue":"37","id":17722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12196:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12188:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":17724,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12202:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"12188:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f7465727352657075746174696f6e4c6f7373526174696f203c3d20313030","id":17726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12207:34:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_b9a8ef96bdbf8c6f5867a44627f3e55d258417d72b6eee622f0941021e48ccc2","typeString":"literal_string \"votersReputationLossRatio <= 100\""},"value":"votersReputationLossRatio <= 100"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b9a8ef96bdbf8c6f5867a44627f3e55d258417d72b6eee622f0941021e48ccc2","typeString":"literal_string \"votersReputationLossRatio <= 100\""}],"id":17720,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12180:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12180:62:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17728,"nodeType":"ExpressionStatement","src":"12180:62:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17730,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12260:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17732,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":17731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12268:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12260:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17733,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12274:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17735,"indexExpression":{"argumentTypes":null,"hexValue":"35","id":17734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12282:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12274:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12260:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"626f6f73746564566f7465506572696f644c696d6974203e3d207175696574456e64696e67506572696f64","id":17737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12286:45:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_609d5e4f75f374c5d875da125e2b6693907dc86231a6a7783cbd890bcb51f823","typeString":"literal_string \"boostedVotePeriodLimit >= quietEndingPeriod\""},"value":"boostedVotePeriodLimit >= quietEndingPeriod"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_609d5e4f75f374c5d875da125e2b6693907dc86231a6a7783cbd890bcb51f823","typeString":"literal_string \"boostedVotePeriodLimit >= quietEndingPeriod\""}],"id":17729,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12252:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12252:80:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17739,"nodeType":"ExpressionStatement","src":"12252:80:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17741,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12350:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17743,"indexExpression":{"argumentTypes":null,"hexValue":"38","id":17742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12358:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12350:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":17744,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12363:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12350:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e696d756d44616f426f756e74792073686f756c64206265203e2030","id":17746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12366:32:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9a2fb70181672a535ab2f25b5eb32644096d5daab13cf3cb8ef2cfc2561af9a3","typeString":"literal_string \"minimumDaoBounty should be > 0\""},"value":"minimumDaoBounty should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9a2fb70181672a535ab2f25b5eb32644096d5daab13cf3cb8ef2cfc2561af9a3","typeString":"literal_string \"minimumDaoBounty should be > 0\""}],"id":17740,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12342:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12342:57:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17748,"nodeType":"ExpressionStatement","src":"12342:57:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17754,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17750,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12417:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17752,"indexExpression":{"argumentTypes":null,"hexValue":"39","id":17751,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12425:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12417:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":17753,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12430:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12417:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64616f426f756e7479436f6e73742073686f756c64206265203e2030","id":17755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"12433:30:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_996a184b88eb3effd28e9cef20fafeecddc7873295cdda23c6bb178b43ff4ba3","typeString":"literal_string \"daoBountyConst should be > 0\""},"value":"daoBountyConst should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_996a184b88eb3effd28e9cef20fafeecddc7873295cdda23c6bb178b43ff4ba3","typeString":"literal_string \"daoBountyConst should be > 0\""}],"id":17749,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"12409:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12409:55:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17757,"nodeType":"ExpressionStatement","src":"12409:55:58"},{"assignments":[17759],"declarations":[{"constant":false,"id":17759,"name":"paramsHash","nodeType":"VariableDeclaration","scope":17866,"src":"12475:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12475:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":17764,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17761,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12514:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},{"argumentTypes":null,"id":17762,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17685,"src":"12523:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17760,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18614,"src":"12496:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_array$_t_uint256_$11_memory_ptr_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256[11] memory,address) pure returns (bytes32)"}},"id":17763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"12496:41:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"12475:62:58"},{"assignments":[17766],"declarations":[{"constant":false,"id":17766,"name":"limitExponent","nodeType":"VariableDeclaration","scope":17866,"src":"12617:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17765,"name":"uint256","nodeType":"ElementaryTypeName","src":"12617:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17768,"initialValue":{"argumentTypes":null,"hexValue":"313732","id":17767,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12641:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_172_by_1","typeString":"int_const 172"},"value":"172"},"nodeType":"VariableDeclarationStatement","src":"12617:27:58"},{"assignments":[17770],"declarations":[{"constant":false,"id":17770,"name":"j","nodeType":"VariableDeclaration","scope":17866,"src":"12681:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17769,"name":"uint256","nodeType":"ElementaryTypeName","src":"12681:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17772,"initialValue":{"argumentTypes":null,"hexValue":"32","id":17771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12693:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"VariableDeclarationStatement","src":"12681:13:58"},{"body":{"id":17813,"nodeType":"Block","src":"12747:173:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17786,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12766:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17788,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12774:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12766:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":17789,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12779:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12766:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17791,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12765:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17792,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"12786:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17794,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17793,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12794:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12786:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17795,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12800:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"32","id":17796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12802:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12800:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12786:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17799,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"12785:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"12765:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":17809,"nodeType":"IfStatement","src":"12761:132:58","trueBody":{"id":17808,"nodeType":"Block","src":"12806:87:58","statements":[{"expression":{"argumentTypes":null,"id":17805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17801,"name":"limitExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17766,"src":"12824:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17802,"name":"limitExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17766,"src":"12840:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":17803,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"12854:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12840:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12824:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17806,"nodeType":"ExpressionStatement","src":"12824:31:58"},{"id":17807,"nodeType":"Break","src":"12873:5:58"}]}},{"expression":{"argumentTypes":null,"id":17811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12906:3:58","subExpression":{"argumentTypes":null,"id":17810,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17770,"src":"12906:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17812,"nodeType":"ExpressionStatement","src":"12906:3:58"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12727:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"hexValue":"3136303030","id":17778,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12731:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_16000_by_1","typeString":"int_const 16000"},"value":"16000"},"src":"12727:9:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":17814,"initializationExpression":{"assignments":[17774],"declarations":[{"constant":false,"id":17774,"name":"i","nodeType":"VariableDeclaration","scope":17814,"src":"12709:9:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17773,"name":"uint256","nodeType":"ElementaryTypeName","src":"12709:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17776,"initialValue":{"argumentTypes":null,"hexValue":"32303030","id":17775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12721:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2000_by_1","typeString":"int_const 2000"},"value":"2000"},"nodeType":"VariableDeclarationStatement","src":"12709:16:58"},"loopExpression":{"expression":{"argumentTypes":null,"id":17784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":17780,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12738:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":17781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17774,"src":"12742:1:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"32","id":17782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12744:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"12742:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12738:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17785,"nodeType":"ExpressionStatement","src":"12738:7:58"},"nodeType":"ForStatement","src":"12704:216:58"},{"expression":{"argumentTypes":null,"id":17862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17815,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"12930:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17817,"indexExpression":{"argumentTypes":null,"id":17816,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17759,"src":"12941:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12930:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17819,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13010:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17821,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13018:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13010:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17822,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13057:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17824,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":17823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13065:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13057:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17825,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13105:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17827,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":17826,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13113:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13105:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17828,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13156:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17830,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":17829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13164:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13156:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31303030","id":17838,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13232:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"},"value":"1000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000_by_1","typeString":"int_const 1000"}],"id":17837,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13224:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":17839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13224:13:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17832,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13203:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17834,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":17833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13211:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13203:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":17831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13195:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":17835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13195:19:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":17836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":15182,"src":"13195:28:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":17840,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"13195:43:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17841,"name":"limitExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17766,"src":"13271:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17842,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13317:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17844,"indexExpression":{"argumentTypes":null,"hexValue":"35","id":17843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13325:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13317:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17845,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13361:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17847,"indexExpression":{"argumentTypes":null,"hexValue":"36","id":17846,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13369:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13361:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17848,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13411:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17850,"indexExpression":{"argumentTypes":null,"hexValue":"37","id":17849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13419:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13411:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17851,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13452:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17853,"indexExpression":{"argumentTypes":null,"hexValue":"38","id":17852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13460:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13452:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17854,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13491:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17856,"indexExpression":{"argumentTypes":null,"hexValue":"39","id":17855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13499:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13491:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17857,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17683,"src":"13530:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11] calldata"}},"id":17859,"indexExpression":{"argumentTypes":null,"hexValue":"3130","id":17858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13538:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13530:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":17860,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17685,"src":"13568:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"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"},{"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"},{"typeIdentifier":"t_address","typeString":"address"}],"id":17818,"name":"Parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17181,"src":"12955:10:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Parameters_$17181_storage_ptr_$","typeString":"type(struct GenesisProtocolLogic.Parameters storage pointer)"}},"id":17861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["queuedVoteRequiredPercentage","queuedVotePeriodLimit","boostedVotePeriodLimit","preBoostedVotePeriodLimit","thresholdConst","limitExponentValue","quietEndingPeriod","proposingRepReward","votersReputationLossRatio","minimumDaoBounty","daoBountyConst","activationTime","voteOnBehalf"],"nodeType":"FunctionCall","src":"12955:637:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"src":"12930:662:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"id":17863,"nodeType":"ExpressionStatement","src":"12930:662:58"},{"expression":{"argumentTypes":null,"id":17864,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17759,"src":"13609:10:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":17689,"id":17865,"nodeType":"Return","src":"13602:17:58"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value\n@param _params a parameters array\n _params[0] - _queuedVoteRequiredPercentage,\n _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode.\n _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode.\n _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation\n state (stable) before boosted.\n _params[4] -_thresholdConst\n _params[5] -_quietEndingPeriod\n _params[6] -_proposingRepReward\n _params[7] -_votersReputationLossRatio\n _params[8] -_minimumDaoBounty\n _params[9] -_daoBountyConst\n _params[10] -_activationTime\n@param _voteOnBehalf - authorized to vote on behalf of others.","id":17867,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":17686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17683,"name":"_params","nodeType":"VariableDeclaration","scope":17867,"src":"11829:25:58","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_calldata_ptr","typeString":"uint256[11]"},"typeName":{"baseType":{"id":17680,"name":"uint","nodeType":"ElementaryTypeName","src":"11829:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17682,"length":{"argumentTypes":null,"hexValue":"3131","id":17681,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11834:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"nodeType":"ArrayTypeName","src":"11829:8:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_storage_ptr","typeString":"uint256[11]"}},"value":null,"visibility":"internal"},{"constant":false,"id":17685,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":17867,"src":"11910:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17684,"name":"address","nodeType":"ElementaryTypeName","src":"11910:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"11819:118:58"},"returnParameters":{"id":17689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17688,"name":"","nodeType":"VariableDeclaration","scope":17867,"src":"11963:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17687,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11963:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"11962:9:58"},"scope":19681,"src":"11797:1829:58","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":18314,"nodeType":"Block","src":"14284:3943:58","statements":[{"assignments":[17879],"declarations":[{"constant":false,"id":17879,"name":"proposal","nodeType":"VariableDeclaration","scope":18314,"src":"14294:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":17878,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"14294:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":17883,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17880,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"14322:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":17882,"indexExpression":{"argumentTypes":null,"id":17881,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"14332:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14322:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14294:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":17897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17885,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14363:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17886,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"14363:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17887,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"14381:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17888,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14381:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"14363:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17890,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14362:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17891,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14407:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17892,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"14407:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17893,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"14425:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14425:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"14407:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":17896,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"14406:48:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14362:92:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"50726f706f73616c2073686f756c64206265204578656375746564206f722045787069726564496e5175657565","id":17898,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"14464:47:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4e192fc0c0c06bbf22b55d1039c663d5c5a02b944d66c77797d07c1d4ad01bb5","typeString":"literal_string \"Proposal should be Executed or ExpiredInQueue\""},"value":"Proposal should be Executed or ExpiredInQueue"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4e192fc0c0c06bbf22b55d1039c663d5c5a02b944d66c77797d07c1d4ad01bb5","typeString":"literal_string \"Proposal should be Executed or ExpiredInQueue\""}],"id":17884,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"14354:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":17899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14354:158:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":17900,"nodeType":"ExpressionStatement","src":"14354:158:58"},{"assignments":[17902],"declarations":[{"constant":false,"id":17902,"name":"params","nodeType":"VariableDeclaration","scope":18314,"src":"14522:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":17901,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"14522:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":17907,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17903,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"14549:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":17906,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17904,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14560:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17905,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"14560:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14549:31:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14522:58:58"},{"assignments":[17909],"declarations":[{"constant":false,"id":17909,"name":"staker","nodeType":"VariableDeclaration","scope":18314,"src":"14610:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"},"typeName":{"contractScope":null,"id":17908,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"14610:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}},"value":null,"visibility":"internal"}],"id":17914,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17910,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14634:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17911,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"14634:16:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":17913,"indexExpression":{"argumentTypes":null,"id":17912,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"14651:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14634:30:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14610:54:58"},{"assignments":[17916],"declarations":[{"constant":false,"id":17916,"name":"totalWinningStakes","nodeType":"VariableDeclaration","scope":18314,"src":"14674:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17915,"name":"uint256","nodeType":"ElementaryTypeName","src":"14674:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17922,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17917,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14703:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17918,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"14703:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17921,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17919,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14719:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"14719:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14703:37:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14674:66:58"},{"assignments":[17924],"declarations":[{"constant":false,"id":17924,"name":"totalStakesLeftAfterCallBounty","nodeType":"VariableDeclaration","scope":18314,"src":"14750:38:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17923,"name":"uint256","nodeType":"ElementaryTypeName","src":"14750:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17940,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17937,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"14871:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":17936,"name":"calcExecuteCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18492,"src":"14849:21:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":17938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14849:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17930,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14823:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17931,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"14823:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17933,"indexExpression":{"argumentTypes":null,"id":17932,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"14839:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14823:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17925,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14799:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"14799:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":17928,"indexExpression":{"argumentTypes":null,"id":17927,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"14815:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14799:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"14799:23:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14799:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"14799:49:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"14799:85:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"14750:134:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17941,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"14898:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"14898:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":17943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14914:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14898:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18020,"nodeType":"IfStatement","src":"14894:823:58","trueBody":{"id":18019,"nodeType":"Block","src":"14917:800:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":17949,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17945,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"14936:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"14936:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17947,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"14954:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":17948,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"14954:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"14936:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17958,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15139:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"15139:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17960,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15154:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17961,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"15154:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15139:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18011,"nodeType":"IfStatement","src":"15135:541:58","trueBody":{"id":18010,"nodeType":"Block","src":"15176:500:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17963,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15198:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17964,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"15198:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":17965,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"15213:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15198:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18008,"nodeType":"Block","src":"15538:124:58","statements":[{"expression":{"argumentTypes":null,"id":18006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17995,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15560:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":17997,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17996,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15568:1:58","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":"15560:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18001,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"15592:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17998,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15574:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15574:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15574:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15574:49:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18003,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15573:51:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":18004,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"15625:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15573:70:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15560:83:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18007,"nodeType":"ExpressionStatement","src":"15560:83:58"}]},"id":18009,"nodeType":"IfStatement","src":"15194:468:58","trueBody":{"id":17994,"nodeType":"Block","src":"15218:314:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17967,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15244:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17968,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"15244:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":17969,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"15265:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15244:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":17993,"nodeType":"IfStatement","src":"15240:274:58","trueBody":{"id":17992,"nodeType":"Block","src":"15297:217:58","statements":[{"assignments":[17972],"declarations":[{"constant":false,"id":17972,"name":"_totalStakes","nodeType":"VariableDeclaration","scope":17992,"src":"15323:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":17971,"name":"uint256","nodeType":"ElementaryTypeName","src":"15323:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":17978,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17975,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15381:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":17976,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"15381:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":17973,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"15346:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"15346:34:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15346:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15323:77:58"},{"expression":{"argumentTypes":null,"id":17990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17979,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15426:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":17981,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17980,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15434:1:58","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":"15426:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":17989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":17985,"name":"_totalStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17972,"src":"15458:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17982,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15440:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15440:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"15440:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":17986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"15440:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":17987,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"15439:33:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":17988,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"15473:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15439:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15426:65:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17991,"nodeType":"ExpressionStatement","src":"15426:65:58"}]}}]}}]}},"id":18012,"nodeType":"IfStatement","src":"14932:744:58","trueBody":{"id":17957,"nodeType":"Block","src":"14984:145:58","statements":[{"expression":{"argumentTypes":null,"id":17955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":17950,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15088:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":17952,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":17951,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15096:1:58","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":"15088:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":17953,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15101:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":17954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15101:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15088:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17956,"nodeType":"ExpressionStatement","src":"15088:26:58"}]}},{"expression":{"argumentTypes":null,"id":18017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18013,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17909,"src":"15689:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"15689:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":18016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15705:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15689:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18018,"nodeType":"ExpressionStatement","src":"15689:17:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18021,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15768:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoRedeemItsWinnings","nodeType":"MemberAccess","referencedDeclaration":17225,"src":"15768:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":18023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15801:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15768:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18025,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"15822:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18026,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"15838:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18029,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18027,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15852:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"15852:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15838:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15822:54:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15768:108:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18032,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15892:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18033,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"15892:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18034,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"15910:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18035,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"15910:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"15892:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15768:170:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18038,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"15954:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"15954:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18040,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"15978:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15954:26:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"15768:212:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18072,"nodeType":"IfStatement","src":"15764:459:58","trueBody":{"id":18071,"nodeType":"Block","src":"15982:241:58","statements":[{"expression":{"argumentTypes":null,"id":18063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18043,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"15996:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18045,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16004:1:58","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":"15996:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18060,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16143:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18061,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"16143:18:58","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":18057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18053,"name":"totalStakesLeftAfterCallBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17924,"src":"16073:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18050,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16050:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18051,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"16050:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16050:22:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16050:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18055,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16049:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":18056,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17916,"src":"16106:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16049:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18046,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"16021:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18048,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16029:1:58","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":"16021:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"16021:27:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16021:104:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"16021:121:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16021:141:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15996:166:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18064,"nodeType":"ExpressionStatement","src":"15996:166:58"},{"expression":{"argumentTypes":null,"id":18069,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18065,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18067,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoRedeemItsWinnings","nodeType":"MemberAccess","referencedDeclaration":17225,"src":"16176:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":18068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16208:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16176:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18070,"nodeType":"ExpressionStatement","src":"16176:36:58"}]}},{"assignments":[18074],"declarations":[{"constant":false,"id":18074,"name":"voter","nodeType":"VariableDeclaration","scope":18314,"src":"16252:19:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"},"typeName":{"contractScope":null,"id":18073,"name":"Voter","nodeType":"UserDefinedTypeName","referencedDeclaration":17188,"src":"16252:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter"}},"value":null,"visibility":"internal"}],"id":18079,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18075,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16274:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18076,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"16274:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":18078,"indexExpression":{"argumentTypes":null,"id":18077,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"16290:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16274:29:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16252:51:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18080,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16318:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"16318:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18082,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16338:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"16318:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18084,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16317:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18085,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16345:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18086,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoosted","nodeType":"MemberAccess","referencedDeclaration":17187,"src":"16345:16:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18087,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16344:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"16317:45:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18189,"nodeType":"IfStatement","src":"16313:944:58","trueBody":{"id":18188,"nodeType":"Block","src":"16364:893:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18089,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16382:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18090,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"16382:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18091,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"16400:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"16400:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"16382:46:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16599:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"16599:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18112,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16623:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18113,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17183,"src":"16623:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16599:34:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18180,"nodeType":"IfStatement","src":"16595:618:58","trueBody":{"id":18179,"nodeType":"Block","src":"16635:578:58","statements":[{"assignments":[18116],"declarations":[{"constant":false,"id":18116,"name":"lostReputation","nodeType":"VariableDeclaration","scope":18179,"src":"16653:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18115,"name":"uint256","nodeType":"ElementaryTypeName","src":"16653:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18117,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"16653:22:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16697:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"16697:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18120,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"16721:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16697:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18137,"nodeType":"Block","src":"16818:87:58","statements":[{"expression":{"argumentTypes":null,"id":18135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18130,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16840:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18131,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16857:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"16857:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18134,"indexExpression":{"argumentTypes":null,"id":18133,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"16882:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16857:29:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16840:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18136,"nodeType":"ExpressionStatement","src":"16840:46:58"}]},"id":18138,"nodeType":"IfStatement","src":"16693:212:58","trueBody":{"id":18129,"nodeType":"Block","src":"16726:86:58","statements":[{"expression":{"argumentTypes":null,"id":18127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18122,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16748:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18123,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"16765:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"16765:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18126,"indexExpression":{"argumentTypes":null,"id":18125,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"16790:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16765:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16748:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18128,"nodeType":"ExpressionStatement","src":"16748:45:58"}]}},{"expression":{"argumentTypes":null,"id":18148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18139,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16922:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18142,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"16959:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18143,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"16959:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18140,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"16940:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16940:18:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16940:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16939:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16994:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"16939:58:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16922:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18149,"nodeType":"ExpressionStatement","src":"16922:75:58"},{"expression":{"argumentTypes":null,"id":18177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18150,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17015:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18152,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17023:1:58","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":"17015:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18167,"name":"lostReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18116,"src":"17134:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18164,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"17113:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"17113:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"17113:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17113:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18169,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17112:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18170,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17151:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18171,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"17151:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18174,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18172,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"17176:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17151:46:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17112:85:58","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":18161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18156,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"17051:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18157,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"17051:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18153,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"17030:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18154,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"17030:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"17030:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17030:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18159,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17029:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17086:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"17029:60:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18162,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17028:62:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"17028:83:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17028:170:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17015:183:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18178,"nodeType":"ExpressionStatement","src":"17015:183:58"}]}},"id":18181,"nodeType":"IfStatement","src":"16378:835:58","trueBody":{"id":18109,"nodeType":"Block","src":"16430:159:58","statements":[{"expression":{"argumentTypes":null,"id":18107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18094,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"16499:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18096,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16507:1:58","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":"16499:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18100,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"16535:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"16535:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18097,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"16514:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18098,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"16514:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"16514:20:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"16514:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18103,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16513:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16570:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"16513:60:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"16512:62:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16499:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18108,"nodeType":"ExpressionStatement","src":"16499:75:58"}]}},{"expression":{"argumentTypes":null,"id":18186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18182,"name":"voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18074,"src":"17226:5:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage_ptr","typeString":"struct GenesisProtocolLogic.Voter storage pointer"}},"id":18184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"17226:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":18185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17245:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17226:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18187,"nodeType":"ExpressionStatement","src":"17226:20:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18190,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17293:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18191,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"17293:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18192,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17314:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17293:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18194,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17292:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18195,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17330:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"17330:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18197,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"17354:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17330:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18199,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17329:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17292:66:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":18206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18201,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17361:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18202,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"17361:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":18204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17390:1:58","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":18203,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17382:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":18205,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17382:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17361:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18207,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"17360:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"17292:101:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18225,"nodeType":"IfStatement","src":"17288:214:58","trueBody":{"id":18224,"nodeType":"Block","src":"17395:107:58","statements":[{"expression":{"argumentTypes":null,"id":18214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18209,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17409:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18211,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17417:1:58","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":"17409:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18212,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17902,"src":"17422:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposingRepReward","nodeType":"MemberAccess","referencedDeclaration":17170,"src":"17422:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17409:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18215,"nodeType":"ExpressionStatement","src":"17409:38:58"},{"expression":{"argumentTypes":null,"id":18222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18216,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17461:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"proposer","nodeType":"MemberAccess","referencedDeclaration":17205,"src":"17461:17:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":18220,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17489:1:58","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":18219,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17481:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":18221,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17481:10:58","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17461:30:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":18223,"nodeType":"ExpressionStatement","src":"17461:30:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18226,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17515:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18228,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17523:1:58","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":"17515:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17529:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17515:15:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18267,"nodeType":"IfStatement","src":"17511:313:58","trueBody":{"id":18266,"nodeType":"Block","src":"17532:292:58","statements":[{"expression":{"argumentTypes":null,"id":18241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18231,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17546:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"17546:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18237,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17594:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18239,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17602:1:58","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":"17594:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18234,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17569:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"17569:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"17569:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17569:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17546:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18242,"nodeType":"ExpressionStatement","src":"17546:59:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18246,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17649:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18247,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17663:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18249,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17671:1:58","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":"17663:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18244,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"17627:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":18245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"17627:21:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":18250,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17627:47:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7472616e7366657220746f2062656e6566696369617279206661696c6564","id":18251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"17676:32:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_01f9c28ec45391324b198ba689dab8ac93829b0379c464b3a8745b9a5d1be004","typeString":"literal_string \"transfer to beneficiary failed\""},"value":"transfer to beneficiary failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_01f9c28ec45391324b198ba689dab8ac93829b0379c464b3a8745b9a5d1be004","typeString":"literal_string \"transfer to beneficiary failed\""}],"id":18243,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"17619:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":18252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17619:90:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18253,"nodeType":"ExpressionStatement","src":"17619:90:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18255,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"17735:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18256,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"17748:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18259,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18257,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17762:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"17762:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17748:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18260,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17788:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18261,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17802:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18263,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17810:1:58","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":"17802:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18254,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17268,"src":"17728:6:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":18264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17728:85:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18265,"nodeType":"EmitStatement","src":"17723:90:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18272,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17852:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18274,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17860:1:58","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":"17852:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18268,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17837:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18270,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17845:1:58","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":"17837:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"17837:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17837:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17867:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"17837:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18313,"nodeType":"IfStatement","src":"17833:388:58","trueBody":{"id":18312,"nodeType":"Block","src":"17870:351:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18287,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17979:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18289,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17987:1:58","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":"17979:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18283,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"17964:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18285,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17972:1:58","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":"17964:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"17964:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17964:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":18291,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"17992:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18292,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"18006:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18279,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"17916:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"17916:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18278,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"17884:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17884:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":19981,"src":"17884:79:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,address,bytes32) external returns (bool)"}},"id":18293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"17884:134:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":18294,"nodeType":"ExpressionStatement","src":"17884:134:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18296,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17869,"src":"18067:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18297,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"18092:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18300,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18298,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17879,"src":"18106:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18299,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"18106:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18092:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18301,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17871,"src":"18144:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18306,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"18185:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18308,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18193:1:58","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":"18185:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18302,"name":"rewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17876,"src":"18170:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":18304,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18178:1:58","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":"18170:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"18170:14:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18170:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18295,"name":"RedeemReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17288,"src":"18037:16:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":18310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18037:173:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18311,"nodeType":"EmitStatement","src":"18032:178:58"}]}}]},"documentation":"@dev redeem a reward for a successful stake, vote or proposing.\nThe function use a beneficiary address as a parameter (and not msg.sender) to enable\nusers to redeem on behalf of someone else.\n@param _proposalId the ID of the proposal\n@param _beneficiary - the beneficiary address\n@return rewards -\n [0] stakerTokenReward\n [1] voterReputationReward\n [2] proposerReputationReward","id":18315,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":17872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17869,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18315,"src":"14201:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":17868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14201:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":17871,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":18315,"src":"14222:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":17870,"name":"address","nodeType":"ElementaryTypeName","src":"14222:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"14200:43:58"},"returnParameters":{"id":17877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":17876,"name":"rewards","nodeType":"VariableDeclaration","scope":18315,"src":"14260:22:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":17873,"name":"uint","nodeType":"ElementaryTypeName","src":"14260:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":17875,"length":{"argumentTypes":null,"hexValue":"33","id":17874,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14265:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"14260:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"}],"src":"14259:24:58"},"scope":19681,"src":"14185:4042:58","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":18452,"nodeType":"Block","src":"18864:1256:58","statements":[{"assignments":[18327],"declarations":[{"constant":false,"id":18327,"name":"proposal","nodeType":"VariableDeclaration","scope":18452,"src":"18874:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18326,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"18874:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18331,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18328,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"18902:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18330,"indexExpression":{"argumentTypes":null,"id":18329,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"18912:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18902:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18874:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18333,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"18942:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"18942:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18335,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"18960:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"18960:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"18942:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18332,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"18934:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"18934:49:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18339,"nodeType":"ExpressionStatement","src":"18934:49:58"},{"assignments":[18341],"declarations":[{"constant":false,"id":18341,"name":"totalWinningStakes","nodeType":"VariableDeclaration","scope":18452,"src":"18993:26:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18340,"name":"uint256","nodeType":"ElementaryTypeName","src":"18993:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18347,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18342,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19022:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"19022:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18346,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18344,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19038:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"19038:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19022:37:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18993:66:58"},{"assignments":[18349],"declarations":[{"constant":false,"id":18349,"name":"staker","nodeType":"VariableDeclaration","scope":18452,"src":"19069:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"},"typeName":{"contractScope":null,"id":18348,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"19069:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}},"value":null,"visibility":"internal"}],"id":18354,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18350,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19093:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18351,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"19093:16:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":18353,"indexExpression":{"argumentTypes":null,"id":18352,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18319,"src":"19110:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19093:30:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19069:54:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18355,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19151:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"19151:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19174:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19151:24:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18359,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19150:26:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18360,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19192:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18361,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"19192:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18362,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19207:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18363,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"19207:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19192:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18365,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19191:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19150:78:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18367,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19244:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"19244:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":18369,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"19268:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19244:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18371,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19243:29:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19150:122:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18373,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18341,"src":"19288:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19310:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19288:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18376,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19287:25:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19150:162:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18390,"nodeType":"IfStatement","src":"19133:318:58","trueBody":{"id":18389,"nodeType":"Block","src":"19314:137:58","statements":[{"expression":{"argumentTypes":null,"id":18387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18378,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19356:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18379,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19375:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"19375:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18381,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19398:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"19398:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19375:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19374:43:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":18385,"name":"totalWinningStakes","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18341,"src":"19418:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19374:62:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19356:80:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18388,"nodeType":"ExpressionStatement","src":"19356:80:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18393,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18391,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19465:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":18392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19484:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19465:20:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18394,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19464:22:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18400,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"19589:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":18401,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"19603:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18396,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19534:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18397,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"19534:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18395,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"19502:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19502:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfStakingToken","nodeType":"MemberAccess","referencedDeclaration":20030,"src":"19502:86:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_contract$_IERC20_$21017_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (contract IERC20,bytes32) view external returns (uint256)"}},"id":18402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19502:113:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":18403,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19619:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19502:132:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"19501:134:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19464:171:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18451,"nodeType":"IfStatement","src":"19460:654:58","trueBody":{"id":18450,"nodeType":"Block","src":"19637:477:58","statements":[{"expression":{"argumentTypes":null,"id":18411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18407,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18349,"src":"19651:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":18409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"19651:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":18410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19674:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19651:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18412,"nodeType":"ExpressionStatement","src":"19651:24:58"},{"expression":{"argumentTypes":null,"id":18421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18413,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19689:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18415,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"19689:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18419,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19745:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19716:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"19716:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"19716:28:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19716:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19689:72:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18422,"nodeType":"ExpressionStatement","src":"19689:72:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18429,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"19882:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":18430,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18319,"src":"19896:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18431,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19910:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":18432,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"19927:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18425,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"19828:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"19828:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18424,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"19796:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19796:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"stakingTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":20005,"src":"19796:85:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_bytes32_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,bytes32) external returns (bool)"}},"id":18433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19796:143:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":18423,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"19775:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":18434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"19775:165:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18435,"nodeType":"ExpressionStatement","src":"19775:165:58"},{"expression":{"argumentTypes":null,"id":18438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18436,"name":"redeemedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18322,"src":"19954:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18437,"name":"potentialAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18324,"src":"19971:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19954:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18439,"nodeType":"ExpressionStatement","src":"19954:32:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18441,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18317,"src":"20021:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18442,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"20034:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":18445,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18443,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18327,"src":"20048:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"20048:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20034:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18446,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18319,"src":"20074:12:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":18447,"name":"redeemedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18322,"src":"20088:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18440,"name":"RedeemDaoBounty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17278,"src":"20005:15:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256)"}},"id":18448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20005:98:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18449,"nodeType":"EmitStatement","src":"20000:103:58"}]}}]},"documentation":"@dev redeemDaoBounty a reward for a successful stake.\nThe function use a beneficiary address as a parameter (and not msg.sender) to enable\nusers to redeem on behalf of someone else.\n@param _proposalId the ID of the proposal\n@param _beneficiary - the beneficiary address\n@return redeemedAmount - redeem token amount\n@return potentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )","id":18453,"implemented":true,"kind":"function","modifiers":[],"name":"redeemDaoBounty","nodeType":"FunctionDefinition","parameters":{"id":18320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18317,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18453,"src":"18749:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18316,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18749:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":18319,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":18453,"src":"18770:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18318,"name":"address","nodeType":"ElementaryTypeName","src":"18770:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"18748:43:58"},"returnParameters":{"id":18325,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18322,"name":"redeemedAmount","nodeType":"VariableDeclaration","scope":18453,"src":"18815:22:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18321,"name":"uint256","nodeType":"ElementaryTypeName","src":"18815:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":18324,"name":"potentialAmount","nodeType":"VariableDeclaration","scope":18453,"src":"18839:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18323,"name":"uint256","nodeType":"ElementaryTypeName","src":"18839:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"18814:49:58"},"scope":19681,"src":"18724:1396:58","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":18491,"nodeType":"Block","src":"20391:269:58","statements":[{"assignments":[18461],"declarations":[{"constant":false,"id":18461,"name":"maxRewardSeconds","nodeType":"VariableDeclaration","scope":18491,"src":"20401:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18460,"name":"uint","nodeType":"ElementaryTypeName","src":"20401:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18463,"initialValue":{"argumentTypes":null,"hexValue":"31353030","id":18462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20425:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1500_by_1","typeString":"int_const 1500"},"value":"1500"},"nodeType":"VariableDeclarationStatement","src":"20401:28:58"},{"assignments":[18465],"declarations":[{"constant":false,"id":18465,"name":"rewardSeconds","nodeType":"VariableDeclaration","scope":18491,"src":"20439:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18464,"name":"uint","nodeType":"ElementaryTypeName","src":"20439:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18475,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18470,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"20498:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18472,"indexExpression":{"argumentTypes":null,"id":18471,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"20508:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20498:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":18473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"secondsFromTimeOutTillExecuteBoosted","nodeType":"MemberAccess","referencedDeclaration":17219,"src":"20498:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18467,"name":"maxRewardSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18461,"src":"20476:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20468:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":18468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20468:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":20175,"src":"20468:29:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20468:90:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20439:119:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18486,"name":"maxRewardSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18461,"src":"20633:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"3130","id":18487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20650:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"src":"20633:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18478,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"20593:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18480,"indexExpression":{"argumentTypes":null,"id":18479,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18455,"src":"20603:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20593:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":18481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"20593:29:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18483,"indexExpression":{"argumentTypes":null,"id":18482,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"20623:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20593:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18476,"name":"rewardSeconds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18465,"src":"20575:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"20575:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20575:53:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"20575:57:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20575:78:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18459,"id":18490,"nodeType":"Return","src":"20568:85:58"}]},"documentation":"@dev calcExecuteCallBounty calculate the execute boosted call bounty\n@param _proposalId the ID of the proposal\n@return uint256 executeCallBounty","id":18492,"implemented":true,"kind":"function","modifiers":[],"name":"calcExecuteCallBounty","nodeType":"FunctionDefinition","parameters":{"id":18456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18455,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18492,"src":"20341:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18454,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20341:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"20340:21:58"},"returnParameters":{"id":18459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18458,"name":"","nodeType":"VariableDeclaration","scope":18492,"src":"20382:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18457,"name":"uint256","nodeType":"ElementaryTypeName","src":"20382:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"20381:9:58"},"scope":19681,"src":"20310:350:58","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":18517,"nodeType":"Block","src":"20914:162:58","statements":[{"assignments":[18500],"declarations":[{"constant":false,"id":18500,"name":"proposal","nodeType":"VariableDeclaration","scope":18517,"src":"20924:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18499,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"20924:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18504,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18501,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"20951:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18503,"indexExpression":{"argumentTypes":null,"id":18502,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"20961:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20951:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20924:49:58"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18506,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18494,"src":"20998:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18505,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"20991:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"20991:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18509,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18500,"src":"21023:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":18510,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"21023:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18511,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18500,"src":"21044:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":18512,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"21044:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18508,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"21013:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":18513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21013:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20991:77:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20990:79:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18498,"id":18516,"nodeType":"Return","src":"20983:86:58"}]},"documentation":"@dev shouldBoost check if a proposal should be shifted to boosted phase.\n@param _proposalId the ID of the proposal\n@return bool true or false.","id":18518,"implemented":true,"kind":"function","modifiers":[],"name":"shouldBoost","nodeType":"FunctionDefinition","parameters":{"id":18495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18494,"name":"_proposalId","nodeType":"VariableDeclaration","scope":18518,"src":"20867:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20867:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"20866:21:58"},"returnParameters":{"id":18498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18497,"name":"","nodeType":"VariableDeclaration","scope":18518,"src":"20908:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18496,"name":"bool","nodeType":"ElementaryTypeName","src":"20908:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"20907:6:58"},"scope":19681,"src":"20846:230:58","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":18556,"nodeType":"Block","src":"21596:290:58","statements":[{"assignments":[18528],"declarations":[{"constant":false,"id":18528,"name":"power","nodeType":"VariableDeclaration","scope":18556,"src":"21606:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18527,"name":"uint256","nodeType":"ElementaryTypeName","src":"21606:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18532,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18529,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"21622:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18531,"indexExpression":{"argumentTypes":null,"id":18530,"name":"_organizationId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18522,"src":"21645:15:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21622:39:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21606:55:58"},{"assignments":[18534],"declarations":[{"constant":false,"id":18534,"name":"params","nodeType":"VariableDeclaration","scope":18556,"src":"21671:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":18533,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"21671:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":18538,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18535,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"21699:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":18537,"indexExpression":{"argumentTypes":null,"id":18536,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18520,"src":"21710:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21699:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21671:51:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18539,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"21737:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18540,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18534,"src":"21745:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters storage pointer"}},"id":18541,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"limitExponentValue","nodeType":"MemberAccess","referencedDeclaration":17166,"src":"21745:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21737:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18549,"nodeType":"IfStatement","src":"21733:97:58","trueBody":{"id":18548,"nodeType":"Block","src":"21772:58:58","statements":[{"expression":{"argumentTypes":null,"id":18546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18543,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"21786:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18544,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18534,"src":"21794:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters storage pointer"}},"id":18545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"limitExponentValue","nodeType":"MemberAccess","referencedDeclaration":17166,"src":"21794:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21786:33:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18547,"nodeType":"ExpressionStatement","src":"21786:33:58"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18553,"name":"power","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18528,"src":"21873:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18550,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18534,"src":"21847:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters storage pointer"}},"id":18551,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"thresholdConst","nodeType":"MemberAccess","referencedDeclaration":17164,"src":"21847:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pow","nodeType":"MemberAccess","referencedDeclaration":15159,"src":"21847:25:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"21847:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":18526,"id":18555,"nodeType":"Return","src":"21840:39:58"}]},"documentation":"@dev threshold return the organization's score threshold which required by\na proposal to shift to boosted state.\nThis threshold is dynamically set and it depend on the number of boosted proposal.\n@param _organizationId the organization identifier\n@param _paramsHash the organization parameters hash\n@return uint256 organization's score threshold as real number.","id":18557,"implemented":true,"kind":"function","modifiers":[],"name":"threshold","nodeType":"FunctionDefinition","parameters":{"id":18523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18520,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":18557,"src":"21521:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21521:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":18522,"name":"_organizationId","nodeType":"VariableDeclaration","scope":18557,"src":"21542:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"21542:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"21520:46:58"},"returnParameters":{"id":18526,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18525,"name":"","nodeType":"VariableDeclaration","scope":18557,"src":"21587:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18524,"name":"uint256","nodeType":"ElementaryTypeName","src":"21587:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"21586:9:58"},"scope":19681,"src":"21502:384:58","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":18613,"nodeType":"Block","src":"22171:571:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18574,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22391:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18576,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18575,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22399:1:58","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":"22391:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18577,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22419:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18579,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22427:1:58","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":"22419:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18580,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22447:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18582,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22455:1:58","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":"22447:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18583,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22475:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18585,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":18584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22483:1:58","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":"22475:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18586,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22503:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18588,"indexExpression":{"argumentTypes":null,"hexValue":"34","id":18587,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22511:1:58","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":"22503:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18589,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22531:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18591,"indexExpression":{"argumentTypes":null,"hexValue":"35","id":18590,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22539:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_5_by_1","typeString":"int_const 5"},"value":"5"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22531:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18592,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22559:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18594,"indexExpression":{"argumentTypes":null,"hexValue":"36","id":18593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22567:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_6_by_1","typeString":"int_const 6"},"value":"6"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22559:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18595,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22587:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18597,"indexExpression":{"argumentTypes":null,"hexValue":"37","id":18596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22595:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22587:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18598,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22615:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18600,"indexExpression":{"argumentTypes":null,"hexValue":"38","id":18599,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22623:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_8_by_1","typeString":"int_const 8"},"value":"8"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22615:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18601,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22643:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18603,"indexExpression":{"argumentTypes":null,"hexValue":"39","id":18602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22651:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_9_by_1","typeString":"int_const 9"},"value":"9"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22643:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18604,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18561,"src":"22671:7:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11] memory"}},"id":18606,"indexExpression":{"argumentTypes":null,"hexValue":"3130","id":18605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22679:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22671:11:58","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"},{"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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":18572,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"22357:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18573,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22357:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22357:326:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18571,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"22334:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22334:363:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":18609,"name":"_voteOnBehalf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18563,"src":"22711:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":18569,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"22304:3:58","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":18570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"22304:16:58","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":18610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22304:430:58","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":18568,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"22281:9:58","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":18611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"22281:454:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":18567,"id":18612,"nodeType":"Return","src":"22274:461:58"}]},"documentation":"@dev hashParameters returns a hash of the given parameters","id":18614,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":18564,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18561,"name":"_params","nodeType":"VariableDeclaration","scope":18614,"src":"22004:23:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_memory_ptr","typeString":"uint256[11]"},"typeName":{"baseType":{"id":18558,"name":"uint","nodeType":"ElementaryTypeName","src":"22004:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18560,"length":{"argumentTypes":null,"hexValue":"3131","id":18559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22009:2:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"nodeType":"ArrayTypeName","src":"22004:8:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$11_storage_ptr","typeString":"uint256[11]"}},"value":null,"visibility":"internal"},{"constant":false,"id":18563,"name":"_voteOnBehalf","nodeType":"VariableDeclaration","scope":18614,"src":"22082:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":18562,"name":"address","nodeType":"ElementaryTypeName","src":"22082:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"21994:115:58"},"returnParameters":{"id":18567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18566,"name":"","nodeType":"VariableDeclaration","scope":18614,"src":"22154:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18565,"name":"bytes32","nodeType":"ElementaryTypeName","src":"22154:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"22153:9:58"},"scope":19681,"src":"21968:774:58","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":19117,"nodeType":"Block","src":"23158:6329:58","statements":[{"assignments":[18625],"declarations":[{"constant":false,"id":18625,"name":"proposal","nodeType":"VariableDeclaration","scope":19117,"src":"23168:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18624,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"23168:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18629,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18626,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"23196:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":18628,"indexExpression":{"argumentTypes":null,"id":18627,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"23206:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23196:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23168:50:58"},{"assignments":[18631],"declarations":[{"constant":false,"id":18631,"name":"params","nodeType":"VariableDeclaration","scope":19117,"src":"23228:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":18630,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"23228:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":18636,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18632,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"23255:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":18635,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18633,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23266:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"23266:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23255:31:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23228:58:58"},{"assignments":[18638],"declarations":[{"constant":false,"id":18638,"name":"tmpProposal","nodeType":"VariableDeclaration","scope":19117,"src":"23296:27:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":18637,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"23296:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":18640,"initialValue":{"argumentTypes":null,"id":18639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23326:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"23296:38:58"},{"assignments":[18642],"declarations":[{"constant":false,"id":18642,"name":"totalReputation","nodeType":"VariableDeclaration","scope":19117,"src":"23344:23:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18641,"name":"uint256","nodeType":"ElementaryTypeName","src":"23344:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18650,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18648,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"23455:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23410:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"23410:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":18643,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"23378:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":18646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23378:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":18647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalReputationSupply","nodeType":"MemberAccess","referencedDeclaration":20012,"src":"23378:76:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":18649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"23378:89:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23344:123:58"},{"assignments":[18652],"declarations":[{"constant":false,"id":18652,"name":"executionBar","nodeType":"VariableDeclaration","scope":19117,"src":"23527:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18651,"name":"uint256","nodeType":"ElementaryTypeName","src":"23527:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18660,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18659,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18653,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18642,"src":"23551:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":18654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23567:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"23551:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18656,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"23550:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18657,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"23574:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18658,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"queuedVoteRequiredPercentage","nodeType":"MemberAccess","referencedDeclaration":17156,"src":"23574:35:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23550:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23527:82:58"},{"assignments":[18662],"declarations":[{"constant":false,"id":18662,"name":"executionState","nodeType":"VariableDeclaration","scope":19117,"src":"23619:29:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"typeName":{"contractScope":null,"id":18661,"name":"ExecutionState","nodeType":"UserDefinedTypeName","referencedDeclaration":17154,"src":"23619:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"value":null,"visibility":"internal"}],"id":18665,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18663,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"23651:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18664,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"None","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23651:19:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"VariableDeclarationStatement","src":"23619:51:58"},{"assignments":[18667],"declarations":[{"constant":false,"id":18667,"name":"averageDownstakesOfBoosted","nodeType":"VariableDeclaration","scope":19117,"src":"23680:34:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18666,"name":"uint256","nodeType":"ElementaryTypeName","src":"23680:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18668,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"23680:34:58"},{"assignments":[18670],"declarations":[{"constant":false,"id":18670,"name":"confidenceThreshold","nodeType":"VariableDeclaration","scope":19117,"src":"23724:27:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18669,"name":"uint256","nodeType":"ElementaryTypeName","src":"23724:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18671,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"23724:27:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18678,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18672,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23766:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18673,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"23766:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18676,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18674,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23781:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18675,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"23781:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23766:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18677,"name":"executionBar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18652,"src":"23805:12:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23766:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18942,"nodeType":"Block","src":"24314:3135:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18717,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24332:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18718,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24332:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18719,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24350:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24350:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24332:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18791,"nodeType":"IfStatement","src":"24328:944:58","trueBody":{"id":18790,"nodeType":"Block","src":"24372:900:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18722,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"24457:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18723,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24463:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"24463:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18726,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":18725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24478:1:58","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":"24463:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24457:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18728,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24456:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18729,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"24485:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18730,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"queuedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17158,"src":"24485:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24456:57:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18788,"nodeType":"Block","src":"24720:538:58","statements":[{"expression":{"argumentTypes":null,"id":18758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18751,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"24742:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18753,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24774:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"24774:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18755,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24795:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18756,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"24795:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18752,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"24764:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":18757,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24764:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24742:77:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18759,"nodeType":"ExpressionStatement","src":"24742:77:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18764,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18761,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"24852:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18760,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"24845:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"24845:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18763,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"24867:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24845:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18787,"nodeType":"IfStatement","src":"24841:399:58","trueBody":{"id":18786,"nodeType":"Block","src":"24888:352:58","statements":[{"expression":{"argumentTypes":null,"id":18770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18765,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24981:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18767,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24981:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18768,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24998:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18769,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24998:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24981:41:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18771,"nodeType":"ExpressionStatement","src":"24981:41:58"},{"expression":{"argumentTypes":null,"id":18778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18772,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25118:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"25118:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18776,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25133:1:58","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":"25118:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18777,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"25138:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25118:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18779,"nodeType":"ExpressionStatement","src":"25118:23:58"},{"expression":{"argumentTypes":null,"id":18784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18780,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25167:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"25167:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18783,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"25198:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25167:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18785,"nodeType":"ExpressionStatement","src":"25167:50:58"}]}}]},"id":18789,"nodeType":"IfStatement","src":"24452:806:58","trueBody":{"id":18750,"nodeType":"Block","src":"24515:199:58","statements":[{"expression":{"argumentTypes":null,"id":18737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18732,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24537:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18734,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24537:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18735,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24554:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24554:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24537:45:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18738,"nodeType":"ExpressionStatement","src":"24537:45:58"},{"expression":{"argumentTypes":null,"id":18743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18739,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24604:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18741,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"24604:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18742,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"24627:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24604:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18744,"nodeType":"ExpressionStatement","src":"24604:25:58"},{"expression":{"argumentTypes":null,"id":18748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18745,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"24651:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18746,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"24668:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QueueTimeOut","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24668:27:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"24651:44:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18749,"nodeType":"ExpressionStatement","src":"24651:44:58"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18792,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25290:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"25290:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18794,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"25308:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18795,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"25308:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"25290:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18941,"nodeType":"IfStatement","src":"25286:2153:58","trueBody":{"id":18940,"nodeType":"Block","src":"25334:2105:58","statements":[{"expression":{"argumentTypes":null,"id":18804,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18797,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"25352:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18799,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25384:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18800,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"25384:19:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18801,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25405:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18802,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"25405:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18798,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18557,"src":"25374:9:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32,bytes32) view returns (uint256)"}},"id":18803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25374:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25352:77:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18805,"nodeType":"ExpressionStatement","src":"25352:77:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18806,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"25512:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18807,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25518:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18808,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"25518:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18810,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":18809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25533:1:58","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":"25518:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25512:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18812,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25511:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18813,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18631,"src":"25540:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":18814,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17162,"src":"25540:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25511:61:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18938,"nodeType":"Block","src":"26878:547:58","statements":[{"assignments":[18900],"declarations":[{"constant":false,"id":18900,"name":"proposalScore","nodeType":"VariableDeclaration","scope":18938,"src":"26939:21:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":18899,"name":"uint256","nodeType":"ElementaryTypeName","src":"26939:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":18904,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18902,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"26970:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18901,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"26963:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26963:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26939:43:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18905,"name":"proposalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18900,"src":"27008:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18909,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"27058:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18906,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27025:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18907,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"27025:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"min","nodeType":"MemberAccess","referencedDeclaration":20175,"src":"27025:32:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":18910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27025:53:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27008:70:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18920,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"27176:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18922,"name":"proposalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18900,"src":"27207:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27176:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18936,"nodeType":"IfStatement","src":"27172:235:58","trueBody":{"id":18935,"nodeType":"Block","src":"27222:185:58","statements":[{"expression":{"argumentTypes":null,"id":18928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18924,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27248:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18926,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"confidenceThreshold","nodeType":"MemberAccess","referencedDeclaration":17217,"src":"27248:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18927,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"27279:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27248:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18929,"nodeType":"ExpressionStatement","src":"27248:50:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18931,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"27351:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":18932,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"27364:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18930,"name":"ConfidenceLevelChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17314,"src":"27329:21:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$","typeString":"function (bytes32,uint256)"}},"id":18933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"27329:55:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":18934,"nodeType":"EmitStatement","src":"27324:60:58"}]}},"id":18937,"nodeType":"IfStatement","src":"27004:403:58","trueBody":{"id":18919,"nodeType":"Block","src":"27080:86:58","statements":[{"expression":{"argumentTypes":null,"id":18917,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18912,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27106:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27106:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18915,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27123:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18916,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27123:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27106:37:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18918,"nodeType":"ExpressionStatement","src":"27106:37:58"}]}}]},"id":18939,"nodeType":"IfStatement","src":"25507:1918:58","trueBody":{"id":18898,"nodeType":"Block","src":"25574:1298:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18817,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"25607:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":18816,"name":"_score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19640,"src":"25600:6:58","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view returns (uint256)"}},"id":18818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"25600:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":18819,"name":"confidenceThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18670,"src":"25622:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25600:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18896,"nodeType":"Block","src":"26768:86:58","statements":[{"expression":{"argumentTypes":null,"id":18894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18889,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26794:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18891,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"26794:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18892,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"26811:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18893,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"26811:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"26794:37:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18895,"nodeType":"ExpressionStatement","src":"26794:37:58"}]},"id":18897,"nodeType":"IfStatement","src":"25596:1258:58","trueBody":{"id":18888,"nodeType":"Block","src":"25643:1119:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18821,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"25673:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18824,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18822,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25696:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18823,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"25696:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25673:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":18825,"name":"MAX_BOOSTED_PROPOSALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17353,"src":"25723:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25673:71:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18887,"nodeType":"IfStatement","src":"25669:1071:58","trueBody":{"id":18886,"nodeType":"Block","src":"25746:994:58","statements":[{"expression":{"argumentTypes":null,"id":18832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18827,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25841:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18829,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"25841:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18830,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"25858:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"25858:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"25841:38:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18833,"nodeType":"ExpressionStatement","src":"25841:38:58"},{"expression":{"argumentTypes":null,"id":18840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18834,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"25980:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18837,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"25980:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18838,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25995:1:58","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":"25980:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":18839,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"26000:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25980:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18841,"nodeType":"ExpressionStatement","src":"25980:23:58"},{"expression":{"argumentTypes":null,"id":18846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"26033:49:58","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18842,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"26033:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18845,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18843,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26056:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26056:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26033:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18847,"nodeType":"ExpressionStatement","src":"26033:49:58"},{"expression":{"argumentTypes":null,"id":18853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18848,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"26216:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18849,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"26245:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18852,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18850,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26273:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18851,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26273:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26245:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26216:81:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18854,"nodeType":"ExpressionStatement","src":"26216:81:58"},{"expression":{"argumentTypes":null,"id":18884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18855,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"26393:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18858,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18856,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26421:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26421:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"26393:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18861,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"26495:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18860,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26488:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26488:34:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":18872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18864,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26566:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18865,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"26566:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":18867,"indexExpression":{"argumentTypes":null,"id":18866,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"26582:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26566:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18863,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26559:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26559:27:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":18870,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"26594:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18869,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26587:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18871,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26587:34:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26559:62:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":18873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26558:64:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18875,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"26663:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":18878,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18876,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"26686:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18877,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"26686:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26663:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":18874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26656:6:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int256"},"id":18879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26656:55:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26558:153:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"id":18881,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26557:155:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"26488:224:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":18859,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26480:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":18883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"26480:233:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26393:320:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":18885,"nodeType":"ExpressionStatement","src":"26393:320:58"}]}}]}}]}}]}}]},"id":18943,"nodeType":"IfStatement","src":"23762:3687:58","trueBody":{"id":18716,"nodeType":"Block","src":"23819:489:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18679,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"23898:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"23898:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18681,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"23916:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23916:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"23898:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18690,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24028:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18691,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24028:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18692,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24046:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18693,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24046:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24028:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":18706,"nodeType":"Block","src":"24163:82:58","statements":[{"expression":{"argumentTypes":null,"id":18704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18701,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"24181:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18702,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"24198:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24198:32:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"24181:49:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18705,"nodeType":"ExpressionStatement","src":"24181:49:58"}]},"id":18707,"nodeType":"IfStatement","src":"24024:221:58","trueBody":{"id":18700,"nodeType":"Block","src":"24072:85:58","statements":[{"expression":{"argumentTypes":null,"id":18698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18695,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"24090:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18696,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"24107:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18697,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoostedBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24107:35:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"24090:52:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18699,"nodeType":"ExpressionStatement","src":"24090:52:58"}]}},"id":18708,"nodeType":"IfStatement","src":"23894:351:58","trueBody":{"id":18689,"nodeType":"Block","src":"23938:80:58","statements":[{"expression":{"argumentTypes":null,"id":18687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18684,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"23956:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18685,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"23973:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18686,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QueueBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"23973:30:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"23956:47:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18688,"nodeType":"ExpressionStatement","src":"23956:47:58"}]}},{"expression":{"argumentTypes":null,"id":18714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18709,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"24258:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18711,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"24258:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18712,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"24275:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18713,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"24275:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"24258:39:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18715,"nodeType":"ExpressionStatement","src":"24258:39:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18944,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27464:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18945,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27464:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18946,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27482:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18947,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27482:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27464:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18949,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27463:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":18954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18950,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27521:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18951,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27521:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18952,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27539:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27539:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27521:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18955,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27520:51:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27463:108:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18982,"nodeType":"IfStatement","src":"27459:405:58","trueBody":{"id":18981,"nodeType":"Block","src":"27573:291:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":18962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18957,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"27650:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18958,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27656:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18959,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"27656:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":18961,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":18960,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27671:1:58","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":"27656:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27650:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":18963,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27649:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18964,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27678:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"27678:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27649:67:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":18980,"nodeType":"IfStatement","src":"27645:209:58","trueBody":{"id":18979,"nodeType":"Block","src":"27718:136:58","statements":[{"expression":{"argumentTypes":null,"id":18972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18967,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"27736:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":18969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"27736:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18970,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"27753:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":18971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27753:22:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"27736:39:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":18973,"nodeType":"ExpressionStatement","src":"27736:39:58"},{"expression":{"argumentTypes":null,"id":18977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18974,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"27793:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18975,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"27810:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18976,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedTimeOut","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27810:29:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"27793:46:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"id":18978,"nodeType":"ExpressionStatement","src":"27793:46:58"}]}}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":18986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18983,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"27878:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18984,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"27896:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18985,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"None","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27896:19:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"27878:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19097,"nodeType":"IfStatement","src":"27874:1431:58","trueBody":{"id":19096,"nodeType":"Block","src":"27917:1388:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":18997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":18990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18987,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"27936:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18988,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"27954:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18989,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedTimeOut","nodeType":"MemberAccess","referencedDeclaration":null,"src":"27954:29:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"27936:47:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18991,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"27935:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":18995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":18992,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"28005:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18993,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"28023:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":18994,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"BoostedBarCrossed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"28023:32:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"28005:50:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":18996,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28004:52:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"27935:121:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19060,"nodeType":"IfStatement","src":"27931:938:58","trueBody":{"id":19059,"nodeType":"Block","src":"28058:811:58","statements":[{"expression":{"argumentTypes":null,"id":19009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":18998,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"28076:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19001,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":18999,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"28099:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28099:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28076:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":19007,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28200:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19002,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"28145:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19005,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19003,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"28168:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28168:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28145:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19006,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"28145:54:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28145:57:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28076:126:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19010,"nodeType":"ExpressionStatement","src":"28076:126:58"},{"assignments":[19012],"declarations":[{"constant":false,"id":19012,"name":"boostedProposals","nodeType":"VariableDeclaration","scope":19059,"src":"28317:24:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19011,"name":"uint256","nodeType":"ElementaryTypeName","src":"28317:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19017,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19013,"name":"orgBoostedProposalsCnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17326,"src":"28344:22:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19016,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19014,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"28367:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28367:26:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28344:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28317:77:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19018,"name":"boostedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"28416:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28436:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28416:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":19057,"nodeType":"Block","src":"28542:313:58","statements":[{"expression":{"argumentTypes":null,"id":19034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19029,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"28564:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19030,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"28593:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19033,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19031,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28621:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19032,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28621:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28593:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28564:81:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19035,"nodeType":"ExpressionStatement","src":"28564:81:58"},{"expression":{"argumentTypes":null,"id":19055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19036,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"28667:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19039,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19037,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28695:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19038,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28695:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28667:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19047,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28798:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"28798:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19050,"indexExpression":{"argumentTypes":null,"id":19049,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"28814:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28798:19:58","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":19044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19042,"name":"boostedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"28774:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":19043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28791:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"28774:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19040,"name":"averageDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18667,"src":"28743:26:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"28743:30:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28743:50:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"28743:54:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28743:75:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19052,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"28742:77:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":19053,"name":"boostedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19012,"src":"28820:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28742:94:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28667:169:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19056,"nodeType":"ExpressionStatement","src":"28667:169:58"}]},"id":19058,"nodeType":"IfStatement","src":"28412:443:58","trueBody":{"id":19028,"nodeType":"Block","src":"28439:97:58","statements":[{"expression":{"argumentTypes":null,"id":19026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19021,"name":"averagesDownstakesOfBoosted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17334,"src":"28461:27:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_uint256_$","typeString":"mapping(bytes32 => uint256)"}},"id":19024,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19022,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28489:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28489:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28461:52:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":19025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28516:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28461:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19027,"nodeType":"ExpressionStatement","src":"28461:56:58"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19062,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"28916:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19063,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"28941:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19066,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19064,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28955:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"28955:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28941:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19067,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"28993:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19068,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"28993:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19069,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18642,"src":"29027:15:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19061,"name":"ExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"28887:15:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":19070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"28887:169:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19071,"nodeType":"EmitStatement","src":"28882:174:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19073,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"29093:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":19074,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"29106:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}],"id":19072,"name":"GPExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17300,"src":"29075:17:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ExecutionState_$17154_$returns$__$","typeString":"function (bytes32,enum GenesisProtocolLogic.ExecutionState)"}},"id":19075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29075:46:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19076,"nodeType":"EmitStatement","src":"29070:51:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19082,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"29196:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19084,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29213:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19085,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"29213:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19083,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"29209:3:58","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":19086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29209:25:58","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19078,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29160:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"29160:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19077,"name":"ProposalExecuteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"29135:24:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ProposalExecuteInterface_$19828_$","typeString":"type(contract ProposalExecuteInterface)"}},"id":19080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29135:44:58","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":19081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeProposal","nodeType":"MemberAccess","referencedDeclaration":19827,"src":"29135:60:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_int256_$returns$_t_bool_$","typeString":"function (bytes32,int256) external returns (bool)"}},"id":19087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29135:100:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19088,"nodeType":"ExpressionStatement","src":"29135:100:58"},{"expression":{"argumentTypes":null,"id":19094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19089,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29249:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19091,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"daoBounty","nodeType":"MemberAccess","referencedDeclaration":17213,"src":"29249:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19092,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29270:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19093,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"29270:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29249:45:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19095,"nodeType":"ExpressionStatement","src":"29249:45:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19098,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18638,"src":"29318:11:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_memory_ptr","typeString":"struct GenesisProtocolLogic.Proposal memory"}},"id":19099,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"29318:17:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19100,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29339:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"29339:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"29318:35:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19110,"nodeType":"IfStatement","src":"29314:111:58","trueBody":{"id":19109,"nodeType":"Block","src":"29355:70:58","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19104,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"29386:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19105,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18625,"src":"29399:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19106,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"29399:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}],"id":19103,"name":"StateChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17294,"src":"29374:11:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ProposalState_$17147_$returns$__$","typeString":"function (bytes32,enum GenesisProtocolLogic.ProposalState)"}},"id":19107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29374:40:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19108,"nodeType":"EmitStatement","src":"29369:45:58"}]}},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"},"id":19114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19111,"name":"executionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18662,"src":"29442:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19112,"name":"ExecutionState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17154,"src":"29460:14:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ExecutionState_$17154_$","typeString":"type(enum GenesisProtocolLogic.ExecutionState)"}},"id":19113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"None","nodeType":"MemberAccess","referencedDeclaration":null,"src":"29460:19:58","typeDescriptions":{"typeIdentifier":"t_enum$_ExecutionState_$17154","typeString":"enum GenesisProtocolLogic.ExecutionState"}},"src":"29442:37:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19115,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"29441:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":18623,"id":19116,"nodeType":"Return","src":"29434:46:58"}]},"documentation":"@dev execute check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal\n@return bool true - the proposal has been executed\n false - otherwise.","id":19118,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":18619,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":18616,"src":"23131:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":18620,"modifierName":{"argumentTypes":null,"id":18618,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17389,"src":"23123:7:58","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"23123:20:58"}],"name":"_execute","nodeType":"FunctionDefinition","parameters":{"id":18617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18616,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19118,"src":"23093:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":18615,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23093:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"23092:21:58"},"returnParameters":{"id":18623,"nodeType":"ParameterList","parameters":[{"constant":false,"id":18622,"name":"","nodeType":"VariableDeclaration","scope":19118,"src":"23152:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":18621,"name":"bool","nodeType":"ElementaryTypeName","src":"23152:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"23151:6:58"},"scope":19681,"src":"23075:6412:58","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":19309,"nodeType":"Block","src":"29868:1705:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19132,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"29920:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":19133,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"29929:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29920:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19135,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"29947:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29955:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29947:9:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29920:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"77726f6e6720766f74652076616c7565","id":19139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"29958:18:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d82d70f2dacf08ad4e0d64af0a4b6b4468b32b18c064b4e753cdfba3c6e5a6a8","typeString":"literal_string \"wrong vote value\""},"value":"wrong vote value"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d82d70f2dacf08ad4e0d64af0a4b6b4468b32b18c064b4e753cdfba3c6e5a6a8","typeString":"literal_string \"wrong vote value\""}],"id":19131,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"29912:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29912:65:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19141,"nodeType":"ExpressionStatement","src":"29912:65:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19143,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19124,"src":"29995:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30005:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"29995:11:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7374616b696e6720616d6f756e742073686f756c64206265203e30","id":19146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30008:29:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_91d4369e2212c0af5bece6ece1fcbdc47c9df9cbc0c01f068a62871681a0f61a","typeString":"literal_string \"staking amount should be >0\""},"value":"staking amount should be >0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91d4369e2212c0af5bece6ece1fcbdc47c9df9cbc0c01f068a62871681a0f61a","typeString":"literal_string \"staking amount should be >0\""}],"id":19142,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"29987:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"29987:51:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19148,"nodeType":"ExpressionStatement","src":"29987:51:58"},{"condition":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19150,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"30062:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19149,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"30053:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30053:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19155,"nodeType":"IfStatement","src":"30049:63:58","trueBody":{"id":19154,"nodeType":"Block","src":"30076:36:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":19152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30097:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19130,"id":19153,"nodeType":"Return","src":"30090:11:58"}]}},{"assignments":[19157],"declarations":[{"constant":false,"id":19157,"name":"proposal","nodeType":"VariableDeclaration","scope":19309,"src":"30121:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":19156,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"30121:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":19161,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19158,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"30149:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19160,"indexExpression":{"argumentTypes":null,"id":19159,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"30159:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30149:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30121:50:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19162,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30187:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19163,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"30187:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19164,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"30205:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"30205:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"30187:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30186:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19168,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30247:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"30247:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19170,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"30265:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19171,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"30265:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"30247:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19173,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30246:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30186:100:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19178,"nodeType":"IfStatement","src":"30182:143:58","trueBody":{"id":19177,"nodeType":"Block","src":"30288:37:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30309:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19130,"id":19176,"nodeType":"Return","src":"30302:12:58"}]}},{"assignments":[19180],"declarations":[{"constant":false,"id":19180,"name":"staker","nodeType":"VariableDeclaration","scope":19309,"src":"30403:21:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"},"typeName":{"contractScope":null,"id":19179,"name":"Staker","nodeType":"UserDefinedTypeName","referencedDeclaration":17195,"src":"30403:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker"}},"value":null,"visibility":"internal"}],"id":19185,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19181,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30427:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakers","nodeType":"MemberAccess","referencedDeclaration":17245,"src":"30427:16:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Staker_$17195_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Staker storage ref)"}},"id":19184,"indexExpression":{"argumentTypes":null,"id":19183,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19126,"src":"30444:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30427:25:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage","typeString":"struct GenesisProtocolLogic.Staker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"30403:49:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19186,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30467:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30467:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30483:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"30467:17:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30466:19:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19191,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30490:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"30490:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"id":19193,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"30505:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30490:20:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19195,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"30489:22:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"30466:45:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19200,"nodeType":"IfStatement","src":"30462:88:58","trueBody":{"id":19199,"nodeType":"Block","src":"30513:37:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30534:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19130,"id":19198,"nodeType":"Return","src":"30527:12:58"}]}},{"assignments":[19202],"declarations":[{"constant":false,"id":19202,"name":"amount","nodeType":"VariableDeclaration","scope":19309,"src":"30560:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19201,"name":"uint256","nodeType":"ElementaryTypeName","src":"30560:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19204,"initialValue":{"argumentTypes":null,"id":19203,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19124,"src":"30577:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30560:24:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19208,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19126,"src":"30628:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19210,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21171,"src":"30645:4:58","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocolLogic_$19681","typeString":"contract GenesisProtocolLogic"}],"id":19209,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30637:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":19211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30637:13:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19212,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"30652:6:58","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":19206,"name":"stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17347,"src":"30602:12:58","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":19207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":21000,"src":"30602:25:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":19213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30602:57:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6661696c207472616e736665722066726f6d207374616b6572","id":19214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"30661:27:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_ad0934b2b17c5a144168f7c3b41e6e295357361c44445f6c875b7de168a8b283","typeString":"literal_string \"fail transfer from staker\""},"value":"fail transfer from staker"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ad0934b2b17c5a144168f7c3b41e6e295357361c44445f6c875b7de168a8b283","typeString":"literal_string \"fail transfer from staker\""}],"id":19205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"30594:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30594:95:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19216,"nodeType":"ExpressionStatement","src":"30594:95:58"},{"expression":{"argumentTypes":null,"id":19225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19217,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30699:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19219,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"30699:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19223,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"30747:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19220,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"30722:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"30722:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"30722:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30722:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30699:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19226,"nodeType":"ExpressionStatement","src":"30699:55:58"},{"expression":{"argumentTypes":null,"id":19235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19227,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30795:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19229,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30795:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19233,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"30829:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19230,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30811:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30811:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"30811:17:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30811:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30795:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19236,"nodeType":"ExpressionStatement","src":"30795:41:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19238,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"30979:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":17192,"src":"30979:13:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":19240,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30996:35:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"src":"30979:52:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"7374616b696e6720616d6f756e7420697320746f6f2068696768","id":19242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31033:28:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c08e8b6b6438b031b9203bfd11dc79b9738fb9df8efea56d562c5a29a6e1f3ee","typeString":"literal_string \"staking amount is too high\""},"value":"staking amount is too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c08e8b6b6438b031b9203bfd11dc79b9738fb9df8efea56d562c5a29a6e1f3ee","typeString":"literal_string \"staking amount is too high\""}],"id":19237,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"30971:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"30971:91:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19244,"nodeType":"ExpressionStatement","src":"30971:91:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31080:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalStakes","nodeType":"MemberAccess","referencedDeclaration":17215,"src":"31080:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19252,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31153:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"daoBountyRemain","nodeType":"MemberAccess","referencedDeclaration":17211,"src":"31153:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":19249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31112:35:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}],"id":19248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"31104:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":19250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31104:44:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"31104:48:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31104:74:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31080:98:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f74616c207374616b657320697320746f6f2068696768","id":19256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"31196:26:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3ddc8a760353c6cb4764665e8783f172d91728d9fd6e3fa17211593e37c1469","typeString":"literal_string \"total stakes is too high\""},"value":"total stakes is too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3ddc8a760353c6cb4764665e8783f172d91728d9fd6e3fa17211593e37c1469","typeString":"literal_string \"total stakes is too high\""}],"id":19245,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"31072:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31072:151:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19258,"nodeType":"ExpressionStatement","src":"31072:151:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19259,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31238:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":19260,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"31247:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31238:12:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19273,"nodeType":"IfStatement","src":"31234:98:58","trueBody":{"id":19272,"nodeType":"Block","src":"31252:80:58","statements":[{"expression":{"argumentTypes":null,"id":19270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19262,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"31266:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"31266:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19268,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"31314:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19265,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"31289:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19266,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount4Bounty","nodeType":"MemberAccess","referencedDeclaration":17194,"src":"31289:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"31289:24:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31289:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31266:55:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19271,"nodeType":"ExpressionStatement","src":"31266:55:58"}]}},{"expression":{"argumentTypes":null,"id":19278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19274,"name":"staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19180,"src":"31341:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Staker_$17195_storage_ptr","typeString":"struct GenesisProtocolLogic.Staker storage pointer"}},"id":19276,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":17190,"src":"31341:11:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19277,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31355:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19279,"nodeType":"ExpressionStatement","src":"31341:19:58"},{"expression":{"argumentTypes":null,"id":19292,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19280,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31371:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"31371:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19284,"indexExpression":{"argumentTypes":null,"id":19282,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31387:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"31371:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19287,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31407:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"31407:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19290,"indexExpression":{"argumentTypes":null,"id":19289,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31423:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31407:22:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19285,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19202,"src":"31396:6:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"31396:10:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31396:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31371:59:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19293,"nodeType":"ExpressionStatement","src":"31371:59:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19295,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"31451:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19296,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"31464:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19299,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19297,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19157,"src":"31478:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19298,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"31478:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31464:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19300,"name":"_staker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19126,"src":"31504:7:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19301,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19122,"src":"31513:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19302,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19124,"src":"31520:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19294,"name":"Stake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17258,"src":"31445:5:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256,uint256)"}},"id":19303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31445:83:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19304,"nodeType":"EmitStatement","src":"31440:88:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19306,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19120,"src":"31554:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19305,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"31545:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"31545:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19130,"id":19308,"nodeType":"Return","src":"31538:28:58"}]},"documentation":"@dev staking function\n@param _proposalId id of the proposal\n@param _vote NO(2) or YES(1).\n@param _amount the betting amount\n@return bool true - the proposal has been executed\n false - otherwise.","id":19310,"implemented":true,"kind":"function","modifiers":[],"name":"_stake","nodeType":"FunctionDefinition","parameters":{"id":19127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19120,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19310,"src":"29775:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19119,"name":"bytes32","nodeType":"ElementaryTypeName","src":"29775:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19122,"name":"_vote","nodeType":"VariableDeclaration","scope":19310,"src":"29796:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19121,"name":"uint256","nodeType":"ElementaryTypeName","src":"29796:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19124,"name":"_amount","nodeType":"VariableDeclaration","scope":19310,"src":"29811:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19123,"name":"uint256","nodeType":"ElementaryTypeName","src":"29811:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19126,"name":"_staker","nodeType":"VariableDeclaration","scope":19310,"src":"29828:15:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19125,"name":"address","nodeType":"ElementaryTypeName","src":"29828:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"29774:70:58"},"returnParameters":{"id":19130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19129,"name":"","nodeType":"VariableDeclaration","scope":19310,"src":"29862:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19128,"name":"bool","nodeType":"ElementaryTypeName","src":"29862:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"29861:6:58"},"scope":19681,"src":"29759:1814:58","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":19610,"nodeType":"Block","src":"32423:2843:58","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19324,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"32441:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":19325,"name":"NUM_OF_CHOICES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17337,"src":"32450:14:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32441:23:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19327,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"32468:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32476:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32468:9:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"32441:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"30203c205f766f7465203c3d2032","id":19331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32479:16:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6c167076fd1b36c01702a4c4b1e40be23cd6e9623d657cdb939ad9f0e6a548db","typeString":"literal_string \"0 < _vote <= 2\""},"value":"0 < _vote <= 2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6c167076fd1b36c01702a4c4b1e40be23cd6e9623d657cdb939ad9f0e6a548db","typeString":"literal_string \"0 < _vote <= 2\""}],"id":19323,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"32433:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32433:63:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19333,"nodeType":"ExpressionStatement","src":"32433:63:58"},{"condition":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19335,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32519:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19334,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"32510:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32510:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19340,"nodeType":"IfStatement","src":"32506:63:58","trueBody":{"id":19339,"nodeType":"Block","src":"32533:36:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":19337,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"32554:4:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19322,"id":19338,"nodeType":"Return","src":"32547:11:58"}]}},{"assignments":[19342],"declarations":[{"constant":false,"id":19342,"name":"params","nodeType":"VariableDeclaration","scope":19610,"src":"32579:24:58","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters"},"typeName":{"contractScope":null,"id":19341,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":17181,"src":"32579:10:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage_ptr","typeString":"struct GenesisProtocolLogic.Parameters"}},"value":null,"visibility":"internal"}],"id":19349,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19343,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17318,"src":"32606:10:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$17181_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Parameters storage ref)"}},"id":19348,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19344,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"32617:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19346,"indexExpression":{"argumentTypes":null,"id":19345,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32627:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32617:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":19347,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":17209,"src":"32617:33:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32606:45:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_storage","typeString":"struct GenesisProtocolLogic.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32579:72:58"},{"assignments":[19351],"declarations":[{"constant":false,"id":19351,"name":"proposal","nodeType":"VariableDeclaration","scope":19610,"src":"32661:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":19350,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"32661:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":19355,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19352,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"32689:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19354,"indexExpression":{"argumentTypes":null,"id":19353,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32699:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32689:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"32661:50:58"},{"assignments":[19357],"declarations":[{"constant":false,"id":19357,"name":"reputation","nodeType":"VariableDeclaration","scope":19610,"src":"32768:18:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19356,"name":"uint256","nodeType":"ElementaryTypeName","src":"32768:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19366,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19363,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"32854:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19364,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"32862:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19359,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"32821:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"32821:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19358,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"32789:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":19361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32789:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":19362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"reputationOf","nodeType":"MemberAccess","referencedDeclaration":20021,"src":"32789:64:58","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) view external returns (uint256)"}},"id":19365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32789:85:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32768:106:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19368,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"32892:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32905:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32892:14:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f766f746572206d75737420686176652072657075746174696f6e","id":19371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32908:29:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""},"value":"_voter must have reputation"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_904ad937a2b27da2b88c6196de3f24fd299b75859ba99719946b0bb0ef68cc41","typeString":"literal_string \"_voter must have reputation\""}],"id":19367,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"32884:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32884:54:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19373,"nodeType":"ExpressionStatement","src":"32884:54:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19375,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"32956:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":19376,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19318,"src":"32970:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"32956:18:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72657075746174696f6e203e3d205f726570","id":19378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"32976:20:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_854a896e4ac217d1bc6f5707e5523361ed247e9f3d2bb1c843a9e088d13a9e72","typeString":"literal_string \"reputation >= _rep\""},"value":"reputation >= _rep"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_854a896e4ac217d1bc6f5707e5523361ed247e9f3d2bb1c843a9e088d13a9e72","typeString":"literal_string \"reputation >= _rep\""}],"id":19374,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"32948:7:58","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":19379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"32948:49:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19380,"nodeType":"ExpressionStatement","src":"32948:49:58"},{"assignments":[19382],"declarations":[{"constant":false,"id":19382,"name":"rep","nodeType":"VariableDeclaration","scope":19610,"src":"33007:11:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19381,"name":"uint256","nodeType":"ElementaryTypeName","src":"33007:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19384,"initialValue":{"argumentTypes":null,"id":19383,"name":"_rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19318,"src":"33021:4:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33007:18:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19385,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"33039:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33046:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33039:8:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19393,"nodeType":"IfStatement","src":"33035:55:58","trueBody":{"id":19392,"nodeType":"Block","src":"33049:41:58","statements":[{"expression":{"argumentTypes":null,"id":19390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19388,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"33063:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19389,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19357,"src":"33069:10:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33063:16:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19391,"nodeType":"ExpressionStatement","src":"33063:16:58"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19394,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33161:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19395,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"33161:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":19397,"indexExpression":{"argumentTypes":null,"id":19396,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"33177:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33161:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"id":19398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"reputation","nodeType":"MemberAccess","referencedDeclaration":17185,"src":"33161:34:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":19399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33199:1:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"33161:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19404,"nodeType":"IfStatement","src":"33157:82:58","trueBody":{"id":19403,"nodeType":"Block","src":"33202:37:58","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"33223:5:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19322,"id":19402,"nodeType":"Return","src":"33216:12:58"}]}},{"expression":{"argumentTypes":null,"id":19417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19405,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33278:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33278:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19409,"indexExpression":{"argumentTypes":null,"id":19407,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"33293:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"33278:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19412,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33310:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33310:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19415,"indexExpression":{"argumentTypes":null,"id":19414,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"33325:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33310:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19410,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"33302:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"33302:7:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"33302:30:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33278:54:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19418,"nodeType":"ExpressionStatement","src":"33278:54:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19419,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33490:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33490:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19422,"indexExpression":{"argumentTypes":null,"id":19421,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"33505:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33490:21:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33514:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33514:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19427,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19425,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33529:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"33529:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33514:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33490:60:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19429,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33489:62:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19430,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33569:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33569:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19433,"indexExpression":{"argumentTypes":null,"id":19432,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"33584:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33569:18:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19434,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33591:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":17229,"src":"33591:14:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19438,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19436,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33606:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"33606:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"33591:36:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33569:58:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19440,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33568:60:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19441,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33644:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19442,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"33644:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":19443,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"33668:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33644:27:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33568:103:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19446,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33567:105:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33489:183:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19519,"nodeType":"IfStatement","src":"33485:1004:58","trueBody":{"id":19518,"nodeType":"Block","src":"33674:815:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33692:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"33692:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19450,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"33710:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19451,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"33710:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"33692:39:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19453,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"33811:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19454,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33817:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19455,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"33817:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":19457,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":19456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33832:1:58","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":"33817:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33811:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19459,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33810:25:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19460,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"33840:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"boostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17160,"src":"33840:29:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19462,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"33872:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":17168,"src":"33872:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33840:56:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19465,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33839:58:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33810:87:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33809:89:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33692:206:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19469,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"33917:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19470,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"33917:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19471,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"33935:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"33935:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"33917:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"33692:274:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19511,"nodeType":"IfStatement","src":"33688:749:58","trueBody":{"id":19510,"nodeType":"Block","src":"33968:469:58","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19479,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19475,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34026:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34026:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19477,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34044:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34044:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34026:49:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19501,"nodeType":"IfStatement","src":"34022:298:58","trueBody":{"id":19500,"nodeType":"Block","src":"34077:243:58","statements":[{"expression":{"argumentTypes":null,"id":19485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19480,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34099:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"currentBoostedVotePeriodLimit","nodeType":"MemberAccess","referencedDeclaration":17207,"src":"34099:38:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19483,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"34140:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19484,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"quietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":17168,"src":"34140:24:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34099:65:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19486,"nodeType":"ExpressionStatement","src":"34099:65:58"},{"expression":{"argumentTypes":null,"id":19492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34186:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19489,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34186:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19490,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34203:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34203:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34186:48:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":19493,"nodeType":"ExpressionStatement","src":"34186:48:58"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19495,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"34273:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19496,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34286:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34286:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}],"id":19494,"name":"StateChange","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17294,"src":"34261:11:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_enum$_ProposalState_$17147_$returns$__$","typeString":"function (bytes32,enum GenesisProtocolLogic.ProposalState)"}},"id":19498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34261:40:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19499,"nodeType":"EmitStatement","src":"34256:45:58"}]}},{"expression":{"argumentTypes":null,"id":19508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19502,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34399:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19505,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"times","nodeType":"MemberAccess","referencedDeclaration":17223,"src":"34399:14:58","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage","typeString":"uint256[3] storage ref"}},"id":19506,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":19504,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34414:1:58","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":"34399:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19507,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"34419:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34399:23:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19509,"nodeType":"ExpressionStatement","src":"34399:23:58"}]}},{"expression":{"argumentTypes":null,"id":19516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19512,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34450:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19514,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17203,"src":"34450:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19515,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34473:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34450:28:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19517,"nodeType":"ExpressionStatement","src":"34450:28:58"}]}},{"expression":{"argumentTypes":null,"id":19543,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19520,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34498:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19523,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voters","nodeType":"MemberAccess","referencedDeclaration":17237,"src":"34498:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Voter_$17188_storage_$","typeString":"mapping(address => struct GenesisProtocolLogic.Voter storage ref)"}},"id":19524,"indexExpression":{"argumentTypes":null,"id":19522,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"34514:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"34498:23:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19526,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"34556:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19527,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34579:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19528,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34611:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19529,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34611:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19530,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34629:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19531,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34629:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34611:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19533,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34610:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19534,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34659:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19535,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34659:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19536,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34677:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34677:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34659:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19539,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34658:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"34610:88:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34609:90:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":19525,"name":"Voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17188,"src":"34524:5:58","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Voter_$17188_storage_ptr_$","typeString":"type(struct GenesisProtocolLogic.Voter storage pointer)"}},"id":19542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["reputation","vote","preBoosted"],"nodeType":"FunctionCall","src":"34524:186:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_memory","typeString":"struct GenesisProtocolLogic.Voter memory"}},"src":"34498:212:58","typeDescriptions":{"typeIdentifier":"t_struct$_Voter_$17188_storage","typeString":"struct GenesisProtocolLogic.Voter storage ref"}},"id":19544,"nodeType":"ExpressionStatement","src":"34498:212:58"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19545,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34725:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19546,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34725:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19547,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34743:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34743:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34725:42:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19550,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34724:44:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19551,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34773:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19552,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"34773:14:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19553,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"34791:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19554,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"34791:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"34773:38:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19556,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34772:40:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"34724:88:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19594,"nodeType":"IfStatement","src":"34720:402:58","trueBody":{"id":19593,"nodeType":"Block","src":"34814:308:58","statements":[{"expression":{"argumentTypes":null,"id":19570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19558,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34828:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19561,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"34828:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19562,"indexExpression":{"argumentTypes":null,"id":19560,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34853:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"34828:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19565,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"34870:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"preBoostedVotes","nodeType":"MemberAccess","referencedDeclaration":17233,"src":"34870:24:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19568,"indexExpression":{"argumentTypes":null,"id":19567,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"34895:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34870:31:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":19563,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"34862:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"34862:7:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34862:40:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"34828:74:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19571,"nodeType":"ExpressionStatement","src":"34828:74:58"},{"assignments":[19573],"declarations":[{"constant":false,"id":19573,"name":"reputationDeposit","nodeType":"VariableDeclaration","scope":19593,"src":"34916:25:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19572,"name":"uint256","nodeType":"ElementaryTypeName","src":"34916:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19582,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19577,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"34982:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19574,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19342,"src":"34945:6:58","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$17181_memory_ptr","typeString":"struct GenesisProtocolLogic.Parameters memory"}},"id":19575,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votersReputationLossRatio","nodeType":"MemberAccess","referencedDeclaration":17172,"src":"34945:32:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"34945:36:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":19578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"34945:41:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"34944:43:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":19580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34988:3:58","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"34944:47:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"34916:75:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19588,"name":"reputationDeposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19573,"src":"35072:17:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19589,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"35091:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19590,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"35099:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19584,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"35037:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19585,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":17199,"src":"35037:18:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19583,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"35005:31:58","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":19586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35005:51:58","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":19587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":19992,"src":"35005:66:58","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_bytes32_$returns$_t_bool_$","typeString":"function (uint256,address,bytes32) external returns (bool)"}},"id":19591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35005:106:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19592,"nodeType":"ExpressionStatement","src":"35005:106:58"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19596,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"35149:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19597,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17330,"src":"35162:13:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19600,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19598,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19351,"src":"35176:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19599,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":17197,"src":"35176:23:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35162:38:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19601,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19314,"src":"35202:6:58","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19602,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19316,"src":"35210:5:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19603,"name":"rep","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19382,"src":"35217:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19595,"name":"VoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19735,"src":"35136:12:58","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,address,uint256,uint256)"}},"id":19604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35136:85:58","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19605,"nodeType":"EmitStatement","src":"35131:90:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19607,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19312,"src":"35247:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19606,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19118,"src":"35238:8:58","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35238:21:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19322,"id":19609,"nodeType":"Return","src":"35231:28:58"}]},"documentation":"@dev Vote for a proposal, if the voter already voted, cancel the last vote and set a new one instead\n@param _proposalId id of the proposal\n@param _voter used in case the vote is cast for someone else\n@param _vote a value between 0 to and the proposal's number of choices.\n@param _rep how many reputation the voter would like to stake for this vote.\n if _rep==0 so the voter full reputation will be use.\n@return true in case of proposal execution otherwise false\nthrows if proposal is not open or if it has been executed\nNB: executes the proposal if a decision has been reached","id":19611,"implemented":true,"kind":"function","modifiers":[],"name":"internalVote","nodeType":"FunctionDefinition","parameters":{"id":19319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19312,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19611,"src":"32334:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19311,"name":"bytes32","nodeType":"ElementaryTypeName","src":"32334:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19314,"name":"_voter","nodeType":"VariableDeclaration","scope":19611,"src":"32355:14:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19313,"name":"address","nodeType":"ElementaryTypeName","src":"32355:7:58","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19316,"name":"_vote","nodeType":"VariableDeclaration","scope":19611,"src":"32371:13:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19315,"name":"uint256","nodeType":"ElementaryTypeName","src":"32371:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19318,"name":"_rep","nodeType":"VariableDeclaration","scope":19611,"src":"32386:12:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19317,"name":"uint256","nodeType":"ElementaryTypeName","src":"32386:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"32333:66:58"},"returnParameters":{"id":19322,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19321,"name":"","nodeType":"VariableDeclaration","scope":19611,"src":"32417:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19320,"name":"bool","nodeType":"ElementaryTypeName","src":"32417:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"32416:6:58"},"scope":19681,"src":"32312:2954:58","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":19639,"nodeType":"Block","src":"35569:241:58","statements":[{"assignments":[19619],"declarations":[{"constant":false,"id":19619,"name":"proposal","nodeType":"VariableDeclaration","scope":19639,"src":"35579:25:58","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"},"typeName":{"contractScope":null,"id":19618,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":17246,"src":"35579:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal"}},"value":null,"visibility":"internal"}],"id":19623,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19620,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"35607:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19622,"indexExpression":{"argumentTypes":null,"id":19621,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19613,"src":"35617:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35607:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"35579:50:58"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19632,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19619,"src":"35782:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"35782:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19635,"indexExpression":{"argumentTypes":null,"id":19634,"name":"NO","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17340,"src":"35798:2:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35782:19:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35774:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":19636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35774:28:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19625,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19619,"src":"35743:8:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage_ptr","typeString":"struct GenesisProtocolLogic.Proposal storage pointer"}},"id":19626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"stakes","nodeType":"MemberAccess","referencedDeclaration":17241,"src":"35743:15:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19628,"indexExpression":{"argumentTypes":null,"id":19627,"name":"YES","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17343,"src":"35759:3:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"35743:20:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"35735:7:58","typeDescriptions":{"typeIdentifier":"t_type$_t_uint216_$","typeString":"type(uint216)"},"typeName":"uint216"},"id":19629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35735:29:58","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":19630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":15182,"src":"35735:38:58","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":19637,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"35735:68:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":19617,"id":19638,"nodeType":"Return","src":"35728:75:58"}]},"documentation":"@dev _score return the proposal score (Confidence level)\nFor dual choice proposal S = (S+)/(S-)\n@param _proposalId the ID of the proposal\n@return uint256 proposal score as real number.","id":19640,"implemented":true,"kind":"function","modifiers":[],"name":"_score","nodeType":"FunctionDefinition","parameters":{"id":19614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19613,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19640,"src":"35517:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19612,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35517:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"35516:21:58"},"returnParameters":{"id":19617,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19616,"name":"","nodeType":"VariableDeclaration","scope":19640,"src":"35560:7:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19615,"name":"uint256","nodeType":"ElementaryTypeName","src":"35560:7:58","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"35559:9:58"},"scope":19681,"src":"35501:309:58","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":19679,"nodeType":"Block","src":"36042:297:58","statements":[{"assignments":[19648],"declarations":[{"constant":false,"id":19648,"name":"pState","nodeType":"VariableDeclaration","scope":19679,"src":"36052:20:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":19647,"name":"ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"36052:13:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"id":19653,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19649,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17322,"src":"36075:9:58","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$17246_storage_$","typeString":"mapping(bytes32 => struct GenesisProtocolLogic.Proposal storage ref)"}},"id":19651,"indexExpression":{"argumentTypes":null,"id":19650,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19642,"src":"36085:11:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"36075:22:58","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$17246_storage","typeString":"struct GenesisProtocolLogic.Proposal storage ref"}},"id":19652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17201,"src":"36075:28:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"36052:51:58"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19676,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":19664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19657,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19654,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36122:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19655,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36132:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19656,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36132:24:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36122:34:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19658,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36121:36:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19659,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36177:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19660,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36187:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19661,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36187:21:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36177:31:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19663,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36176:33:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36121:88:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19665,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36229:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19666,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36239:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36239:31:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36229:41:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19669,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36228:43:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36121:150:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":19674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19671,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19648,"src":"36291:6:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19672,"name":"ProposalState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":17147,"src":"36301:13:58","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":19673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"36301:20:58","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"36291:30:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19675,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36290:32:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"36121:201:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":19677,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36120:212:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19646,"id":19678,"nodeType":"Return","src":"36113:219:58"}]},"documentation":"@dev _isVotable check if the proposal is votable\n@param _proposalId the ID of the proposal\n@return bool true or false","id":19680,"implemented":true,"kind":"function","modifiers":[],"name":"_isVotable","nodeType":"FunctionDefinition","parameters":{"id":19643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19642,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19680,"src":"35993:19:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"35993:7:58","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"35992:21:58"},"returnParameters":{"id":19646,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19645,"name":"","nodeType":"VariableDeclaration","scope":19680,"src":"36036:4:58","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19644,"name":"bool","nodeType":"ElementaryTypeName","src":"36036:4:58","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"36035:6:58"},"scope":19681,"src":"35973:366:58","stateMutability":"view","superFunction":null,"visibility":"internal"}],"scope":19682,"src":"532:35809:58"}],"src":"0:36342:58"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.248Z","devdoc":{"methods":{"calcExecuteCallBounty(bytes32)":{"details":"calcExecuteCallBounty calculate the execute boosted call bounty","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 executeCallBounty"},"constructor":{"details":"Constructor"},"executeBoosted(bytes32)":{"details":"executeBoosted try to execute a boosted or QuietEndingPeriod proposal if it is expired it rewards the msg.sender with P % of the proposal's upstakes upon a successful call to this function. P = t/150, where t is the number of seconds passed since the the proposal's timeout. P is capped by 10%.","params":{"_proposalId":"the id of the proposal"},"return":"uint256 expirationCallBounty the bounty amount for the expiration call"},"getAllowedRangeOfChoices()":{"details":"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.","return":"min - minimum number of choices max - maximum number of choices"},"getParametersHash(uint256[11],address)":{"details":"hashParameters returns a hash of the given parameters"},"isAbstainAllow()":{"details":"isAbstainAllow returns if the voting machine allow abstain (0)","return":"bool true or false"},"propose(uint256,bytes32,address,address)":{"details":"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.","params":{"_organization":"address","_paramsHash":"parameters hash","_proposer":"address"}},"redeem(bytes32,address)":{"details":"redeem a reward for a successful stake, vote or proposing. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.","params":{"_beneficiary":"- the beneficiary address","_proposalId":"the ID of the proposal"},"return":"rewards - [0] stakerTokenReward [1] voterReputationReward [2] proposerReputationReward"},"redeemDaoBounty(bytes32,address)":{"details":"redeemDaoBounty a reward for a successful stake. The function use a beneficiary address as a parameter (and not msg.sender) to enable users to redeem on behalf of someone else.","params":{"_beneficiary":"- the beneficiary address","_proposalId":"the ID of the proposal"},"return":"redeemedAmount - redeem token amountpotentialAmount - potential redeem token amount(if there is enough tokens bounty at the organization )"},"setParameters(uint256[11],address)":{"details":"hash the parameters, save them if necessary, and return the hash value","params":{"_params":"a parameters array _params[0] - _queuedVoteRequiredPercentage, _params[1] - _queuedVotePeriodLimit, //the time limit for a proposal to be in an absolute voting mode. _params[2] - _boostedVotePeriodLimit, //the time limit for a proposal to be in an relative voting mode. _params[3] - _preBoostedVotePeriodLimit, //the time limit for a proposal to be in an preparation state (stable) before boosted. _params[4] -_thresholdConst _params[5] -_quietEndingPeriod _params[6] -_proposingRepReward _params[7] -_votersReputationLossRatio _params[8] -_minimumDaoBounty _params[9] -_daoBountyConst _params[10] -_activationTime","_voteOnBehalf":"- authorized to vote on behalf of others."}},"shouldBoost(bytes32)":{"details":"shouldBoost check if a proposal should be shifted to boosted phase.","params":{"_proposalId":"the ID of the proposal"},"return":"bool true or false."},"threshold(bytes32,bytes32)":{"details":"threshold return the organization's score threshold which required by a proposal to shift to boosted state. This threshold is dynamically set and it depend on the number of boosted proposal.","params":{"_organizationId":"the organization identifier","_paramsHash":"the organization parameters hash"},"return":"uint256 organization's score threshold as real number."},"voteStatus(bytes32,uint256)":{"details":"voteStatus returns the reputation voted for a proposal for a specific voting choice.","params":{"_choice":"the index in the","_proposalId":"the ID of the proposal"},"return":"voted reputation for the given choice"}},"title":"GenesisProtocol implementation -an organization's voting machine scheme."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintInterface.json new file mode 100644 index 00000000..3d91d323 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintInterface.json @@ -0,0 +1 @@ +{"contractName":"GlobalConstraintInterface","abi":[{"constant":false,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"bytes32","name":"_params","type":"bytes32"},{"internalType":"bytes32","name":"_method","type":"bytes32"}],"name":"pre","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"bytes32","name":"_params","type":"bytes32"},{"internalType":"bytes32","name":"_method","type":"bytes32"}],"name":"post","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"when","outputs":[{"internalType":"enum GlobalConstraintInterface.CallPhase","name":"","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_method\",\"type\":\"bytes32\"}],\"name\":\"post\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_method\",\"type\":\"bytes32\"}],\"name\":\"pre\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"when\",\"outputs\":[{\"internalType\":\"enum GlobalConstraintInterface.CallPhase\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"when()\":{\"details\":\"when return if this globalConstraints is pre, post or both.\",\"return\":\"CallPhase enum indication Pre, Post or PreAndPost.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":\"GlobalConstraintInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity 0.5.13;\n\n\ncontract GlobalConstraintInterface {\n\n enum CallPhase { Pre, Post, PreAndPost }\n\n function pre( address _scheme, bytes32 _params, bytes32 _method ) public returns(bool);\n function post( address _scheme, bytes32 _params, bytes32 _method ) public returns(bool);\n /**\n * @dev when return if this globalConstraints is pre, post or both.\n * @return CallPhase enum indication Pre, Post or PreAndPost.\n */\n function when() public returns(CallPhase);\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","exportedSymbols":{"GlobalConstraintInterface":[1907]},"id":1908,"nodeType":"SourceUnit","nodes":[{"id":1875,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:4"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":1907,"linearizedBaseContracts":[1907],"name":"GlobalConstraintInterface","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GlobalConstraintInterface.CallPhase","id":1879,"members":[{"id":1876,"name":"Pre","nodeType":"EnumValue","src":"85:3:4"},{"id":1877,"name":"Post","nodeType":"EnumValue","src":"90:4:4"},{"id":1878,"name":"PreAndPost","nodeType":"EnumValue","src":"96:10:4"}],"name":"CallPhase","nodeType":"EnumDefinition","src":"68:40:4"},{"body":null,"documentation":null,"id":1890,"implemented":false,"kind":"function","modifiers":[],"name":"pre","nodeType":"FunctionDefinition","parameters":{"id":1886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1881,"name":"_scheme","nodeType":"VariableDeclaration","scope":1890,"src":"128:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1880,"name":"address","nodeType":"ElementaryTypeName","src":"128:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1883,"name":"_params","nodeType":"VariableDeclaration","scope":1890,"src":"145:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"145:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1885,"name":"_method","nodeType":"VariableDeclaration","scope":1890,"src":"162:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"126:53:4"},"returnParameters":{"id":1889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1888,"name":"","nodeType":"VariableDeclaration","scope":1890,"src":"195:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1887,"name":"bool","nodeType":"ElementaryTypeName","src":"195:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"194:6:4"},"scope":1907,"src":"114:87:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":1901,"implemented":false,"kind":"function","modifiers":[],"name":"post","nodeType":"FunctionDefinition","parameters":{"id":1897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1892,"name":"_scheme","nodeType":"VariableDeclaration","scope":1901,"src":"221:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1891,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1894,"name":"_params","nodeType":"VariableDeclaration","scope":1901,"src":"238:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1896,"name":"_method","nodeType":"VariableDeclaration","scope":1901,"src":"255:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"219:53:4"},"returnParameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1899,"name":"","nodeType":"VariableDeclaration","scope":1901,"src":"288:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1898,"name":"bool","nodeType":"ElementaryTypeName","src":"288:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"287:6:4"},"scope":1907,"src":"206:88:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":null,"documentation":"@dev when return if this globalConstraints is pre, post or both.\n@return CallPhase enum indication Pre, Post or PreAndPost.","id":1906,"implemented":false,"kind":"function","modifiers":[],"name":"when","nodeType":"FunctionDefinition","parameters":{"id":1902,"nodeType":"ParameterList","parameters":[],"src":"467:2:4"},"returnParameters":{"id":1905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1904,"name":"","nodeType":"VariableDeclaration","scope":1906,"src":"485:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":1903,"name":"CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"485:9:4","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"484:11:4"},"scope":1907,"src":"454:42:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":1908,"src":"26:472:4"}],"src":"0:499:4"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","exportedSymbols":{"GlobalConstraintInterface":[1907]},"id":1908,"nodeType":"SourceUnit","nodes":[{"id":1875,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:4"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":1907,"linearizedBaseContracts":[1907],"name":"GlobalConstraintInterface","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GlobalConstraintInterface.CallPhase","id":1879,"members":[{"id":1876,"name":"Pre","nodeType":"EnumValue","src":"85:3:4"},{"id":1877,"name":"Post","nodeType":"EnumValue","src":"90:4:4"},{"id":1878,"name":"PreAndPost","nodeType":"EnumValue","src":"96:10:4"}],"name":"CallPhase","nodeType":"EnumDefinition","src":"68:40:4"},{"body":null,"documentation":null,"id":1890,"implemented":false,"kind":"function","modifiers":[],"name":"pre","nodeType":"FunctionDefinition","parameters":{"id":1886,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1881,"name":"_scheme","nodeType":"VariableDeclaration","scope":1890,"src":"128:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1880,"name":"address","nodeType":"ElementaryTypeName","src":"128:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1883,"name":"_params","nodeType":"VariableDeclaration","scope":1890,"src":"145:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1882,"name":"bytes32","nodeType":"ElementaryTypeName","src":"145:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1885,"name":"_method","nodeType":"VariableDeclaration","scope":1890,"src":"162:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"162:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"126:53:4"},"returnParameters":{"id":1889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1888,"name":"","nodeType":"VariableDeclaration","scope":1890,"src":"195:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1887,"name":"bool","nodeType":"ElementaryTypeName","src":"195:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"194:6:4"},"scope":1907,"src":"114:87:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":1901,"implemented":false,"kind":"function","modifiers":[],"name":"post","nodeType":"FunctionDefinition","parameters":{"id":1897,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1892,"name":"_scheme","nodeType":"VariableDeclaration","scope":1901,"src":"221:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1891,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1894,"name":"_params","nodeType":"VariableDeclaration","scope":1901,"src":"238:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"238:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1896,"name":"_method","nodeType":"VariableDeclaration","scope":1901,"src":"255:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1895,"name":"bytes32","nodeType":"ElementaryTypeName","src":"255:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"219:53:4"},"returnParameters":{"id":1900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1899,"name":"","nodeType":"VariableDeclaration","scope":1901,"src":"288:4:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1898,"name":"bool","nodeType":"ElementaryTypeName","src":"288:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"287:6:4"},"scope":1907,"src":"206:88:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":null,"documentation":"@dev when return if this globalConstraints is pre, post or both.\n@return CallPhase enum indication Pre, Post or PreAndPost.","id":1906,"implemented":false,"kind":"function","modifiers":[],"name":"when","nodeType":"FunctionDefinition","parameters":{"id":1902,"nodeType":"ParameterList","parameters":[],"src":"467:2:4"},"returnParameters":{"id":1905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1904,"name":"","nodeType":"VariableDeclaration","scope":1906,"src":"485:9:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":1903,"name":"CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"485:9:4","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"484:11:4"},"scope":1907,"src":"454:42:4","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":1908,"src":"26:472:4"}],"src":"0:499:4"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.064Z","devdoc":{"methods":{"when()":{"details":"when return if this globalConstraints is pre, post or both.","return":"CallPhase enum indication Pre, Post or PreAndPost."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintMock.json new file mode 100644 index 00000000..75a25e3f --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintMock.json @@ -0,0 +1 @@ +{"contractName":"GlobalConstraintMock","abi":[{"constant":true,"inputs":[],"name":"currentCallPhase","outputs":[{"internalType":"enum GlobalConstraintInterface.CallPhase","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"testParams","outputs":[{"internalType":"bool","name":"pre","type":"bool"},{"internalType":"bool","name":"post","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"method","type":"bytes32"},{"internalType":"bool","name":"pre","type":"bool"},{"internalType":"bool","name":"post","type":"bool"}],"name":"setConstraint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"method","type":"bytes32"}],"name":"pre","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"method","type":"bytes32"}],"name":"post","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"when","outputs":[{"internalType":"enum GlobalConstraintInterface.CallPhase","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"currentCallPhase\",\"outputs\":[{\"internalType\":\"enum GlobalConstraintInterface.CallPhase\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"method\",\"type\":\"bytes32\"}],\"name\":\"post\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"method\",\"type\":\"bytes32\"}],\"name\":\"pre\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"method\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"pre\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"post\",\"type\":\"bool\"}],\"name\":\"setConstraint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"testParams\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"pre\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"post\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"when\",\"outputs\":[{\"internalType\":\"enum GlobalConstraintInterface.CallPhase\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/GlobalConstraintMock.sol\":\"GlobalConstraintMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/test/GlobalConstraintMock.sol\":{\"keccak256\":\"0xe237c78f7e5de9c821b107e7508f580e849230b9f84b2cc7f17259d1c5eb0cbf\",\"urls\":[\"bzz-raw://16bcd03e173a45315b67a2574febbc84644aef87bbd7f5d8b7d7832572d86429\",\"dweb:/ipfs/QmPDreftnNZ27q6oTQcenTfZeUb8TdiTmQmFuv9S11uo92\"]}},\"version\":1}","sourceMap":"88:1142:31:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;88:1142:31;;;;;;;","deployedSourceMap":"88:1142:31:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;88:1142:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;245:59;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;311:546;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;311:546:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;192:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;192:46:31;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;988:121;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;988:121:31;;;;;;;;;;;;;:::i;863:119::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;863:119:31;;;;;;;;;;;;;:::i;1115:113::-;;;:::i;245:59::-;;;;;;:::o;311:546::-;386:4;402:18;;;;;;;;;;:28;;-1:-1:-1;;402:28:31;;;;;;;;-1:-1:-1;;440:30:31;402:28;440:30;;;;;;;;485:13;;;494:4;493:5;485:13;481:349;;;514:16;:65;;533:46;;514:16;-1:-1:-1;;514:65:31;:16;533:46;514:65;;;;;;481:349;;;615:3;610:210;;638:16;:58;;657:39;;638:16;-1:-1:-1;;638:58:31;:16;657:39;638:58;;610:210;722:4;717:103;;765:40;746:59;;-1:-1:-1;;746:59:31;;;;;717:103;-1:-1:-1;846:4:31;311:546;;;;;:::o;192:46::-;;;;;;;;;;;;;;;;;;;;;;;:::o;988:121::-;1056:4;1079:18;;;;;;;;;;:23;;;;;;;988:121;-1:-1:-1;;988:121:31:o;863:119::-;930:4;953:18;;;;;;;;;;:22;;;;863:119;-1:-1:-1;;863:119:31:o;1115:113::-;1205:16;;;;1115:113;:::o","source":"pragma solidity 0.5.13;\n\nimport \"../globalConstraints/GlobalConstraintInterface.sol\";\n\n\ncontract GlobalConstraintMock {\n\n struct TestParam {\n bool pre;\n bool post;\n }\n\n mapping (bytes32=>TestParam) public testParams;\n\n GlobalConstraintInterface.CallPhase public currentCallPhase;\n\n function setConstraint(bytes32 method, bool pre, bool post) public returns(bool) {\n testParams[method].pre = pre;\n testParams[method].post = post;\n\n if (!pre && !post) {\n currentCallPhase = GlobalConstraintInterface.CallPhase.PreAndPost;\n } else {\n if (!pre) {\n currentCallPhase = GlobalConstraintInterface.CallPhase.Pre;\n } else if (!post) {\n currentCallPhase = GlobalConstraintInterface.CallPhase.Post;\n }\n }\n return true;\n }\n\n function pre(address, bytes32, bytes32 method) public view returns(bool) {\n return testParams[method].pre;\n }\n\n function post(address, bytes32, bytes32 method) public view returns(bool) {\n return testParams[method].post;\n }\n\n function when() public view returns(GlobalConstraintInterface.CallPhase) {\n return currentCallPhase;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/GlobalConstraintMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/GlobalConstraintMock.sol","exportedSymbols":{"GlobalConstraintMock":[9086]},"id":9087,"nodeType":"SourceUnit","nodes":[{"id":8969,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:31"},{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","file":"../globalConstraints/GlobalConstraintInterface.sol","id":8970,"nodeType":"ImportDirective","scope":9087,"sourceUnit":1908,"src":"25:60:31","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9086,"linearizedBaseContracts":[9086],"name":"GlobalConstraintMock","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GlobalConstraintMock.TestParam","id":8975,"members":[{"constant":false,"id":8972,"name":"pre","nodeType":"VariableDeclaration","scope":8975,"src":"152:8:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8971,"name":"bool","nodeType":"ElementaryTypeName","src":"152:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":8974,"name":"post","nodeType":"VariableDeclaration","scope":8975,"src":"170:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8973,"name":"bool","nodeType":"ElementaryTypeName","src":"170:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"TestParam","nodeType":"StructDefinition","scope":9086,"src":"125:61:31","visibility":"public"},{"constant":false,"id":8979,"name":"testParams","nodeType":"VariableDeclaration","scope":9086,"src":"192:46:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam)"},"typeName":{"id":8978,"keyType":{"id":8976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"201:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"192:28:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam)"},"valueType":{"contractScope":null,"id":8977,"name":"TestParam","nodeType":"UserDefinedTypeName","referencedDeclaration":8975,"src":"210:9:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage_ptr","typeString":"struct GlobalConstraintMock.TestParam"}}},"value":null,"visibility":"public"},{"constant":false,"id":8981,"name":"currentCallPhase","nodeType":"VariableDeclaration","scope":9086,"src":"245:59:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":8980,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"245:35:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"public"},{"body":{"id":9042,"nodeType":"Block","src":"392:465:31","statements":[{"expression":{"argumentTypes":null,"id":8997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8992,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"402:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":8994,"indexExpression":{"argumentTypes":null,"id":8993,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"413:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"402:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":8995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"pre","nodeType":"MemberAccess","referencedDeclaration":8972,"src":"402:22:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8996,"name":"pre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"427:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"402:28:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8998,"nodeType":"ExpressionStatement","src":"402:28:31"},{"expression":{"argumentTypes":null,"id":9004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8999,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"440:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":9001,"indexExpression":{"argumentTypes":null,"id":9000,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"451:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"440:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":9002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"post","nodeType":"MemberAccess","referencedDeclaration":8974,"src":"440:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9003,"name":"post","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"466:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"440:30:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9005,"nodeType":"ExpressionStatement","src":"440:30:31"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"485:4:31","subExpression":{"argumentTypes":null,"id":9006,"name":"pre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"486:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"id":9009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"493:5:31","subExpression":{"argumentTypes":null,"id":9008,"name":"post","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"494:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"485:13:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9038,"nodeType":"Block","src":"596:234:31","statements":[{"condition":{"argumentTypes":null,"id":9019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"614:4:31","subExpression":{"argumentTypes":null,"id":9018,"name":"pre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"615:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"id":9028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"721:5:31","subExpression":{"argumentTypes":null,"id":9027,"name":"post","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"722:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9036,"nodeType":"IfStatement","src":"717:103:31","trueBody":{"id":9035,"nodeType":"Block","src":"728:92:31","statements":[{"expression":{"argumentTypes":null,"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9029,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"746:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9030,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"765:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"765:35:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":9032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"765:40:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"746:59:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"id":9034,"nodeType":"ExpressionStatement","src":"746:59:31"}]}},"id":9037,"nodeType":"IfStatement","src":"610:210:31","trueBody":{"id":9026,"nodeType":"Block","src":"620:91:31","statements":[{"expression":{"argumentTypes":null,"id":9024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9020,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"638:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9021,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"657:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"657:35:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":9023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"657:39:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"638:58:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"id":9025,"nodeType":"ExpressionStatement","src":"638:58:31"}]}}]},"id":9039,"nodeType":"IfStatement","src":"481:349:31","trueBody":{"id":9017,"nodeType":"Block","src":"500:90:31","statements":[{"expression":{"argumentTypes":null,"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9011,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"514:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9012,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"533:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"533:35:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":9014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"533:46:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"514:65:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"id":9016,"nodeType":"ExpressionStatement","src":"514:65:31"}]}},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"846:4:31","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8991,"id":9041,"nodeType":"Return","src":"839:11:31"}]},"documentation":null,"id":9043,"implemented":true,"kind":"function","modifiers":[],"name":"setConstraint","nodeType":"FunctionDefinition","parameters":{"id":8988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8983,"name":"method","nodeType":"VariableDeclaration","scope":9043,"src":"334:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"334:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8985,"name":"pre","nodeType":"VariableDeclaration","scope":9043,"src":"350:8:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8984,"name":"bool","nodeType":"ElementaryTypeName","src":"350:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":8987,"name":"post","nodeType":"VariableDeclaration","scope":9043,"src":"360:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8986,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"333:37:31"},"returnParameters":{"id":8991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8990,"name":"","nodeType":"VariableDeclaration","scope":9043,"src":"386:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8989,"name":"bool","nodeType":"ElementaryTypeName","src":"386:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"385:6:31"},"scope":9086,"src":"311:546:31","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9059,"nodeType":"Block","src":"936:46:31","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9054,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"953:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":9056,"indexExpression":{"argumentTypes":null,"id":9055,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9049,"src":"964:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"953:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":9057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"pre","nodeType":"MemberAccess","referencedDeclaration":8972,"src":"953:22:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9053,"id":9058,"nodeType":"Return","src":"946:29:31"}]},"documentation":null,"id":9060,"implemented":true,"kind":"function","modifiers":[],"name":"pre","nodeType":"FunctionDefinition","parameters":{"id":9050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9045,"name":"","nodeType":"VariableDeclaration","scope":9060,"src":"876:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9044,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9047,"name":"","nodeType":"VariableDeclaration","scope":9060,"src":"885:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"885:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9049,"name":"method","nodeType":"VariableDeclaration","scope":9060,"src":"894:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"894:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"875:34:31"},"returnParameters":{"id":9053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9052,"name":"","nodeType":"VariableDeclaration","scope":9060,"src":"930:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9051,"name":"bool","nodeType":"ElementaryTypeName","src":"930:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"929:6:31"},"scope":9086,"src":"863:119:31","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":9076,"nodeType":"Block","src":"1062:47:31","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9071,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"1079:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":9073,"indexExpression":{"argumentTypes":null,"id":9072,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9066,"src":"1090:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1079:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":9074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"post","nodeType":"MemberAccess","referencedDeclaration":8974,"src":"1079:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9070,"id":9075,"nodeType":"Return","src":"1072:30:31"}]},"documentation":null,"id":9077,"implemented":true,"kind":"function","modifiers":[],"name":"post","nodeType":"FunctionDefinition","parameters":{"id":9067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9062,"name":"","nodeType":"VariableDeclaration","scope":9077,"src":"1002:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9061,"name":"address","nodeType":"ElementaryTypeName","src":"1002:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9064,"name":"","nodeType":"VariableDeclaration","scope":9077,"src":"1011:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1011:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9066,"name":"method","nodeType":"VariableDeclaration","scope":9077,"src":"1020:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1020:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1001:34:31"},"returnParameters":{"id":9070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9069,"name":"","nodeType":"VariableDeclaration","scope":9077,"src":"1056:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9068,"name":"bool","nodeType":"ElementaryTypeName","src":"1056:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1055:6:31"},"scope":9086,"src":"988:121:31","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":9084,"nodeType":"Block","src":"1188:40:31","statements":[{"expression":{"argumentTypes":null,"id":9082,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"1205:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"functionReturnParameters":9081,"id":9083,"nodeType":"Return","src":"1198:23:31"}]},"documentation":null,"id":9085,"implemented":true,"kind":"function","modifiers":[],"name":"when","nodeType":"FunctionDefinition","parameters":{"id":9078,"nodeType":"ParameterList","parameters":[],"src":"1128:2:31"},"returnParameters":{"id":9081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9080,"name":"","nodeType":"VariableDeclaration","scope":9085,"src":"1151:35:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":9079,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"1151:35:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"1150:37:31"},"scope":9086,"src":"1115:113:31","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9087,"src":"88:1142:31"}],"src":"0:1231:31"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/GlobalConstraintMock.sol","exportedSymbols":{"GlobalConstraintMock":[9086]},"id":9087,"nodeType":"SourceUnit","nodes":[{"id":8969,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:31"},{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","file":"../globalConstraints/GlobalConstraintInterface.sol","id":8970,"nodeType":"ImportDirective","scope":9087,"sourceUnit":1908,"src":"25:60:31","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9086,"linearizedBaseContracts":[9086],"name":"GlobalConstraintMock","nodeType":"ContractDefinition","nodes":[{"canonicalName":"GlobalConstraintMock.TestParam","id":8975,"members":[{"constant":false,"id":8972,"name":"pre","nodeType":"VariableDeclaration","scope":8975,"src":"152:8:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8971,"name":"bool","nodeType":"ElementaryTypeName","src":"152:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":8974,"name":"post","nodeType":"VariableDeclaration","scope":8975,"src":"170:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8973,"name":"bool","nodeType":"ElementaryTypeName","src":"170:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"TestParam","nodeType":"StructDefinition","scope":9086,"src":"125:61:31","visibility":"public"},{"constant":false,"id":8979,"name":"testParams","nodeType":"VariableDeclaration","scope":9086,"src":"192:46:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam)"},"typeName":{"id":8978,"keyType":{"id":8976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"201:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"192:28:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam)"},"valueType":{"contractScope":null,"id":8977,"name":"TestParam","nodeType":"UserDefinedTypeName","referencedDeclaration":8975,"src":"210:9:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage_ptr","typeString":"struct GlobalConstraintMock.TestParam"}}},"value":null,"visibility":"public"},{"constant":false,"id":8981,"name":"currentCallPhase","nodeType":"VariableDeclaration","scope":9086,"src":"245:59:31","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":8980,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"245:35:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"public"},{"body":{"id":9042,"nodeType":"Block","src":"392:465:31","statements":[{"expression":{"argumentTypes":null,"id":8997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8992,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"402:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":8994,"indexExpression":{"argumentTypes":null,"id":8993,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"413:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"402:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":8995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"pre","nodeType":"MemberAccess","referencedDeclaration":8972,"src":"402:22:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8996,"name":"pre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"427:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"402:28:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8998,"nodeType":"ExpressionStatement","src":"402:28:31"},{"expression":{"argumentTypes":null,"id":9004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8999,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"440:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":9001,"indexExpression":{"argumentTypes":null,"id":9000,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8983,"src":"451:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"440:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":9002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"post","nodeType":"MemberAccess","referencedDeclaration":8974,"src":"440:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9003,"name":"post","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"466:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"440:30:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9005,"nodeType":"ExpressionStatement","src":"440:30:31"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"485:4:31","subExpression":{"argumentTypes":null,"id":9006,"name":"pre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"486:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"id":9009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"493:5:31","subExpression":{"argumentTypes":null,"id":9008,"name":"post","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"494:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"485:13:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9038,"nodeType":"Block","src":"596:234:31","statements":[{"condition":{"argumentTypes":null,"id":9019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"614:4:31","subExpression":{"argumentTypes":null,"id":9018,"name":"pre","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8985,"src":"615:3:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"argumentTypes":null,"id":9028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"721:5:31","subExpression":{"argumentTypes":null,"id":9027,"name":"post","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8987,"src":"722:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9036,"nodeType":"IfStatement","src":"717:103:31","trueBody":{"id":9035,"nodeType":"Block","src":"728:92:31","statements":[{"expression":{"argumentTypes":null,"id":9033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9029,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"746:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9030,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"765:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":9031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"765:35:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":9032,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"765:40:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"746:59:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"id":9034,"nodeType":"ExpressionStatement","src":"746:59:31"}]}},"id":9037,"nodeType":"IfStatement","src":"610:210:31","trueBody":{"id":9026,"nodeType":"Block","src":"620:91:31","statements":[{"expression":{"argumentTypes":null,"id":9024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9020,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"638:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9021,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"657:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":9022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"657:35:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":9023,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Pre","nodeType":"MemberAccess","referencedDeclaration":null,"src":"657:39:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"638:58:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"id":9025,"nodeType":"ExpressionStatement","src":"638:58:31"}]}}]},"id":9039,"nodeType":"IfStatement","src":"481:349:31","trueBody":{"id":9017,"nodeType":"Block","src":"500:90:31","statements":[{"expression":{"argumentTypes":null,"id":9015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9011,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"514:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9012,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"533:25:31","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":9013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"533:35:31","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":9014,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreAndPost","nodeType":"MemberAccess","referencedDeclaration":null,"src":"533:46:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"src":"514:65:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"id":9016,"nodeType":"ExpressionStatement","src":"514:65:31"}]}},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"846:4:31","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8991,"id":9041,"nodeType":"Return","src":"839:11:31"}]},"documentation":null,"id":9043,"implemented":true,"kind":"function","modifiers":[],"name":"setConstraint","nodeType":"FunctionDefinition","parameters":{"id":8988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8983,"name":"method","nodeType":"VariableDeclaration","scope":9043,"src":"334:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8982,"name":"bytes32","nodeType":"ElementaryTypeName","src":"334:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8985,"name":"pre","nodeType":"VariableDeclaration","scope":9043,"src":"350:8:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8984,"name":"bool","nodeType":"ElementaryTypeName","src":"350:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":8987,"name":"post","nodeType":"VariableDeclaration","scope":9043,"src":"360:9:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8986,"name":"bool","nodeType":"ElementaryTypeName","src":"360:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"333:37:31"},"returnParameters":{"id":8991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8990,"name":"","nodeType":"VariableDeclaration","scope":9043,"src":"386:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8989,"name":"bool","nodeType":"ElementaryTypeName","src":"386:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"385:6:31"},"scope":9086,"src":"311:546:31","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9059,"nodeType":"Block","src":"936:46:31","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9054,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"953:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":9056,"indexExpression":{"argumentTypes":null,"id":9055,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9049,"src":"964:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"953:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":9057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"pre","nodeType":"MemberAccess","referencedDeclaration":8972,"src":"953:22:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9053,"id":9058,"nodeType":"Return","src":"946:29:31"}]},"documentation":null,"id":9060,"implemented":true,"kind":"function","modifiers":[],"name":"pre","nodeType":"FunctionDefinition","parameters":{"id":9050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9045,"name":"","nodeType":"VariableDeclaration","scope":9060,"src":"876:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9044,"name":"address","nodeType":"ElementaryTypeName","src":"876:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9047,"name":"","nodeType":"VariableDeclaration","scope":9060,"src":"885:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9046,"name":"bytes32","nodeType":"ElementaryTypeName","src":"885:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9049,"name":"method","nodeType":"VariableDeclaration","scope":9060,"src":"894:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9048,"name":"bytes32","nodeType":"ElementaryTypeName","src":"894:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"875:34:31"},"returnParameters":{"id":9053,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9052,"name":"","nodeType":"VariableDeclaration","scope":9060,"src":"930:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9051,"name":"bool","nodeType":"ElementaryTypeName","src":"930:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"929:6:31"},"scope":9086,"src":"863:119:31","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":9076,"nodeType":"Block","src":"1062:47:31","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9071,"name":"testParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8979,"src":"1079:10:31","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_TestParam_$8975_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintMock.TestParam storage ref)"}},"id":9073,"indexExpression":{"argumentTypes":null,"id":9072,"name":"method","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9066,"src":"1090:6:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1079:18:31","typeDescriptions":{"typeIdentifier":"t_struct$_TestParam_$8975_storage","typeString":"struct GlobalConstraintMock.TestParam storage ref"}},"id":9074,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"post","nodeType":"MemberAccess","referencedDeclaration":8974,"src":"1079:23:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":9070,"id":9075,"nodeType":"Return","src":"1072:30:31"}]},"documentation":null,"id":9077,"implemented":true,"kind":"function","modifiers":[],"name":"post","nodeType":"FunctionDefinition","parameters":{"id":9067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9062,"name":"","nodeType":"VariableDeclaration","scope":9077,"src":"1002:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9061,"name":"address","nodeType":"ElementaryTypeName","src":"1002:7:31","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9064,"name":"","nodeType":"VariableDeclaration","scope":9077,"src":"1011:7:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9063,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1011:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9066,"name":"method","nodeType":"VariableDeclaration","scope":9077,"src":"1020:14:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9065,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1020:7:31","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1001:34:31"},"returnParameters":{"id":9070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9069,"name":"","nodeType":"VariableDeclaration","scope":9077,"src":"1056:4:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9068,"name":"bool","nodeType":"ElementaryTypeName","src":"1056:4:31","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1055:6:31"},"scope":9086,"src":"988:121:31","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":9084,"nodeType":"Block","src":"1188:40:31","statements":[{"expression":{"argumentTypes":null,"id":9082,"name":"currentCallPhase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8981,"src":"1205:16:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"functionReturnParameters":9081,"id":9083,"nodeType":"Return","src":"1198:23:31"}]},"documentation":null,"id":9085,"implemented":true,"kind":"function","modifiers":[],"name":"when","nodeType":"FunctionDefinition","parameters":{"id":9078,"nodeType":"ParameterList","parameters":[],"src":"1128:2:31"},"returnParameters":{"id":9081,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9080,"name":"","nodeType":"VariableDeclaration","scope":9085,"src":"1151:35:31","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":9079,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"1151:35:31","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"1150:37:31"},"scope":9086,"src":"1115:113:31","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9087,"src":"88:1142:31"}],"src":"0:1231:31"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.145Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintRegistrar.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintRegistrar.json new file mode 100644 index 00000000..66eee99e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/GlobalConstraintRegistrar.json @@ -0,0 +1 @@ +{"contractName":"GlobalConstraintRegistrar","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"address","name":"_gc","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_params","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"_voteToRemoveParams","type":"bytes32"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"NewGlobalConstraintsProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"ProposalDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"address","name":"_gc","type":"address"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"RemoveGlobalConstraintsProposal","type":"event"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationsProposals","outputs":[{"internalType":"address","name":"gc","type":"address"},{"internalType":"bool","name":"addGC","type":"bool"},{"internalType":"bytes32","name":"params","type":"bytes32"},{"internalType":"bytes32","name":"voteToRemoveParams","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"bytes32","name":"voteRegisterParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"intVote","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"voteToRemoveParams","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_param","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_voteRegisterParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_gc","type":"address"},{"internalType":"bytes32","name":"_params","type":"bytes32"},{"internalType":"bytes32","name":"_voteToRemoveParams","type":"bytes32"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeGlobalConstraint","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_gc","type":"address"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeToRemoveGC","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_voteRegisterParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gc\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_voteToRemoveParams\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"NewGlobalConstraintsProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"ProposalDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_gc\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"RemoveGlobalConstraintsProposal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteRegisterParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationsProposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"gc\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"addGC\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"params\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"voteToRemoveParams\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"voteRegisterParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"intVote\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gc\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_voteToRemoveParams\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeGlobalConstraint\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_gc\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeToRemoveGC\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteRegisterParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"voteToRemoveParams\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The scheme is used to register or remove new global constraints\",\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_param\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"bool which represents a successful of the function.\"},\"getParametersHash(bytes32,address)\":{\"details\":\"Hash the parameters and return the hash value\",\"params\":{\"_intVote\":\"- voting machine contract.\",\"_voteRegisterParams\":\"- voting parameters\"},\"return\":\"bytes32 -the parameters hash\"},\"proposeGlobalConstraint(address,address,bytes32,bytes32,string)\":{\"details\":\"propose to add a new global constraint:\",\"params\":{\"_avatar\":\"the avatar of the organization that the constraint is proposed for\",\"_descriptionHash\":\"proposal's description hash\",\"_gc\":\"the address of the global constraint that is being proposed\",\"_params\":\"the parameters for the global constraint\",\"_voteToRemoveParams\":\"the conditions (on the voting machine) for removing this global constraint\"},\"return\":\"bytes32 -the proposal id\"},\"proposeToRemoveGC(address,address,string)\":{\"details\":\"propose to remove a global constraint:\",\"params\":{\"_avatar\":\"the avatar of the organization that the constraint is proposed for\",\"_descriptionHash\":\"proposal's description hash\",\"_gc\":\"the address of the global constraint that is being proposed\"},\"return\":\"bytes32 -the proposal id\"},\"setParameters(bytes32,address)\":{\"details\":\"Hash the parameters, save them if necessary, and return the hash value\",\"params\":{\"_intVote\":\"- voting machine contract.\",\"_voteRegisterParams\":\"- voting parameters for register global constraint\"},\"return\":\"bytes32 -the parameters hash\"}},\"title\":\"A scheme to manage global constraint for organizations\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/GlobalConstraintRegistrar.sol\":\"GlobalConstraintRegistrar\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/GlobalConstraintRegistrar.sol\":{\"keccak256\":\"0x0ad7518089453ed10a7947b0b07a3ce64652c16c06fb903d9abb95e11984c00a\",\"urls\":[\"bzz-raw://1bf5b6c5ff1999aa72e18c07951b33dc4c3c41c5cc32b6cc32ea91cef0ab2765\",\"dweb:/ipfs/Qme2Y4FjKQCAPTWHby5HHiVm3FNee5nQDz3XrZ9X6o9drm\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"419:7517:40:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:7517:40;;;;;;;","deployedSourceMap":"419:7517:40:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;419:7517:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2065:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2065:46:40;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2065:46:40;;;;;;;;;;;;;;;;1645:76;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1645:76:40;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1645:76:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7712:222;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7712:222:40;;;;;;-1:-1:-1;;;;;7712:222:40;;:::i;:::-;;;;;;;;;;;;;;;;598:73:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;3930:366:40:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3930:366:40;;;;;;-1:-1:-1;;;;;3930:366:40;;:::i;1973:346:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;4920:1140:40:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;4920:1140:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4920:1140:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4920:1140:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4920:1140:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4920:1140:40;;-1:-1:-1;4920:1140:40;;-1:-1:-1;;;;;4920:1140:40:i;6393:1094::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;6393:1094:40;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6393:1094:40;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6393:1094:40;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6393:1094:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6393:1094:40;;-1:-1:-1;6393:1094:40;;-1:-1:-1;;;;;6393:1094:40:i;2666:345:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2443:1206:40:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2443:1206:40;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1785:69;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1785:69:40;;;;;;;;;;:::i;2325:335:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;678:401::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;1085:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;2065:46:40:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2065:46:40;;:::o;1645:76::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1645:76:40;;;-1:-1:-1;;;1645:76:40;;;;;;;:::o;7712:222::-;7878:47;;;;;;;;;;-1:-1:-1;;7878:47:40;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;7878:47:40;;;;;;;7868:58;;;;;7712:222;;;;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;3930:366:40:-;4046:7;4069:18;4090:48;4108:19;4129:8;4090:17;:48::i;:::-;4148:22;;;;:10;:22;;;;;:63;;;4221:30;;:41;;-1:-1:-1;;;;;4221:41:40;;-1:-1:-1;;;;;;4221:41:40;;;;;;4069:69;-1:-1:-1;;3930:366:40;;;;:::o;1973:346:50:-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;1973:346;-1:-1:-1;;;;1973:346:50:o;4920:1140:40:-;5104:7;5127:30;;:::i;:::-;5160:10;:48;5171:36;5199:7;5171:27;:36::i;:::-;5160:48;;;;;;;;;;;;;;-1:-1:-1;5160:48:40;;;5127:81;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5127:81:40;;;;;;;;;5297;;-1:-1:-1;;;5297:81:40;;5313:1;5297:81;;;;;;;;;;;5349:10;5297:81;;;;;;;;;;;;;5127;;-1:-1:-1;5127:81:40;;-1:-1:-1;;5127:81:40;;5297:15;;:81;;;;;;;;;;;-1:-1:-1;5127:81:40;5297;;;5:2:-1;;;;30:1;27;20:12;5:2;5297:81:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5297:81:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5297:81:40;;-1:-1:-1;5389:26:40;;:::i;:::-;5418:150;;;;;;;;5447:3;-1:-1:-1;;;;;5418:150:40;;;;;5500:4;5418:150;;;;;;5472:7;5418:150;;;;5538:19;5418:150;;;5389:179;;5634:8;5579:22;:40;5610:7;-1:-1:-1;;;;;5579:40:40;-1:-1:-1;;;;;5579:40:40;;;;;;;;;;;;:52;5620:10;5579:52;;;;;;;;;;;:63;;;;;;;;;;;;;-1:-1:-1;;;;;5579:63:40;;;;;-1:-1:-1;;;;;5579:63:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5761:7;-1:-1:-1;;;;;5657:223:40;5729:10;5707:7;-1:-1:-1;;;;;5657:223:40;;5783:3;5800:7;5821:19;5854:16;5657:223;;;;-1:-1:-1;;;;;5657:223:40;-1:-1:-1;;;;;5657:223:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5657:223:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5936:90:40;;;;;;;;5975:12;5936:90;;-1:-1:-1;;;;;5936:90:40;;;;;;;;;;5890:31;;;-1:-1:-1;5890:31:40;;;;;;;;;:43;;;;;;;;;;:136;;;;;;;;;;;-1:-1:-1;;;;;;5890:136:40;;;;;;;;;;;;-1:-1:-1;5890:43:40;;4920:1140;-1:-1:-1;;;;;4920:1140:40:o;6393:1094::-;6496:7;6515:21;6550:7;-1:-1:-1;;;;;6550:13:40;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6550:15:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6550:15:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6550:15:40;6584:62;;;-1:-1:-1;;;6584:62:40;;-1:-1:-1;;;;;6584:62:40;;;;;;;;;;;;;;;;6550:15;;-1:-1:-1;6584:39:40;;;;;;:62;;;;;6550:15;;6584:62;;;;;;;;:39;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;6584:62:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6584:62:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6584:62:40;6576:71;;;;;;6657:24;;:::i;:::-;6684:10;:48;6695:36;6723:7;6695:27;:36::i;:::-;6684:48;;;;;;;;;;;;;;-1:-1:-1;6684:48:40;;;6657:75;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6657:75:40;;;;;;;;;6850:36;;;;;;6839:1;6850:36;;;;;;:41;;;;;;;;;;;;6814:133;;-1:-1:-1;;;6814:133:40;;;;;;;;;;;;;6901:10;6814:133;;;;;;;;;;6657:75;;-1:-1:-1;6657:75:40;;-1:-1:-1;;6657:75:40;;6814:15;;:133;;;;;;;;;;-1:-1:-1;6657:75:40;6814:133;;;5:2:-1;;;;30:1;27;20:12;5:2;6814:133:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6814:133:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6814:133:40;;-1:-1:-1;6958:26:40;;:::i;:::-;6987:127;;;;;;;;7016:3;-1:-1:-1;;;;;6987:127:40;;;;;7063:5;6987:127;;;;;;7041:1;6987:127;;;;;;7102:1;6987:127;;;;;6958:156;;7180:8;7125:22;:40;7156:7;-1:-1:-1;;;;;7125:40:40;-1:-1:-1;;;;;7125:40:40;;;;;;;;;;;;:52;7166:10;7125:52;;;;;;;;;;;:63;;;;;;;;;;;;;-1:-1:-1;;;;;7125:63:40;;;;;-1:-1:-1;;;;;7125:63:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7273:7;-1:-1:-1;;;;;7203:102:40;7253:10;7243:7;-1:-1:-1;;;;;7203:102:40;;7283:3;7288:16;7203:102;;;;-1:-1:-1;;;;;7203:102:40;-1:-1:-1;;;;;7203:102:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;7203:102:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7361:92:40;;;;;;;;7401:12;7361:92;;-1:-1:-1;;;;;7361:92:40;;;;;;;;;;7315:31;;;-1:-1:-1;7315:31:40;;;;;;;;;:43;;;;;;;;;;:138;;;;;;;;;;;-1:-1:-1;;;;;;7315:138:40;;;;;;;;;;;;-1:-1:-1;7315:43:40;;6393:1094;-1:-1:-1;;;;6393:1094:40:o;2666:345:50:-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2443:1206:40;443:10:50;2552:4:40;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;2531:11:40;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;2598:10:40;2568:13;2584:25;;;;;;;;;;;:38;;;;;;;;:45;;;;;-1:-1:-1;;;;;2584:45:40;;2708:26;;:::i;:::-;-1:-1:-1;;;;;;2737:39:40;;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2708:81;;;;;;;;;;;;;;;-1:-1:-1;;;2708:81:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2799:34;;;;;;-1:-1:-1;;;;;2850:39:40;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2843:59;;-1:-1:-1;;;;;;2843:59:40;;;;;;;;;;;;;;;;2917:45;2890:11;;2850:39;2917:45;;;2977:6;2987:1;2977:11;2973:578;;;3054:21;3089:6;-1:-1:-1;;;;;3089:12:40;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3089:14:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3089:14:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3089:14:40;;3146;;;3089;;-1:-1:-1;3142:235:40;;;3220:11;;3233:15;;;;;3189:77;;-1:-1:-1;;;3189:77:40;;-1:-1:-1;;;;;3189:77:40;;;;;;;;;;;;;;;;;;;;;;;:30;;;;;;:77;;;;;;;;;;;;;;;3220:11;3189:30;:77;;;5:2:-1;;;;30:1;27;20:12;5:2;3189:77:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3189:77:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3189:77:40;3335:27;;;;-1:-1:-1;;;;;3284:35:40;;;;;;;:18;3189:77;3284:35;;;;;;;3320:11;;3284:48;;;;;;;;;:78;3189:77;-1:-1:-1;3142:235:40;3420:8;:14;;;3415:126;;3497:11;;3463:63;;;-1:-1:-1;;;3463:63:40;;-1:-1:-1;;;;;3463:63:40;;;;;;;;;;;;;;;;:33;;;;;;:63;;;;;;;;;;;;;;;3497:11;3463:33;:63;;;5:2:-1;;;;30:1;27;20:12;5:2;3463:63:40;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3463:63:40;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3463:63:40;;-1:-1:-1;3415:126:40;2973:578;;3565:54;;;;;;;;3599:11;;-1:-1:-1;;;;;3565:54:40;;;;;;;;;;;;-1:-1:-1;3636:6:40;2443:1206;-1:-1:-1;;;;;2443:1206:40:o;1785:69::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;678:401::-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;1085:::-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;290:322:43;365:7;403;-1:-1:-1;;;;;403:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;403:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;403:15:43;392:79;;;-1:-1:-1;;;392:79:43;;447:4;392:79;;;;-1:-1:-1;;;;;392:79:43;;;;;;;;;:46;;;;;;;:79;;;;;403:15;;392:79;;;;;;;:46;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;392:79:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;392:79:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;392:79:43;384:124;;;;;-1:-1:-1;;;384:124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;-1:-1:-1;;;;;536:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;536:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;536:15:43;525:80;;;-1:-1:-1;;;525:80:43;;581:4;525:80;;;;-1:-1:-1;;;;;525:80:43;;;;;;;;;:47;;;;;;;:80;;;;;536:15;;525:80;;;;;;;:47;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;525:80:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;525:80:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;525:80:43;;290:322;-1:-1:-1;;290:322:43:o;419:7517:40:-;;;;;;;;;;-1:-1:-1;419:7517:40;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;419:7517:40;;;;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"./UniversalScheme.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\n\n/**\n * @title A scheme to manage global constraint for organizations\n * @dev The scheme is used to register or remove new global constraints\n */\ncontract GlobalConstraintRegistrar is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface {\n event NewGlobalConstraintsProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n address _gc,\n bytes32 _params,\n bytes32 _voteToRemoveParams,\n string _descriptionHash\n );\n\n event RemoveGlobalConstraintsProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n address _gc,\n string _descriptionHash\n );\n\n event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param);\n event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n // The struct that holds the information of a global constraint proposed to be added or removed.\n struct GCProposal {\n address gc; // The address of the global constraint contract.\n bool addGC; // true: add a GC, false: remove a GC.\n bytes32 params; // Parameters for global constraint.\n bytes32 voteToRemoveParams; // Voting parameters for removing this GC.\n }\n\n // GCProposal by avatar and proposalId\n mapping(address=>mapping(bytes32=>GCProposal)) public organizationsProposals;\n\n // voteToRemoveParams hash by avatar and proposal.gc\n mapping(address=>mapping(address=>bytes32)) public voteToRemoveParams;\n\n // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n struct Parameters {\n bytes32 voteRegisterParams;\n IntVoteInterface intVote;\n }\n\n mapping(bytes32=>Parameters) public parameters;\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _param a parameter of the voting result, 1 yes and 2 is no.\n * @return bool which represents a successful of the function.\n */\n function executeProposal(bytes32 _proposalId, int256 _param) external onlyVotingMachine(_proposalId) returns(bool) {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n bool retVal = true;\n // Check if vote was successful:\n GCProposal memory proposal = organizationsProposals[address(avatar)][_proposalId];\n require(proposal.gc != address(0));\n delete organizationsProposals[address(avatar)][_proposalId];\n emit ProposalDeleted(address(avatar), _proposalId);\n\n if (_param == 1) {\n\n // Define controller and get the params:\n Controller controller = Controller(avatar.owner());\n\n // Adding a GC\n if (proposal.addGC) {\n retVal = controller.addGlobalConstraint(proposal.gc, proposal.params, address(avatar));\n voteToRemoveParams[address(avatar)][proposal.gc] = proposal.voteToRemoveParams;\n }\n // Removing a GC\n if (!proposal.addGC) {\n retVal = controller.removeGlobalConstraint(proposal.gc, address(avatar));\n }\n }\n emit ProposalExecuted(address(avatar), _proposalId, _param);\n return retVal;\n }\n\n /**\n * @dev Hash the parameters, save them if necessary, and return the hash value\n * @param _voteRegisterParams - voting parameters for register global constraint\n * @param _intVote - voting machine contract.\n * @return bytes32 -the parameters hash\n */\n function setParameters(\n bytes32 _voteRegisterParams,\n IntVoteInterface _intVote\n ) public returns(bytes32)\n {\n bytes32 paramsHash = getParametersHash(_voteRegisterParams, _intVote);\n parameters[paramsHash].voteRegisterParams = _voteRegisterParams;\n parameters[paramsHash].intVote = _intVote;\n return paramsHash;\n }\n\n /**\n * @dev propose to add a new global constraint:\n * @param _avatar the avatar of the organization that the constraint is proposed for\n * @param _gc the address of the global constraint that is being proposed\n * @param _params the parameters for the global constraint\n * @param _voteToRemoveParams the conditions (on the voting machine) for removing this global constraint\n * @param _descriptionHash proposal's description hash\n * @return bytes32 -the proposal id\n */\n // TODO: do some checks on _voteToRemoveParams - it is very easy to make a mistake and not be able to remove the GC\n function proposeGlobalConstraint(\n Avatar _avatar,\n address _gc,\n bytes32 _params,\n bytes32 _voteToRemoveParams,\n string memory _descriptionHash)\n public\n returns(bytes32)\n {\n Parameters memory votingParams = parameters[getParametersFromController(_avatar)];\n\n IntVoteInterface intVote = votingParams.intVote;\n bytes32 proposalId = intVote.propose(2, votingParams.voteRegisterParams, msg.sender, address(_avatar));\n\n GCProposal memory proposal = GCProposal({\n gc: _gc,\n params: _params,\n addGC: true,\n voteToRemoveParams: _voteToRemoveParams\n });\n\n organizationsProposals[address(_avatar)][proposalId] = proposal;\n emit NewGlobalConstraintsProposal(\n address(_avatar),\n proposalId,\n address(intVote),\n _gc,\n _params,\n _voteToRemoveParams,\n _descriptionHash\n );\n proposalsInfo[address(intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return proposalId;\n }\n\n /**\n * @dev propose to remove a global constraint:\n * @param _avatar the avatar of the organization that the constraint is proposed for\n * @param _gc the address of the global constraint that is being proposed\n * @param _descriptionHash proposal's description hash\n * @return bytes32 -the proposal id\n */\n function proposeToRemoveGC(Avatar _avatar, address _gc, string memory _descriptionHash) public returns(bytes32) {\n Controller controller = Controller(_avatar.owner());\n require(controller.isGlobalConstraintRegistered(_gc, address(_avatar)));\n Parameters memory params = parameters[getParametersFromController(_avatar)];\n IntVoteInterface intVote = params.intVote;\n bytes32 proposalId = intVote.propose(\n 2,\n voteToRemoveParams[address(_avatar)][_gc],\n msg.sender,\n address(_avatar)\n );\n\n GCProposal memory proposal = GCProposal({\n gc: _gc,\n params: 0,\n addGC: false,\n voteToRemoveParams: 0\n });\n\n organizationsProposals[address(_avatar)][proposalId] = proposal;\n emit RemoveGlobalConstraintsProposal(address(_avatar), proposalId, address(intVote), _gc, _descriptionHash);\n proposalsInfo[address(intVote)][proposalId] = ProposalInfo({\n blockNumber: block.number,\n avatar: _avatar\n });\n return proposalId;\n }\n\n /**\n * @dev Hash the parameters and return the hash value\n * @param _voteRegisterParams - voting parameters\n * @param _intVote - voting machine contract.\n * @return bytes32 -the parameters hash\n */\n function getParametersHash(\n bytes32 _voteRegisterParams,\n IntVoteInterface _intVote\n ) public pure returns(bytes32)\n {\n return (keccak256(abi.encodePacked(_voteRegisterParams, _intVote)));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/GlobalConstraintRegistrar.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/GlobalConstraintRegistrar.sol","exportedSymbols":{"GlobalConstraintRegistrar":[11922]},"id":11923,"nodeType":"SourceUnit","nodes":[{"id":11456,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:40"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":11457,"nodeType":"ImportDirective","scope":11923,"sourceUnit":19817,"src":"25:71:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":11458,"nodeType":"ImportDirective","scope":11923,"sourceUnit":20032,"src":"97:86:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":11459,"nodeType":"ImportDirective","scope":11923,"sourceUnit":12635,"src":"184:31:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":11460,"nodeType":"ImportDirective","scope":11923,"sourceUnit":14651,"src":"216:54:40","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":11461,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"457:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":11462,"nodeType":"InheritanceSpecifier","src":"457:15:40"},{"arguments":null,"baseName":{"contractScope":null,"id":11463,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"474:22:40","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":11464,"nodeType":"InheritanceSpecifier","src":"474:22:40"},{"arguments":null,"baseName":{"contractScope":null,"id":11465,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"498:24:40","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":11466,"nodeType":"InheritanceSpecifier","src":"498:24:40"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme to manage global constraint for organizations\n@dev The scheme is used to register or remove new global constraints","fullyImplemented":true,"id":11922,"linearizedBaseContracts":[11922,19828,14650,20031,12634,12645],"name":"GlobalConstraintRegistrar","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":11482,"name":"NewGlobalConstraintsProposal","nodeType":"EventDefinition","parameters":{"id":11481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11468,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11482,"src":"573:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11467,"name":"address","nodeType":"ElementaryTypeName","src":"573:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11470,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11482,"src":"606:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"606:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11472,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":11482,"src":"643:33:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11471,"name":"address","nodeType":"ElementaryTypeName","src":"643:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11474,"indexed":false,"name":"_gc","nodeType":"VariableDeclaration","scope":11482,"src":"686:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11473,"name":"address","nodeType":"ElementaryTypeName","src":"686:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11476,"indexed":false,"name":"_params","nodeType":"VariableDeclaration","scope":11482,"src":"707:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"707:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11478,"indexed":false,"name":"_voteToRemoveParams","nodeType":"VariableDeclaration","scope":11482,"src":"732:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"732:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11480,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11482,"src":"769:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11479,"name":"string","nodeType":"ElementaryTypeName","src":"769:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"563:235:40"},"src":"529:270:40"},{"anonymous":false,"documentation":null,"id":11494,"name":"RemoveGlobalConstraintsProposal","nodeType":"EventDefinition","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11484,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11494,"src":"852:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11483,"name":"address","nodeType":"ElementaryTypeName","src":"852:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11486,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11494,"src":"885:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"885:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11488,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":11494,"src":"922:33:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11487,"name":"address","nodeType":"ElementaryTypeName","src":"922:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11490,"indexed":false,"name":"_gc","nodeType":"VariableDeclaration","scope":11494,"src":"965:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11489,"name":"address","nodeType":"ElementaryTypeName","src":"965:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11492,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11494,"src":"986:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11491,"name":"string","nodeType":"ElementaryTypeName","src":"986:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"842:173:40"},"src":"805:211:40"},{"anonymous":false,"documentation":null,"id":11502,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":11501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11496,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11502,"src":"1045:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11495,"name":"address","nodeType":"ElementaryTypeName","src":"1045:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11498,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11502,"src":"1070:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1070:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11500,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":11502,"src":"1099:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11499,"name":"int256","nodeType":"ElementaryTypeName","src":"1099:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1044:69:40"},"src":"1022:92:40"},{"anonymous":false,"documentation":null,"id":11508,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":11507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11504,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11508,"src":"1141:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11503,"name":"address","nodeType":"ElementaryTypeName","src":"1141:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11506,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11508,"src":"1166:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1166:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1140:54:40"},"src":"1119:76:40"},{"canonicalName":"GlobalConstraintRegistrar.GCProposal","id":11517,"members":[{"constant":false,"id":11510,"name":"gc","nodeType":"VariableDeclaration","scope":11517,"src":"1330:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11509,"name":"address","nodeType":"ElementaryTypeName","src":"1330:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11512,"name":"addGC","nodeType":"VariableDeclaration","scope":11517,"src":"1400:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11511,"name":"bool","nodeType":"ElementaryTypeName","src":"1400:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":11514,"name":"params","nodeType":"VariableDeclaration","scope":11517,"src":"1459:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1459:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11516,"name":"voteToRemoveParams","nodeType":"VariableDeclaration","scope":11517,"src":"1520:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"name":"GCProposal","nodeType":"StructDefinition","scope":11922,"src":"1302:294:40","visibility":"public"},{"constant":false,"id":11523,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":11922,"src":"1645:76:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal))"},"typeName":{"id":11522,"keyType":{"id":11518,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1645:46:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal))"},"valueType":{"id":11521,"keyType":{"id":11519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1662:28:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal)"},"valueType":{"contractScope":null,"id":11520,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"1679:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}}}},"value":null,"visibility":"public"},{"constant":false,"id":11529,"name":"voteToRemoveParams","nodeType":"VariableDeclaration","scope":11922,"src":"1785:69:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"},"typeName":{"id":11528,"keyType":{"id":11524,"name":"address","nodeType":"ElementaryTypeName","src":"1793:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1785:43:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"},"valueType":{"id":11527,"keyType":{"id":11525,"name":"address","nodeType":"ElementaryTypeName","src":"1810:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1802:25:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueType":{"id":11526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}},"value":null,"visibility":"public"},{"canonicalName":"GlobalConstraintRegistrar.Parameters","id":11534,"members":[{"constant":false,"id":11531,"name":"voteRegisterParams","nodeType":"VariableDeclaration","scope":11534,"src":"1992:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1992:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11533,"name":"intVote","nodeType":"VariableDeclaration","scope":11534,"src":"2028:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11532,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"2028:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":11922,"src":"1964:95:40","visibility":"public"},{"constant":false,"id":11538,"name":"parameters","nodeType":"VariableDeclaration","scope":11922,"src":"2065:46:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters)"},"typeName":{"id":11537,"keyType":{"id":11535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2073:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2065:28:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters)"},"valueType":{"contractScope":null,"id":11536,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11534,"src":"2082:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":11667,"nodeType":"Block","src":"2558:1091:40","statements":[{"assignments":[11551],"declarations":[{"constant":false,"id":11551,"name":"avatar","nodeType":"VariableDeclaration","scope":11667,"src":"2568:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11550,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2568:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":11559,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11552,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2584:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":11555,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11553,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2598:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2598:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2584:25:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":11557,"indexExpression":{"argumentTypes":null,"id":11556,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2610:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2584:38:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":11558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2584:45:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2568:61:40"},{"assignments":[11561],"declarations":[{"constant":false,"id":11561,"name":"retVal","nodeType":"VariableDeclaration","scope":11667,"src":"2639:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11560,"name":"bool","nodeType":"ElementaryTypeName","src":"2639:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":11563,"initialValue":{"argumentTypes":null,"hexValue":"74727565","id":11562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2653:4:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"2639:18:40"},{"assignments":[11565],"declarations":[{"constant":false,"id":11565,"name":"proposal","nodeType":"VariableDeclaration","scope":11667,"src":"2708:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"},"typeName":{"contractScope":null,"id":11564,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"2708:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}},"value":null,"visibility":"internal"}],"id":11573,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11566,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"2737:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11570,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11568,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"2768:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2760:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2760:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2737:39:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11572,"indexExpression":{"argumentTypes":null,"id":11571,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2777:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2737:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2708:81:40"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11575,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"2807:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"2807:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2830:1:40","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":11577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2822:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2822:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2807:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11574,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2799:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:34:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11582,"nodeType":"ExpressionStatement","src":"2799:34:40"},{"expression":{"argumentTypes":null,"id":11590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2843:59:40","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11583,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"2850:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11587,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11585,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"2881:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2873:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2873:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2850:39:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11589,"indexExpression":{"argumentTypes":null,"id":11588,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2890:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2850:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11591,"nodeType":"ExpressionStatement","src":"2843:59:40"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11594,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"2941:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2933:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2933:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11596,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2950:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11592,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"2917:15:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2917:45:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11598,"nodeType":"EmitStatement","src":"2912:50:40"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11599,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11542,"src":"2977:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":11600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2987:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2977:11:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11656,"nodeType":"IfStatement","src":"2973:578:40","trueBody":{"id":11655,"nodeType":"Block","src":"2990:561:40","statements":[{"assignments":[11603],"declarations":[{"constant":false,"id":11603,"name":"controller","nodeType":"VariableDeclaration","scope":11655,"src":"3054:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11602,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"3054:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11609,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11605,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3089:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"3089:12:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11604,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"3078:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3078:26:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"3054:50:40"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11610,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3146:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addGC","nodeType":"MemberAccess","referencedDeclaration":11512,"src":"3146:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11638,"nodeType":"IfStatement","src":"3142:235:40","trueBody":{"id":11637,"nodeType":"Block","src":"3162:215:40","statements":[{"expression":{"argumentTypes":null,"id":11623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11612,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11561,"src":"3180:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11615,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3220:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"3220:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11617,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3233:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":11514,"src":"3233:15:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11620,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3258:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3250:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3250:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11613,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11603,"src":"3189:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addGlobalConstraint","nodeType":"MemberAccess","referencedDeclaration":1139,"src":"3189:30:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,address) external returns (bool)"}},"id":11622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3189:77:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3180:86:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11624,"nodeType":"ExpressionStatement","src":"3180:86:40"},{"expression":{"argumentTypes":null,"id":11635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11625,"name":"voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"3284:18:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"}},"id":11631,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11627,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3311:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3303:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3303:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3284:35:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":11632,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11629,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3320:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"3320:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3284:48:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11633,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3335:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteToRemoveParams","nodeType":"MemberAccess","referencedDeclaration":11516,"src":"3335:27:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3284:78:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11636,"nodeType":"ExpressionStatement","src":"3284:78:40"}]}},{"condition":{"argumentTypes":null,"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3419:15:40","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3420:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addGC","nodeType":"MemberAccess","referencedDeclaration":11512,"src":"3420:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11654,"nodeType":"IfStatement","src":"3415:126:40","trueBody":{"id":11653,"nodeType":"Block","src":"3436:105:40","statements":[{"expression":{"argumentTypes":null,"id":11651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11642,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11561,"src":"3454:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3497:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"3497:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11648,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3518:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3510:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3510:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11643,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11603,"src":"3463:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"removeGlobalConstraint","nodeType":"MemberAccess","referencedDeclaration":1336,"src":"3463:33:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":11650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3463:63:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3454:72:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11652,"nodeType":"ExpressionStatement","src":"3454:72:40"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11659,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3590:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3582:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3582:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11661,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"3599:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11662,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11542,"src":"3612:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11657,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11502,"src":"3565:16:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3565:54:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11664,"nodeType":"EmitStatement","src":"3560:59:40"},{"expression":{"argumentTypes":null,"id":11665,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11561,"src":"3636:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11549,"id":11666,"nodeType":"Return","src":"3629:13:40"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.\n@return bool which represents a successful of the function.","id":11668,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":11545,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2531:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11546,"modifierName":{"argumentTypes":null,"id":11544,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2513:17:40","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2513:30:40"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":11543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11540,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11668,"src":"2468:19:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2468:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11542,"name":"_param","nodeType":"VariableDeclaration","scope":11668,"src":"2489:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11541,"name":"int256","nodeType":"ElementaryTypeName","src":"2489:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2467:36:40"},"returnParameters":{"id":11549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11548,"name":"","nodeType":"VariableDeclaration","scope":11668,"src":"2552:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11547,"name":"bool","nodeType":"ElementaryTypeName","src":"2552:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2551:6:40"},"scope":11922,"src":"2443:1206:40","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":11700,"nodeType":"Block","src":"4059:237:40","statements":[{"assignments":[11678],"declarations":[{"constant":false,"id":11678,"name":"paramsHash","nodeType":"VariableDeclaration","scope":11700,"src":"4069:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4069:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11683,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11680,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"4108:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11681,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11672,"src":"4129:8:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11679,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11921,"src":"4090:17:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4090:48:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4069:69:40"},{"expression":{"argumentTypes":null,"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11684,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"4148:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11686,"indexExpression":{"argumentTypes":null,"id":11685,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11678,"src":"4159:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4148:22:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"id":11687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":11531,"src":"4148:41:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11688,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"4192:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4148:63:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11690,"nodeType":"ExpressionStatement","src":"4148:63:40"},{"expression":{"argumentTypes":null,"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11691,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"4221:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11693,"indexExpression":{"argumentTypes":null,"id":11692,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11678,"src":"4232:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4221:22:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"id":11694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":11533,"src":"4221:30:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11695,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11672,"src":"4254:8:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"4221:41:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":11697,"nodeType":"ExpressionStatement","src":"4221:41:40"},{"expression":{"argumentTypes":null,"id":11698,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11678,"src":"4279:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11676,"id":11699,"nodeType":"Return","src":"4272:17:40"}]},"documentation":"@dev Hash the parameters, save them if necessary, and return the hash value\n@param _voteRegisterParams - voting parameters for register global constraint\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":11701,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":11673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11670,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":11701,"src":"3962:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3962:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11672,"name":"_intVote","nodeType":"VariableDeclaration","scope":11701,"src":"3999:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11671,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3999:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3952:78:40"},"returnParameters":{"id":11676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11675,"name":"","nodeType":"VariableDeclaration","scope":11701,"src":"4046:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4046:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4045:9:40"},"scope":11922,"src":"3930:366:40","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11792,"nodeType":"Block","src":"5117:943:40","statements":[{"assignments":[11717],"declarations":[{"constant":false,"id":11717,"name":"votingParams","nodeType":"VariableDeclaration","scope":11792,"src":"5127:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"},"typeName":{"contractScope":null,"id":11716,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11534,"src":"5127:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":11723,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11718,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"5160:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11722,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11720,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5199:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11719,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"5171:27:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5171:36:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5160:48:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5127:81:40"},{"assignments":[11725],"declarations":[{"constant":false,"id":11725,"name":"intVote","nodeType":"VariableDeclaration","scope":11792,"src":"5219:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11724,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"5219:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":11728,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11726,"name":"votingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"5246:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters memory"}},"id":11727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":11533,"src":"5246:20:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"5219:47:40"},{"assignments":[11730],"declarations":[{"constant":false,"id":11730,"name":"proposalId","nodeType":"VariableDeclaration","scope":11792,"src":"5276:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5276:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11742,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":11733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5313:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11734,"name":"votingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"5316:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters memory"}},"id":11735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":11531,"src":"5316:31:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5349:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5349:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11739,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5369:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5361:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5361:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11731,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"5297:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":11732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"5297:15:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":11741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5297:81:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5276:102:40"},{"assignments":[11744],"declarations":[{"constant":false,"id":11744,"name":"proposal","nodeType":"VariableDeclaration","scope":11792,"src":"5389:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"},"typeName":{"contractScope":null,"id":11743,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"5389:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}},"value":null,"visibility":"internal"}],"id":11751,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11746,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"5447:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11747,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11707,"src":"5472:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"hexValue":"74727565","id":11748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5500:4:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"id":11749,"name":"_voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11709,"src":"5538:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11745,"name":"GCProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"5418:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GCProposal_$11517_storage_ptr_$","typeString":"type(struct GlobalConstraintRegistrar.GCProposal storage pointer)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["gc","params","addGC","voteToRemoveParams"],"nodeType":"FunctionCall","src":"5418:150:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"5389:179:40"},{"expression":{"argumentTypes":null,"id":11760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11752,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"5579:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11757,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11754,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5610:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5602:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5602:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5579:40:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11758,"indexExpression":{"argumentTypes":null,"id":11756,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5620:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5579:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11759,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11744,"src":"5634:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"src":"5579:63:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"id":11761,"nodeType":"ExpressionStatement","src":"5579:63:40"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11764,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5707:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5699:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5699:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11766,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5729:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11768,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"5761:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5753:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5753:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11770,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"5783:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11771,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11707,"src":"5800:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11772,"name":"_voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11709,"src":"5821:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11773,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11711,"src":"5854:16:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11762,"name":"NewGlobalConstraintsProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11482,"src":"5657:28:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,bytes32,bytes32,string memory)"}},"id":11774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5657:223:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11775,"nodeType":"EmitStatement","src":"5652:228:40"},{"expression":{"argumentTypes":null,"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11776,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5890:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":11781,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11778,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"5912:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5904:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5904:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5890:31:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":11782,"indexExpression":{"argumentTypes":null,"id":11780,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5922:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5890:43:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11784,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5975:5:40","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5975:12:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":11786,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"6008:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11783,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5936:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5936:90:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5890:136:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":11789,"nodeType":"ExpressionStatement","src":"5890:136:40"},{"expression":{"argumentTypes":null,"id":11790,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"6043:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11715,"id":11791,"nodeType":"Return","src":"6036:17:40"}]},"documentation":"@dev propose to add a new global constraint:\n@param _avatar the avatar of the organization that the constraint is proposed for\n@param _gc the address of the global constraint that is being proposed\n@param _params the parameters for the global constraint\n@param _voteToRemoveParams the conditions (on the voting machine) for removing this global constraint\n@param _descriptionHash proposal's description hash\n@return bytes32 -the proposal id","id":11793,"implemented":true,"kind":"function","modifiers":[],"name":"proposeGlobalConstraint","nodeType":"FunctionDefinition","parameters":{"id":11712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11703,"name":"_avatar","nodeType":"VariableDeclaration","scope":11793,"src":"4958:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11702,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4958:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11705,"name":"_gc","nodeType":"VariableDeclaration","scope":11793,"src":"4978:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11704,"name":"address","nodeType":"ElementaryTypeName","src":"4978:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11707,"name":"_params","nodeType":"VariableDeclaration","scope":11793,"src":"4995:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4995:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11709,"name":"_voteToRemoveParams","nodeType":"VariableDeclaration","scope":11793,"src":"5016:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5016:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11711,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11793,"src":"5049:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11710,"name":"string","nodeType":"ElementaryTypeName","src":"5049:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4952:128:40"},"returnParameters":{"id":11715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11714,"name":"","nodeType":"VariableDeclaration","scope":11793,"src":"5104:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5104:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5103:9:40"},"scope":11922,"src":"4920:1140:40","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11901,"nodeType":"Block","src":"6505:982:40","statements":[{"assignments":[11805],"declarations":[{"constant":false,"id":11805,"name":"controller","nodeType":"VariableDeclaration","scope":11901,"src":"6515:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11804,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"6515:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11811,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11807,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6550:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"6550:13:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6550:15:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11806,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"6539:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6539:27:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"6515:51:40"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11815,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"6624:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11817,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6637:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6629:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6629:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11813,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11805,"src":"6584:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isGlobalConstraintRegistered","nodeType":"MemberAccess","referencedDeclaration":1774,"src":"6584:39:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":11819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6584:62:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11812,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6576:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6576:71:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11821,"nodeType":"ExpressionStatement","src":"6576:71:40"},{"assignments":[11823],"declarations":[{"constant":false,"id":11823,"name":"params","nodeType":"VariableDeclaration","scope":11901,"src":"6657:24:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"},"typeName":{"contractScope":null,"id":11822,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11534,"src":"6657:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":11829,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11824,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"6684:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11828,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11826,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6723:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11825,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"6695:27:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":11827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6695:36:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6684:48:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6657:75:40"},{"assignments":[11831],"declarations":[{"constant":false,"id":11831,"name":"intVote","nodeType":"VariableDeclaration","scope":11901,"src":"6742:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11830,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"6742:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":11834,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11832,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11823,"src":"6769:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters memory"}},"id":11833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":11533,"src":"6769:14:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"6742:41:40"},{"assignments":[11836],"declarations":[{"constant":false,"id":11836,"name":"proposalId","nodeType":"VariableDeclaration","scope":11901,"src":"6793:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6793:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11853,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":11839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6839:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11840,"name":"voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"6850:18:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"}},"id":11844,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11842,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6877:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6869:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6869:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6850:36:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":11846,"indexExpression":{"argumentTypes":null,"id":11845,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"6887:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6850:41:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11847,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6901:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6901:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11850,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6929:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6921:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6921:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11837,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11831,"src":"6814:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":11838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"6814:15:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":11852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6814:133:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6793:154:40"},{"assignments":[11855],"declarations":[{"constant":false,"id":11855,"name":"proposal","nodeType":"VariableDeclaration","scope":11901,"src":"6958:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"},"typeName":{"contractScope":null,"id":11854,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"6958:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}},"value":null,"visibility":"internal"}],"id":11862,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11857,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"7016:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"30","id":11858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":11859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7063:5:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":11860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7102:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11856,"name":"GCProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"6987:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GCProposal_$11517_storage_ptr_$","typeString":"type(struct GlobalConstraintRegistrar.GCProposal storage pointer)"}},"id":11861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["gc","params","addGC","voteToRemoveParams"],"nodeType":"FunctionCall","src":"6987:127:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6958:156:40"},{"expression":{"argumentTypes":null,"id":11871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11863,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"7125:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11868,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11865,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"7156:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7148:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7148:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7125:40:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11869,"indexExpression":{"argumentTypes":null,"id":11867,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7166:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7125:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11870,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"7180:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"src":"7125:63:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"id":11872,"nodeType":"ExpressionStatement","src":"7125:63:40"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11875,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"7243:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7235:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7235:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11877,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7253:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11879,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11831,"src":"7273:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7265:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7265:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11881,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"7283:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11882,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11799,"src":"7288:16:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11873,"name":"RemoveGlobalConstraintsProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11494,"src":"7203:31:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,string memory)"}},"id":11883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7203:102:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11884,"nodeType":"EmitStatement","src":"7198:107:40"},{"expression":{"argumentTypes":null,"id":11897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11885,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"7315:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":11890,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11887,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11831,"src":"7337:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7329:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7315:31:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":11891,"indexExpression":{"argumentTypes":null,"id":11889,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7347:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7315:43:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11893,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7401:5:40","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7401:12:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":11895,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"7435:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11892,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"7361:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":11896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"7361:92:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"7315:138:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":11898,"nodeType":"ExpressionStatement","src":"7315:138:40"},{"expression":{"argumentTypes":null,"id":11899,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7470:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11803,"id":11900,"nodeType":"Return","src":"7463:17:40"}]},"documentation":"@dev propose to remove a global constraint:\n@param _avatar the avatar of the organization that the constraint is proposed for\n@param _gc the address of the global constraint that is being proposed\n@param _descriptionHash proposal's description hash\n@return bytes32 -the proposal id","id":11902,"implemented":true,"kind":"function","modifiers":[],"name":"proposeToRemoveGC","nodeType":"FunctionDefinition","parameters":{"id":11800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11795,"name":"_avatar","nodeType":"VariableDeclaration","scope":11902,"src":"6420:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11794,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6420:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11797,"name":"_gc","nodeType":"VariableDeclaration","scope":11902,"src":"6436:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11796,"name":"address","nodeType":"ElementaryTypeName","src":"6436:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11799,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11902,"src":"6449:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11798,"name":"string","nodeType":"ElementaryTypeName","src":"6449:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"6419:61:40"},"returnParameters":{"id":11803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11802,"name":"","nodeType":"VariableDeclaration","scope":11902,"src":"6496:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6496:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6495:9:40"},"scope":11922,"src":"6393:1094:40","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11920,"nodeType":"Block","src":"7850:84:40","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11914,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"7895:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11915,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11906,"src":"7916:8:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":11912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7878:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7878:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7878:47:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11911,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7868:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7868:58:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7867:60:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11910,"id":11919,"nodeType":"Return","src":"7860:67:40"}]},"documentation":"@dev Hash the parameters and return the hash value\n@param _voteRegisterParams - voting parameters\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":11921,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":11907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11904,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":11921,"src":"7748:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7748:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11906,"name":"_intVote","nodeType":"VariableDeclaration","scope":11921,"src":"7785:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11905,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"7785:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"7738:78:40"},"returnParameters":{"id":11910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11909,"name":"","nodeType":"VariableDeclaration","scope":11921,"src":"7837:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7837:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7836:9:40"},"scope":11922,"src":"7712:222:40","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":11923,"src":"419:7517:40"}],"src":"0:7937:40"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/GlobalConstraintRegistrar.sol","exportedSymbols":{"GlobalConstraintRegistrar":[11922]},"id":11923,"nodeType":"SourceUnit","nodes":[{"id":11456,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:40"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":11457,"nodeType":"ImportDirective","scope":11923,"sourceUnit":19817,"src":"25:71:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":11458,"nodeType":"ImportDirective","scope":11923,"sourceUnit":20032,"src":"97:86:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":11459,"nodeType":"ImportDirective","scope":11923,"sourceUnit":12635,"src":"184:31:40","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":11460,"nodeType":"ImportDirective","scope":11923,"sourceUnit":14651,"src":"216:54:40","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":11461,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"457:15:40","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":11462,"nodeType":"InheritanceSpecifier","src":"457:15:40"},{"arguments":null,"baseName":{"contractScope":null,"id":11463,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"474:22:40","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":11464,"nodeType":"InheritanceSpecifier","src":"474:22:40"},{"arguments":null,"baseName":{"contractScope":null,"id":11465,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"498:24:40","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":11466,"nodeType":"InheritanceSpecifier","src":"498:24:40"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme to manage global constraint for organizations\n@dev The scheme is used to register or remove new global constraints","fullyImplemented":true,"id":11922,"linearizedBaseContracts":[11922,19828,14650,20031,12634,12645],"name":"GlobalConstraintRegistrar","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":11482,"name":"NewGlobalConstraintsProposal","nodeType":"EventDefinition","parameters":{"id":11481,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11468,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11482,"src":"573:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11467,"name":"address","nodeType":"ElementaryTypeName","src":"573:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11470,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11482,"src":"606:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11469,"name":"bytes32","nodeType":"ElementaryTypeName","src":"606:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11472,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":11482,"src":"643:33:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11471,"name":"address","nodeType":"ElementaryTypeName","src":"643:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11474,"indexed":false,"name":"_gc","nodeType":"VariableDeclaration","scope":11482,"src":"686:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11473,"name":"address","nodeType":"ElementaryTypeName","src":"686:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11476,"indexed":false,"name":"_params","nodeType":"VariableDeclaration","scope":11482,"src":"707:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"707:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11478,"indexed":false,"name":"_voteToRemoveParams","nodeType":"VariableDeclaration","scope":11482,"src":"732:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11477,"name":"bytes32","nodeType":"ElementaryTypeName","src":"732:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11480,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11482,"src":"769:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11479,"name":"string","nodeType":"ElementaryTypeName","src":"769:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"563:235:40"},"src":"529:270:40"},{"anonymous":false,"documentation":null,"id":11494,"name":"RemoveGlobalConstraintsProposal","nodeType":"EventDefinition","parameters":{"id":11493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11484,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11494,"src":"852:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11483,"name":"address","nodeType":"ElementaryTypeName","src":"852:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11486,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11494,"src":"885:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11485,"name":"bytes32","nodeType":"ElementaryTypeName","src":"885:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11488,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":11494,"src":"922:33:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11487,"name":"address","nodeType":"ElementaryTypeName","src":"922:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11490,"indexed":false,"name":"_gc","nodeType":"VariableDeclaration","scope":11494,"src":"965:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11489,"name":"address","nodeType":"ElementaryTypeName","src":"965:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11492,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11494,"src":"986:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11491,"name":"string","nodeType":"ElementaryTypeName","src":"986:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"842:173:40"},"src":"805:211:40"},{"anonymous":false,"documentation":null,"id":11502,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":11501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11496,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11502,"src":"1045:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11495,"name":"address","nodeType":"ElementaryTypeName","src":"1045:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11498,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11502,"src":"1070:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11497,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1070:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11500,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":11502,"src":"1099:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11499,"name":"int256","nodeType":"ElementaryTypeName","src":"1099:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1044:69:40"},"src":"1022:92:40"},{"anonymous":false,"documentation":null,"id":11508,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":11507,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11504,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":11508,"src":"1141:23:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11503,"name":"address","nodeType":"ElementaryTypeName","src":"1141:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11506,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11508,"src":"1166:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11505,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1166:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1140:54:40"},"src":"1119:76:40"},{"canonicalName":"GlobalConstraintRegistrar.GCProposal","id":11517,"members":[{"constant":false,"id":11510,"name":"gc","nodeType":"VariableDeclaration","scope":11517,"src":"1330:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11509,"name":"address","nodeType":"ElementaryTypeName","src":"1330:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11512,"name":"addGC","nodeType":"VariableDeclaration","scope":11517,"src":"1400:10:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11511,"name":"bool","nodeType":"ElementaryTypeName","src":"1400:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":11514,"name":"params","nodeType":"VariableDeclaration","scope":11517,"src":"1459:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11513,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1459:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11516,"name":"voteToRemoveParams","nodeType":"VariableDeclaration","scope":11517,"src":"1520:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11515,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1520:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"name":"GCProposal","nodeType":"StructDefinition","scope":11922,"src":"1302:294:40","visibility":"public"},{"constant":false,"id":11523,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":11922,"src":"1645:76:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal))"},"typeName":{"id":11522,"keyType":{"id":11518,"name":"address","nodeType":"ElementaryTypeName","src":"1653:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1645:46:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal))"},"valueType":{"id":11521,"keyType":{"id":11519,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1670:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1662:28:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal)"},"valueType":{"contractScope":null,"id":11520,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"1679:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}}}},"value":null,"visibility":"public"},{"constant":false,"id":11529,"name":"voteToRemoveParams","nodeType":"VariableDeclaration","scope":11922,"src":"1785:69:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"},"typeName":{"id":11528,"keyType":{"id":11524,"name":"address","nodeType":"ElementaryTypeName","src":"1793:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1785:43:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"},"valueType":{"id":11527,"keyType":{"id":11525,"name":"address","nodeType":"ElementaryTypeName","src":"1810:7:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1802:25:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueType":{"id":11526,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}}},"value":null,"visibility":"public"},{"canonicalName":"GlobalConstraintRegistrar.Parameters","id":11534,"members":[{"constant":false,"id":11531,"name":"voteRegisterParams","nodeType":"VariableDeclaration","scope":11534,"src":"1992:26:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11530,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1992:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11533,"name":"intVote","nodeType":"VariableDeclaration","scope":11534,"src":"2028:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11532,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"2028:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":11922,"src":"1964:95:40","visibility":"public"},{"constant":false,"id":11538,"name":"parameters","nodeType":"VariableDeclaration","scope":11922,"src":"2065:46:40","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters)"},"typeName":{"id":11537,"keyType":{"id":11535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2073:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"2065:28:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters)"},"valueType":{"contractScope":null,"id":11536,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11534,"src":"2082:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":11667,"nodeType":"Block","src":"2558:1091:40","statements":[{"assignments":[11551],"declarations":[{"constant":false,"id":11551,"name":"avatar","nodeType":"VariableDeclaration","scope":11667,"src":"2568:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11550,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2568:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":11559,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11552,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2584:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":11555,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11553,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2598:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11554,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2598:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2584:25:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":11557,"indexExpression":{"argumentTypes":null,"id":11556,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2610:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2584:38:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":11558,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2584:45:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2568:61:40"},{"assignments":[11561],"declarations":[{"constant":false,"id":11561,"name":"retVal","nodeType":"VariableDeclaration","scope":11667,"src":"2639:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11560,"name":"bool","nodeType":"ElementaryTypeName","src":"2639:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":11563,"initialValue":{"argumentTypes":null,"hexValue":"74727565","id":11562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2653:4:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"nodeType":"VariableDeclarationStatement","src":"2639:18:40"},{"assignments":[11565],"declarations":[{"constant":false,"id":11565,"name":"proposal","nodeType":"VariableDeclaration","scope":11667,"src":"2708:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"},"typeName":{"contractScope":null,"id":11564,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"2708:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}},"value":null,"visibility":"internal"}],"id":11573,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11566,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"2737:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11570,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11568,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"2768:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11567,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2760:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2760:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2737:39:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11572,"indexExpression":{"argumentTypes":null,"id":11571,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2777:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2737:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2708:81:40"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":11580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11575,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"2807:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11576,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"2807:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2830:1:40","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":11577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2822:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11579,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2822:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2807:25:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11574,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2799:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2799:34:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11582,"nodeType":"ExpressionStatement","src":"2799:34:40"},{"expression":{"argumentTypes":null,"id":11590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2843:59:40","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11583,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"2850:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11587,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11585,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"2881:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11584,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2873:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2873:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2850:39:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11589,"indexExpression":{"argumentTypes":null,"id":11588,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2890:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2850:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11591,"nodeType":"ExpressionStatement","src":"2843:59:40"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11594,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"2941:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2933:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2933:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11596,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2950:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11592,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11508,"src":"2917:15:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":11597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2917:45:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11598,"nodeType":"EmitStatement","src":"2912:50:40"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":11601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":11599,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11542,"src":"2977:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":11600,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2987:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2977:11:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11656,"nodeType":"IfStatement","src":"2973:578:40","trueBody":{"id":11655,"nodeType":"Block","src":"2990:561:40","statements":[{"assignments":[11603],"declarations":[{"constant":false,"id":11603,"name":"controller","nodeType":"VariableDeclaration","scope":11655,"src":"3054:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11602,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"3054:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11609,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11605,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3089:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"3089:12:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:14:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11604,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"3078:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3078:26:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"3054:50:40"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11610,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3146:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11611,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addGC","nodeType":"MemberAccess","referencedDeclaration":11512,"src":"3146:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11638,"nodeType":"IfStatement","src":"3142:235:40","trueBody":{"id":11637,"nodeType":"Block","src":"3162:215:40","statements":[{"expression":{"argumentTypes":null,"id":11623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11612,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11561,"src":"3180:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11615,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3220:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11616,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"3220:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11617,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3233:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11618,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":11514,"src":"3233:15:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11620,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3258:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3250:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3250:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11613,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11603,"src":"3189:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"addGlobalConstraint","nodeType":"MemberAccess","referencedDeclaration":1139,"src":"3189:30:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,address) external returns (bool)"}},"id":11622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3189:77:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3180:86:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11624,"nodeType":"ExpressionStatement","src":"3180:86:40"},{"expression":{"argumentTypes":null,"id":11635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11625,"name":"voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"3284:18:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"}},"id":11631,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11627,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3311:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11626,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3303:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3303:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3284:35:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":11632,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11629,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3320:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"3320:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3284:48:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11633,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3335:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11634,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteToRemoveParams","nodeType":"MemberAccess","referencedDeclaration":11516,"src":"3335:27:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3284:78:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11636,"nodeType":"ExpressionStatement","src":"3284:78:40"}]}},{"condition":{"argumentTypes":null,"id":11641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3419:15:40","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11639,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3420:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addGC","nodeType":"MemberAccess","referencedDeclaration":11512,"src":"3420:14:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":11654,"nodeType":"IfStatement","src":"3415:126:40","trueBody":{"id":11653,"nodeType":"Block","src":"3436:105:40","statements":[{"expression":{"argumentTypes":null,"id":11651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":11642,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11561,"src":"3454:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11565,"src":"3497:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"id":11646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"gc","nodeType":"MemberAccess","referencedDeclaration":11510,"src":"3497:11:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11648,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3518:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11647,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3510:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3510:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11643,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11603,"src":"3463:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"removeGlobalConstraint","nodeType":"MemberAccess","referencedDeclaration":1336,"src":"3463:33:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":11650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3463:63:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3454:72:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":11652,"nodeType":"ExpressionStatement","src":"3454:72:40"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11659,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11551,"src":"3590:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11658,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3582:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3582:15:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11661,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"3599:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11662,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11542,"src":"3612:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":11657,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11502,"src":"3565:16:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":11663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3565:54:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11664,"nodeType":"EmitStatement","src":"3560:59:40"},{"expression":{"argumentTypes":null,"id":11665,"name":"retVal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11561,"src":"3636:6:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":11549,"id":11666,"nodeType":"Return","src":"3629:13:40"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.\n@return bool which represents a successful of the function.","id":11668,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":11545,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11540,"src":"2531:11:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11546,"modifierName":{"argumentTypes":null,"id":11544,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2513:17:40","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2513:30:40"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":11543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11540,"name":"_proposalId","nodeType":"VariableDeclaration","scope":11668,"src":"2468:19:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11539,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2468:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11542,"name":"_param","nodeType":"VariableDeclaration","scope":11668,"src":"2489:13:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":11541,"name":"int256","nodeType":"ElementaryTypeName","src":"2489:6:40","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2467:36:40"},"returnParameters":{"id":11549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11548,"name":"","nodeType":"VariableDeclaration","scope":11668,"src":"2552:4:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":11547,"name":"bool","nodeType":"ElementaryTypeName","src":"2552:4:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2551:6:40"},"scope":11922,"src":"2443:1206:40","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":11700,"nodeType":"Block","src":"4059:237:40","statements":[{"assignments":[11678],"declarations":[{"constant":false,"id":11678,"name":"paramsHash","nodeType":"VariableDeclaration","scope":11700,"src":"4069:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11677,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4069:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11683,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11680,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"4108:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11681,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11672,"src":"4129:8:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11679,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11921,"src":"4090:17:40","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":11682,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4090:48:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4069:69:40"},{"expression":{"argumentTypes":null,"id":11689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11684,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"4148:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11686,"indexExpression":{"argumentTypes":null,"id":11685,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11678,"src":"4159:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4148:22:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"id":11687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":11531,"src":"4148:41:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11688,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11670,"src":"4192:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"4148:63:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":11690,"nodeType":"ExpressionStatement","src":"4148:63:40"},{"expression":{"argumentTypes":null,"id":11696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11691,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"4221:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11693,"indexExpression":{"argumentTypes":null,"id":11692,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11678,"src":"4232:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4221:22:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"id":11694,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":11533,"src":"4221:30:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11695,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11672,"src":"4254:8:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"4221:41:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":11697,"nodeType":"ExpressionStatement","src":"4221:41:40"},{"expression":{"argumentTypes":null,"id":11698,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11678,"src":"4279:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11676,"id":11699,"nodeType":"Return","src":"4272:17:40"}]},"documentation":"@dev Hash the parameters, save them if necessary, and return the hash value\n@param _voteRegisterParams - voting parameters for register global constraint\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":11701,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":11673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11670,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":11701,"src":"3962:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11669,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3962:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11672,"name":"_intVote","nodeType":"VariableDeclaration","scope":11701,"src":"3999:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11671,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3999:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3952:78:40"},"returnParameters":{"id":11676,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11675,"name":"","nodeType":"VariableDeclaration","scope":11701,"src":"4046:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11674,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4046:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4045:9:40"},"scope":11922,"src":"3930:366:40","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11792,"nodeType":"Block","src":"5117:943:40","statements":[{"assignments":[11717],"declarations":[{"constant":false,"id":11717,"name":"votingParams","nodeType":"VariableDeclaration","scope":11792,"src":"5127:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"},"typeName":{"contractScope":null,"id":11716,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11534,"src":"5127:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":11723,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11718,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"5160:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11722,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11720,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5199:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11719,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"5171:27:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":11721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5171:36:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5160:48:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5127:81:40"},{"assignments":[11725],"declarations":[{"constant":false,"id":11725,"name":"intVote","nodeType":"VariableDeclaration","scope":11792,"src":"5219:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11724,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"5219:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":11728,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11726,"name":"votingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"5246:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters memory"}},"id":11727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":11533,"src":"5246:20:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"5219:47:40"},{"assignments":[11730],"declarations":[{"constant":false,"id":11730,"name":"proposalId","nodeType":"VariableDeclaration","scope":11792,"src":"5276:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11729,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5276:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11742,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":11733,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5313:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11734,"name":"votingParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11717,"src":"5316:12:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters memory"}},"id":11735,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":11531,"src":"5316:31:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5349:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5349:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11739,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5369:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5361:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5361:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11731,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"5297:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":11732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"5297:15:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":11741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5297:81:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"5276:102:40"},{"assignments":[11744],"declarations":[{"constant":false,"id":11744,"name":"proposal","nodeType":"VariableDeclaration","scope":11792,"src":"5389:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"},"typeName":{"contractScope":null,"id":11743,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"5389:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}},"value":null,"visibility":"internal"}],"id":11751,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11746,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"5447:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11747,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11707,"src":"5472:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"hexValue":"74727565","id":11748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5500:4:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"id":11749,"name":"_voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11709,"src":"5538:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":11745,"name":"GCProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"5418:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GCProposal_$11517_storage_ptr_$","typeString":"type(struct GlobalConstraintRegistrar.GCProposal storage pointer)"}},"id":11750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["gc","params","addGC","voteToRemoveParams"],"nodeType":"FunctionCall","src":"5418:150:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"5389:179:40"},{"expression":{"argumentTypes":null,"id":11760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11752,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"5579:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11757,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11754,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5610:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11753,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5602:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11755,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5602:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5579:40:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11758,"indexExpression":{"argumentTypes":null,"id":11756,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5620:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5579:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11759,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11744,"src":"5634:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"src":"5579:63:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"id":11761,"nodeType":"ExpressionStatement","src":"5579:63:40"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11764,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"5707:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11763,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5699:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5699:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11766,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5729:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11768,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"5761:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11767,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5753:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5753:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11770,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11705,"src":"5783:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11771,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11707,"src":"5800:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11772,"name":"_voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11709,"src":"5821:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11773,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11711,"src":"5854:16:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11762,"name":"NewGlobalConstraintsProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11482,"src":"5657:28:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_bytes32_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,bytes32,bytes32,string memory)"}},"id":11774,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5657:223:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11775,"nodeType":"EmitStatement","src":"5652:228:40"},{"expression":{"argumentTypes":null,"id":11788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11776,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5890:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":11781,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11778,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11725,"src":"5912:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5904:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5904:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5890:31:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":11782,"indexExpression":{"argumentTypes":null,"id":11780,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"5922:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5890:43:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11784,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5975:5:40","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11785,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5975:12:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":11786,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11703,"src":"6008:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11783,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5936:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":11787,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5936:90:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5890:136:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":11789,"nodeType":"ExpressionStatement","src":"5890:136:40"},{"expression":{"argumentTypes":null,"id":11790,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11730,"src":"6043:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11715,"id":11791,"nodeType":"Return","src":"6036:17:40"}]},"documentation":"@dev propose to add a new global constraint:\n@param _avatar the avatar of the organization that the constraint is proposed for\n@param _gc the address of the global constraint that is being proposed\n@param _params the parameters for the global constraint\n@param _voteToRemoveParams the conditions (on the voting machine) for removing this global constraint\n@param _descriptionHash proposal's description hash\n@return bytes32 -the proposal id","id":11793,"implemented":true,"kind":"function","modifiers":[],"name":"proposeGlobalConstraint","nodeType":"FunctionDefinition","parameters":{"id":11712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11703,"name":"_avatar","nodeType":"VariableDeclaration","scope":11793,"src":"4958:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11702,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4958:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11705,"name":"_gc","nodeType":"VariableDeclaration","scope":11793,"src":"4978:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11704,"name":"address","nodeType":"ElementaryTypeName","src":"4978:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11707,"name":"_params","nodeType":"VariableDeclaration","scope":11793,"src":"4995:15:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4995:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11709,"name":"_voteToRemoveParams","nodeType":"VariableDeclaration","scope":11793,"src":"5016:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11708,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5016:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11711,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11793,"src":"5049:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11710,"name":"string","nodeType":"ElementaryTypeName","src":"5049:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4952:128:40"},"returnParameters":{"id":11715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11714,"name":"","nodeType":"VariableDeclaration","scope":11793,"src":"5104:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11713,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5104:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5103:9:40"},"scope":11922,"src":"4920:1140:40","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11901,"nodeType":"Block","src":"6505:982:40","statements":[{"assignments":[11805],"declarations":[{"constant":false,"id":11805,"name":"controller","nodeType":"VariableDeclaration","scope":11901,"src":"6515:21:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":11804,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"6515:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":11811,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":11807,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6550:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":11808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"6550:13:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":11809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6550:15:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":11806,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"6539:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":11810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6539:27:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"6515:51:40"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11815,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"6624:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11817,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6637:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11816,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6629:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6629:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11813,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11805,"src":"6584:10:40","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":11814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isGlobalConstraintRegistered","nodeType":"MemberAccess","referencedDeclaration":1774,"src":"6584:39:40","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":11819,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6584:62:40","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":11812,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6576:7:40","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":11820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6576:71:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11821,"nodeType":"ExpressionStatement","src":"6576:71:40"},{"assignments":[11823],"declarations":[{"constant":false,"id":11823,"name":"params","nodeType":"VariableDeclaration","scope":11901,"src":"6657:24:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"},"typeName":{"contractScope":null,"id":11822,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11534,"src":"6657:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":11829,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11824,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11538,"src":"6684:10:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11534_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.Parameters storage ref)"}},"id":11828,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11826,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6723:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11825,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"6695:27:40","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":11827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6695:36:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6684:48:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_storage","typeString":"struct GlobalConstraintRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6657:75:40"},{"assignments":[11831],"declarations":[{"constant":false,"id":11831,"name":"intVote","nodeType":"VariableDeclaration","scope":11901,"src":"6742:24:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11830,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"6742:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":11834,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11832,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11823,"src":"6769:6:40","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11534_memory_ptr","typeString":"struct GlobalConstraintRegistrar.Parameters memory"}},"id":11833,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":11533,"src":"6769:14:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"6742:41:40"},{"assignments":[11836],"declarations":[{"constant":false,"id":11836,"name":"proposalId","nodeType":"VariableDeclaration","scope":11901,"src":"6793:18:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6793:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11853,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":11839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6839:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11840,"name":"voteToRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11529,"src":"6850:18:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bytes32_$_$","typeString":"mapping(address => mapping(address => bytes32))"}},"id":11844,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11842,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6877:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6869:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6869:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6850:36:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":11846,"indexExpression":{"argumentTypes":null,"id":11845,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"6887:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6850:41:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11847,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6901:3:40","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":11848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6901:10:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11850,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"6929:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6921:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6921:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":11837,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11831,"src":"6814:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":11838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"6814:15:40","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":11852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6814:133:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6793:154:40"},{"assignments":[11855],"declarations":[{"constant":false,"id":11855,"name":"proposal","nodeType":"VariableDeclaration","scope":11901,"src":"6958:26:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"},"typeName":{"contractScope":null,"id":11854,"name":"GCProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":11517,"src":"6958:10:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal"}},"value":null,"visibility":"internal"}],"id":11862,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11857,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"7016:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"hexValue":"30","id":11858,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7041:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"hexValue":"66616c7365","id":11859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7063:5:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},{"argumentTypes":null,"hexValue":"30","id":11860,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7102:1:40","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11856,"name":"GCProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11517,"src":"6987:10:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_GCProposal_$11517_storage_ptr_$","typeString":"type(struct GlobalConstraintRegistrar.GCProposal storage pointer)"}},"id":11861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["gc","params","addGC","voteToRemoveParams"],"nodeType":"FunctionCall","src":"6987:127:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6958:156:40"},{"expression":{"argumentTypes":null,"id":11871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11863,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11523,"src":"7125:22:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref))"}},"id":11868,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11865,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"7156:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11864,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7148:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11866,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7148:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7125:40:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_GCProposal_$11517_storage_$","typeString":"mapping(bytes32 => struct GlobalConstraintRegistrar.GCProposal storage ref)"}},"id":11869,"indexExpression":{"argumentTypes":null,"id":11867,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7166:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7125:52:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11870,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11855,"src":"7180:8:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_memory_ptr","typeString":"struct GlobalConstraintRegistrar.GCProposal memory"}},"src":"7125:63:40","typeDescriptions":{"typeIdentifier":"t_struct$_GCProposal_$11517_storage","typeString":"struct GlobalConstraintRegistrar.GCProposal storage ref"}},"id":11872,"nodeType":"ExpressionStatement","src":"7125:63:40"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11875,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"7243:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11874,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7235:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7235:16:40","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":11877,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7253:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11879,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11831,"src":"7273:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7265:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11880,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7265:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11881,"name":"_gc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11797,"src":"7283:3:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":11882,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11799,"src":"7288:16:40","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":11873,"name":"RemoveGlobalConstraintsProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11494,"src":"7203:31:40","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,string memory)"}},"id":11883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7203:102:40","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":11884,"nodeType":"EmitStatement","src":"7198:107:40"},{"expression":{"argumentTypes":null,"id":11897,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11885,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"7315:13:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":11890,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11887,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11831,"src":"7337:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":11886,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7329:7:40","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":11888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7329:16:40","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7315:31:40","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":11891,"indexExpression":{"argumentTypes":null,"id":11889,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7347:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7315:43:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":11893,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7401:5:40","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":11894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7401:12:40","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":11895,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11795,"src":"7435:7:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":11892,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"7361:12:40","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":11896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"7361:92:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"7315:138:40","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":11898,"nodeType":"ExpressionStatement","src":"7315:138:40"},{"expression":{"argumentTypes":null,"id":11899,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11836,"src":"7470:10:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11803,"id":11900,"nodeType":"Return","src":"7463:17:40"}]},"documentation":"@dev propose to remove a global constraint:\n@param _avatar the avatar of the organization that the constraint is proposed for\n@param _gc the address of the global constraint that is being proposed\n@param _descriptionHash proposal's description hash\n@return bytes32 -the proposal id","id":11902,"implemented":true,"kind":"function","modifiers":[],"name":"proposeToRemoveGC","nodeType":"FunctionDefinition","parameters":{"id":11800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11795,"name":"_avatar","nodeType":"VariableDeclaration","scope":11902,"src":"6420:14:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":11794,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6420:6:40","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":11797,"name":"_gc","nodeType":"VariableDeclaration","scope":11902,"src":"6436:11:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11796,"name":"address","nodeType":"ElementaryTypeName","src":"6436:7:40","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11799,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":11902,"src":"6449:30:40","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":11798,"name":"string","nodeType":"ElementaryTypeName","src":"6449:6:40","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"6419:61:40"},"returnParameters":{"id":11803,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11802,"name":"","nodeType":"VariableDeclaration","scope":11902,"src":"6496:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11801,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6496:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6495:9:40"},"scope":11922,"src":"6393:1094:40","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":11920,"nodeType":"Block","src":"7850:84:40","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11914,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11904,"src":"7895:19:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":11915,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11906,"src":"7916:8:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":11912,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7878:3:40","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":11913,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7878:16:40","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":11916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7878:47:40","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":11911,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7868:9:40","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":11917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7868:58:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":11918,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7867:60:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11910,"id":11919,"nodeType":"Return","src":"7860:67:40"}]},"documentation":"@dev Hash the parameters and return the hash value\n@param _voteRegisterParams - voting parameters\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":11921,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":11907,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11904,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":11921,"src":"7748:27:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7748:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":11906,"name":"_intVote","nodeType":"VariableDeclaration","scope":11921,"src":"7785:25:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":11905,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"7785:16:40","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"7738:78:40"},"returnParameters":{"id":11910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11909,"name":"","nodeType":"VariableDeclaration","scope":11921,"src":"7837:7:40","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11908,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7837:7:40","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7836:9:40"},"scope":11922,"src":"7712:222:40","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":11923,"src":"419:7517:40"}],"src":"0:7937:40"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.187Z","devdoc":{"details":"The scheme is used to register or remove new global constraints","methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_param":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"},"return":"bool which represents a successful of the function."},"getParametersHash(bytes32,address)":{"details":"Hash the parameters and return the hash value","params":{"_intVote":"- voting machine contract.","_voteRegisterParams":"- voting parameters"},"return":"bytes32 -the parameters hash"},"proposeGlobalConstraint(address,address,bytes32,bytes32,string)":{"details":"propose to add a new global constraint:","params":{"_avatar":"the avatar of the organization that the constraint is proposed for","_descriptionHash":"proposal's description hash","_gc":"the address of the global constraint that is being proposed","_params":"the parameters for the global constraint","_voteToRemoveParams":"the conditions (on the voting machine) for removing this global constraint"},"return":"bytes32 -the proposal id"},"proposeToRemoveGC(address,address,string)":{"details":"propose to remove a global constraint:","params":{"_avatar":"the avatar of the organization that the constraint is proposed for","_descriptionHash":"proposal's description hash","_gc":"the address of the global constraint that is being proposed"},"return":"bytes32 -the proposal id"},"setParameters(bytes32,address)":{"details":"Hash the parameters, save them if necessary, and return the hash value","params":{"_intVote":"- voting machine contract.","_voteRegisterParams":"- voting parameters for register global constraint"},"return":"bytes32 -the parameters hash"}},"title":"A scheme to manage global constraint for organizations"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/IERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/IERC20.json new file mode 100644 index 00000000..978e294e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/IERC20.json @@ -0,0 +1 @@ +{"contractName":"IERC20","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP. Does not include the optional functions; to access them see {ERC20Detailed}.\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. * This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a {Transfer} event.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.0;\n\n/**\n * @dev Interface of the ERC20 standard as defined in the EIP. Does not include\n * the optional functions; to access them see {ERC20Detailed}.\n */\ninterface IERC20 {\n /**\n * @dev Returns the amount of tokens in existence.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns the amount of tokens owned by `account`.\n */\n function balanceOf(address account) external view returns (uint256);\n\n /**\n * @dev Moves `amount` tokens from the caller's account to `recipient`.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transfer(address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Returns the remaining number of tokens that `spender` will be\n * allowed to spend on behalf of `owner` through {transferFrom}. This is\n * zero by default.\n *\n * This value changes when {approve} or {transferFrom} are called.\n */\n function allowance(address owner, address spender) external view returns (uint256);\n\n /**\n * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\n * that someone may use both the old and the new allowance by unfortunate\n * transaction ordering. One possible solution to mitigate this race\n * condition is to first reduce the spender's allowance to 0 and set the\n * desired value afterwards:\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n *\n * Emits an {Approval} event.\n */\n function approve(address spender, uint256 amount) external returns (bool);\n\n /**\n * @dev Moves `amount` tokens from `sender` to `recipient` using the\n * allowance mechanism. `amount` is then deducted from the caller's\n * allowance.\n *\n * Returns a boolean value indicating whether the operation succeeded.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);\n\n /**\n * @dev Emitted when `value` tokens are moved from one account (`from`) to\n * another (`to`).\n *\n * Note that `value` may be zero.\n */\n event Transfer(address indexed from, address indexed to, uint256 value);\n\n /**\n * @dev Emitted when the allowance of a `spender` for an `owner` is set by\n * a call to {approve}. `value` is the new allowance.\n */\n event Approval(address indexed owner, address indexed spender, uint256 value);\n}\n","sourcePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[21017]},"id":21018,"nodeType":"SourceUnit","nodes":[{"id":20950,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:70"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":"@dev Interface of the ERC20 standard as defined in the EIP. Does not include\nthe optional functions; to access them see {ERC20Detailed}.","fullyImplemented":false,"id":21017,"linearizedBaseContracts":[21017],"name":"IERC20","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":"@dev Returns the amount of tokens in existence.","id":20955,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":20951,"nodeType":"ParameterList","parameters":[],"src":"290:2:70"},"returnParameters":{"id":20954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20953,"name":"","nodeType":"VariableDeclaration","scope":20955,"src":"316:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20952,"name":"uint256","nodeType":"ElementaryTypeName","src":"316:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"315:9:70"},"scope":21017,"src":"270:55:70","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Returns the amount of tokens owned by `account`.","id":20962,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":20958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20957,"name":"account","nodeType":"VariableDeclaration","scope":20962,"src":"427:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20956,"name":"address","nodeType":"ElementaryTypeName","src":"427:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"426:17:70"},"returnParameters":{"id":20961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20960,"name":"","nodeType":"VariableDeclaration","scope":20962,"src":"467:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20959,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"466:9:70"},"scope":21017,"src":"408:68:70","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Moves `amount` tokens from the caller's account to `recipient`.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.","id":20971,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":20967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20964,"name":"recipient","nodeType":"VariableDeclaration","scope":20971,"src":"714:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20963,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20966,"name":"amount","nodeType":"VariableDeclaration","scope":20971,"src":"733:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20965,"name":"uint256","nodeType":"ElementaryTypeName","src":"733:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"713:35:70"},"returnParameters":{"id":20970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20969,"name":"","nodeType":"VariableDeclaration","scope":20971,"src":"767:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20968,"name":"bool","nodeType":"ElementaryTypeName","src":"767:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"766:6:70"},"scope":21017,"src":"696:77:70","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Returns the remaining number of tokens that `spender` will be\nallowed to spend on behalf of `owner` through {transferFrom}. This is\nzero by default.\n * This value changes when {approve} or {transferFrom} are called.","id":20980,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":20976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20973,"name":"owner","nodeType":"VariableDeclaration","scope":20980,"src":"1067:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20972,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20975,"name":"spender","nodeType":"VariableDeclaration","scope":20980,"src":"1082:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20974,"name":"address","nodeType":"ElementaryTypeName","src":"1082:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1066:32:70"},"returnParameters":{"id":20979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20978,"name":"","nodeType":"VariableDeclaration","scope":20980,"src":"1122:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1122:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1121:9:70"},"scope":21017,"src":"1048:83:70","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n * Returns a boolean value indicating whether the operation succeeded.\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\nthat someone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race\ncondition is to first reduce the spender's allowance to 0 and set the\ndesired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * Emits an {Approval} event.","id":20989,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":20985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20982,"name":"spender","nodeType":"VariableDeclaration","scope":20989,"src":"1801:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20981,"name":"address","nodeType":"ElementaryTypeName","src":"1801:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20984,"name":"amount","nodeType":"VariableDeclaration","scope":20989,"src":"1818:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20983,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1800:33:70"},"returnParameters":{"id":20988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20987,"name":"","nodeType":"VariableDeclaration","scope":20989,"src":"1852:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20986,"name":"bool","nodeType":"ElementaryTypeName","src":"1852:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1851:6:70"},"scope":21017,"src":"1784:74:70","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Moves `amount` tokens from `sender` to `recipient` using the\nallowance mechanism. `amount` is then deducted from the caller's\nallowance.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.","id":21000,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":20996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20991,"name":"sender","nodeType":"VariableDeclaration","scope":21000,"src":"2187:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20990,"name":"address","nodeType":"ElementaryTypeName","src":"2187:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20993,"name":"recipient","nodeType":"VariableDeclaration","scope":21000,"src":"2203:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20992,"name":"address","nodeType":"ElementaryTypeName","src":"2203:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20995,"name":"amount","nodeType":"VariableDeclaration","scope":21000,"src":"2222:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2222:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2186:51:70"},"returnParameters":{"id":20999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20998,"name":"","nodeType":"VariableDeclaration","scope":21000,"src":"2256:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20997,"name":"bool","nodeType":"ElementaryTypeName","src":"2256:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2255:6:70"},"scope":21017,"src":"2165:97:70","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"anonymous":false,"documentation":"@dev Emitted when `value` tokens are moved from one account (`from`) to\nanother (`to`).\n * Note that `value` may be zero.","id":21008,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":21007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21002,"indexed":true,"name":"from","nodeType":"VariableDeclaration","scope":21008,"src":"2446:20:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21001,"name":"address","nodeType":"ElementaryTypeName","src":"2446:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21004,"indexed":true,"name":"to","nodeType":"VariableDeclaration","scope":21008,"src":"2468:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21003,"name":"address","nodeType":"ElementaryTypeName","src":"2468:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21006,"indexed":false,"name":"value","nodeType":"VariableDeclaration","scope":21008,"src":"2488:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21005,"name":"uint256","nodeType":"ElementaryTypeName","src":"2488:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2445:57:70"},"src":"2431:72:70"},{"anonymous":false,"documentation":"@dev Emitted when the allowance of a `spender` for an `owner` is set by\na call to {approve}. `value` is the new allowance.","id":21016,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":21015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21010,"indexed":true,"name":"owner","nodeType":"VariableDeclaration","scope":21016,"src":"2677:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21009,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21012,"indexed":true,"name":"spender","nodeType":"VariableDeclaration","scope":21016,"src":"2700:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21011,"name":"address","nodeType":"ElementaryTypeName","src":"2700:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21014,"indexed":false,"name":"value","nodeType":"VariableDeclaration","scope":21016,"src":"2725:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21013,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2676:63:70"},"src":"2662:78:70"}],"scope":21018,"src":"176:2566:70"}],"src":"0:2743:70"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","exportedSymbols":{"IERC20":[21017]},"id":21018,"nodeType":"SourceUnit","nodes":[{"id":20950,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:70"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":"@dev Interface of the ERC20 standard as defined in the EIP. Does not include\nthe optional functions; to access them see {ERC20Detailed}.","fullyImplemented":false,"id":21017,"linearizedBaseContracts":[21017],"name":"IERC20","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":"@dev Returns the amount of tokens in existence.","id":20955,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":20951,"nodeType":"ParameterList","parameters":[],"src":"290:2:70"},"returnParameters":{"id":20954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20953,"name":"","nodeType":"VariableDeclaration","scope":20955,"src":"316:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20952,"name":"uint256","nodeType":"ElementaryTypeName","src":"316:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"315:9:70"},"scope":21017,"src":"270:55:70","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Returns the amount of tokens owned by `account`.","id":20962,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":20958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20957,"name":"account","nodeType":"VariableDeclaration","scope":20962,"src":"427:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20956,"name":"address","nodeType":"ElementaryTypeName","src":"427:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"426:17:70"},"returnParameters":{"id":20961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20960,"name":"","nodeType":"VariableDeclaration","scope":20962,"src":"467:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20959,"name":"uint256","nodeType":"ElementaryTypeName","src":"467:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"466:9:70"},"scope":21017,"src":"408:68:70","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Moves `amount` tokens from the caller's account to `recipient`.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.","id":20971,"implemented":false,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":20967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20964,"name":"recipient","nodeType":"VariableDeclaration","scope":20971,"src":"714:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20963,"name":"address","nodeType":"ElementaryTypeName","src":"714:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20966,"name":"amount","nodeType":"VariableDeclaration","scope":20971,"src":"733:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20965,"name":"uint256","nodeType":"ElementaryTypeName","src":"733:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"713:35:70"},"returnParameters":{"id":20970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20969,"name":"","nodeType":"VariableDeclaration","scope":20971,"src":"767:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20968,"name":"bool","nodeType":"ElementaryTypeName","src":"767:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"766:6:70"},"scope":21017,"src":"696:77:70","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Returns the remaining number of tokens that `spender` will be\nallowed to spend on behalf of `owner` through {transferFrom}. This is\nzero by default.\n * This value changes when {approve} or {transferFrom} are called.","id":20980,"implemented":false,"kind":"function","modifiers":[],"name":"allowance","nodeType":"FunctionDefinition","parameters":{"id":20976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20973,"name":"owner","nodeType":"VariableDeclaration","scope":20980,"src":"1067:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20972,"name":"address","nodeType":"ElementaryTypeName","src":"1067:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20975,"name":"spender","nodeType":"VariableDeclaration","scope":20980,"src":"1082:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20974,"name":"address","nodeType":"ElementaryTypeName","src":"1082:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1066:32:70"},"returnParameters":{"id":20979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20978,"name":"","nodeType":"VariableDeclaration","scope":20980,"src":"1122:7:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20977,"name":"uint256","nodeType":"ElementaryTypeName","src":"1122:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1121:9:70"},"scope":21017,"src":"1048:83:70","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n * Returns a boolean value indicating whether the operation succeeded.\n * IMPORTANT: Beware that changing an allowance with this method brings the risk\nthat someone may use both the old and the new allowance by unfortunate\ntransaction ordering. One possible solution to mitigate this race\ncondition is to first reduce the spender's allowance to 0 and set the\ndesired value afterwards:\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n * Emits an {Approval} event.","id":20989,"implemented":false,"kind":"function","modifiers":[],"name":"approve","nodeType":"FunctionDefinition","parameters":{"id":20985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20982,"name":"spender","nodeType":"VariableDeclaration","scope":20989,"src":"1801:15:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20981,"name":"address","nodeType":"ElementaryTypeName","src":"1801:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20984,"name":"amount","nodeType":"VariableDeclaration","scope":20989,"src":"1818:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20983,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1800:33:70"},"returnParameters":{"id":20988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20987,"name":"","nodeType":"VariableDeclaration","scope":20989,"src":"1852:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20986,"name":"bool","nodeType":"ElementaryTypeName","src":"1852:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1851:6:70"},"scope":21017,"src":"1784:74:70","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev Moves `amount` tokens from `sender` to `recipient` using the\nallowance mechanism. `amount` is then deducted from the caller's\nallowance.\n * Returns a boolean value indicating whether the operation succeeded.\n * Emits a {Transfer} event.","id":21000,"implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nodeType":"FunctionDefinition","parameters":{"id":20996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20991,"name":"sender","nodeType":"VariableDeclaration","scope":21000,"src":"2187:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20990,"name":"address","nodeType":"ElementaryTypeName","src":"2187:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20993,"name":"recipient","nodeType":"VariableDeclaration","scope":21000,"src":"2203:17:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20992,"name":"address","nodeType":"ElementaryTypeName","src":"2203:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20995,"name":"amount","nodeType":"VariableDeclaration","scope":21000,"src":"2222:14:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20994,"name":"uint256","nodeType":"ElementaryTypeName","src":"2222:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2186:51:70"},"returnParameters":{"id":20999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20998,"name":"","nodeType":"VariableDeclaration","scope":21000,"src":"2256:4:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20997,"name":"bool","nodeType":"ElementaryTypeName","src":"2256:4:70","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2255:6:70"},"scope":21017,"src":"2165:97:70","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"anonymous":false,"documentation":"@dev Emitted when `value` tokens are moved from one account (`from`) to\nanother (`to`).\n * Note that `value` may be zero.","id":21008,"name":"Transfer","nodeType":"EventDefinition","parameters":{"id":21007,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21002,"indexed":true,"name":"from","nodeType":"VariableDeclaration","scope":21008,"src":"2446:20:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21001,"name":"address","nodeType":"ElementaryTypeName","src":"2446:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21004,"indexed":true,"name":"to","nodeType":"VariableDeclaration","scope":21008,"src":"2468:18:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21003,"name":"address","nodeType":"ElementaryTypeName","src":"2468:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21006,"indexed":false,"name":"value","nodeType":"VariableDeclaration","scope":21008,"src":"2488:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21005,"name":"uint256","nodeType":"ElementaryTypeName","src":"2488:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2445:57:70"},"src":"2431:72:70"},{"anonymous":false,"documentation":"@dev Emitted when the allowance of a `spender` for an `owner` is set by\na call to {approve}. `value` is the new allowance.","id":21016,"name":"Approval","nodeType":"EventDefinition","parameters":{"id":21015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21010,"indexed":true,"name":"owner","nodeType":"VariableDeclaration","scope":21016,"src":"2677:21:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21009,"name":"address","nodeType":"ElementaryTypeName","src":"2677:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21012,"indexed":true,"name":"spender","nodeType":"VariableDeclaration","scope":21016,"src":"2700:23:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":21011,"name":"address","nodeType":"ElementaryTypeName","src":"2700:7:70","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":21014,"indexed":false,"name":"value","nodeType":"VariableDeclaration","scope":21016,"src":"2725:13:70","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":21013,"name":"uint256","nodeType":"ElementaryTypeName","src":"2725:7:70","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2676:63:70"},"src":"2662:78:70"}],"scope":21018,"src":"176:2566:70"}],"src":"0:2743:70"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.273Z","devdoc":{"details":"Interface of the ERC20 standard as defined in the EIP. Does not include the optional functions; to access them see {ERC20Detailed}.","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. * This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. * Returns a boolean value indicating whether the operation succeeded. * IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `recipient`. * Returns a boolean value indicating whether the operation succeeded. * Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `sender` to `recipient` using the allowance mechanism. `amount` is then deducted from the caller's allowance. * Returns a boolean value indicating whether the operation succeeded. * Emits a {Transfer} event."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/IntVoteInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/IntVoteInterface.json new file mode 100644 index 00000000..efedee5d --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/IntVoteInterface.json @@ -0,0 +1 @@ +{"contractName":"IntVoteInterface","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"}],"name":"CancelProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"}],"name":"CancelVoting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_decision","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalReputation","type":"uint256"}],"name":"ExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"VoteProposal","type":"event"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"_proposalParameters","type":"bytes32"},{"internalType":"address","name":"_proposer","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_rep","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"cancelVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getNumberOfChoices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"isVotable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_choice","type":"uint256"}],"name":"voteStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isAbstainAllow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"getAllowedRangeOfChoices","outputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"CancelVoting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_decision\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_totalReputation\",\"type\":\"uint256\"}],\"name\":\"ExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"VoteProposal\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"cancelVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllowedRangeOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAbstainAllow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"isVotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalParameters\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rep\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_choice\",\"type\":\"uint256\"}],\"name\":\"voteStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAllowedRangeOfChoices()\":{\"details\":\"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\",\"return\":\"min - minimum number of choices max - maximum number of choices\"},\"isAbstainAllow()\":{\"details\":\"isAbstainAllow returns if the voting machine allow abstain (0)\",\"return\":\"bool true or false\"},\"propose(uint256,bytes32,address,address)\":{\"details\":\"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.\",\"params\":{\"_numOfChoices\":\"number of voting choices\",\"_organization\":\"address - if this address is zero the msg.sender will be used as the organization address.\",\"_proposalParameters\":\"defines the parameters of the voting machine used for this proposal\",\"_proposer\":\"address\"},\"return\":\"proposal's id.\"},\"voteStatus(bytes32,uint256)\":{\"details\":\"voteStatus returns the reputation voted for a proposal for a specific voting choice.\",\"params\":{\"_choice\":\"the index in the\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"voted reputation for the given choice\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":\"IntVoteInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.11;\n\ninterface IntVoteInterface {\n //When implementing this interface please do not only override function and modifier,\n //but also to keep the modifiers on the overridden functions.\n modifier onlyProposalOwner(bytes32 _proposalId) {revert(); _;}\n modifier votable(bytes32 _proposalId) {revert(); _;}\n\n event NewProposal(\n bytes32 indexed _proposalId,\n address indexed _organization,\n uint256 _numOfChoices,\n address _proposer,\n bytes32 _paramsHash\n );\n\n event ExecuteProposal(bytes32 indexed _proposalId,\n address indexed _organization,\n uint256 _decision,\n uint256 _totalReputation\n );\n\n event VoteProposal(\n bytes32 indexed _proposalId,\n address indexed _organization,\n address indexed _voter,\n uint256 _vote,\n uint256 _reputation\n );\n\n event CancelProposal(bytes32 indexed _proposalId, address indexed _organization );\n event CancelVoting(bytes32 indexed _proposalId, address indexed _organization, address indexed _voter);\n\n /**\n * @dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\n * generated by calculating keccak256 of a incremented counter.\n * @param _numOfChoices number of voting choices\n * @param _proposalParameters defines the parameters of the voting machine used for this proposal\n * @param _proposer address\n * @param _organization address - if this address is zero the msg.sender will be used as the organization address.\n * @return proposal's id.\n */\n function propose(\n uint256 _numOfChoices,\n bytes32 _proposalParameters,\n address _proposer,\n address _organization\n ) external returns(bytes32);\n\n function vote(\n bytes32 _proposalId,\n uint256 _vote,\n uint256 _rep,\n address _voter\n )\n external\n returns(bool);\n\n function cancelVote(bytes32 _proposalId) external;\n\n function getNumberOfChoices(bytes32 _proposalId) external view returns(uint256);\n\n function isVotable(bytes32 _proposalId) external view returns(bool);\n\n /**\n * @dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n * @param _proposalId the ID of the proposal\n * @param _choice the index in the\n * @return voted reputation for the given choice\n */\n function voteStatus(bytes32 _proposalId, uint256 _choice) external view returns(uint256);\n\n /**\n * @dev isAbstainAllow returns if the voting machine allow abstain (0)\n * @return bool true or false\n */\n function isAbstainAllow() external pure returns(bool);\n\n /**\n * @dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n * @return min - minimum number of choices\n max - maximum number of choices\n */\n function getAllowedRangeOfChoices() external pure returns(uint256 min, uint256 max);\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","exportedSymbols":{"IntVoteInterface":[19816]},"id":19817,"nodeType":"SourceUnit","nodes":[{"id":19683,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:59"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":19816,"linearizedBaseContracts":[19816],"name":"IntVoteInterface","nodeType":"ContractDefinition","nodes":[{"body":{"id":19691,"nodeType":"Block","src":"263:14:59","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":19687,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[21112,21113],"referencedDeclaration":21112,"src":"264:6:59","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":19688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"264:8:59","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19689,"nodeType":"ExpressionStatement","src":"264:8:59"},{"id":19690,"nodeType":"PlaceholderStatement","src":"274:1:59"}]},"documentation":null,"id":19692,"name":"onlyProposalOwner","nodeType":"ModifierDefinition","parameters":{"id":19686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19685,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19692,"src":"242:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"241:21:59"},"src":"215:62:59","visibility":"internal"},{"body":{"id":19700,"nodeType":"Block","src":"320:14:59","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":19696,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[21112,21113],"referencedDeclaration":21112,"src":"321:6:59","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":19697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"321:8:59","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19698,"nodeType":"ExpressionStatement","src":"321:8:59"},{"id":19699,"nodeType":"PlaceholderStatement","src":"331:1:59"}]},"documentation":null,"id":19701,"name":"votable","nodeType":"ModifierDefinition","parameters":{"id":19695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19694,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19701,"src":"299:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"298:21:59"},"src":"282:52:59","visibility":"internal"},{"anonymous":false,"documentation":null,"id":19713,"name":"NewProposal","nodeType":"EventDefinition","parameters":{"id":19712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19703,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19713,"src":"367:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19702,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19705,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19713,"src":"404:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19704,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19707,"indexed":false,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":19713,"src":"443:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19706,"name":"uint256","nodeType":"ElementaryTypeName","src":"443:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19709,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":19713,"src":"474:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19708,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19711,"indexed":false,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":19713,"src":"501:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"501:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"357:169:59"},"src":"340:187:59"},{"anonymous":false,"documentation":null,"id":19723,"name":"ExecuteProposal","nodeType":"EventDefinition","parameters":{"id":19722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19715,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19723,"src":"555:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"555:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19717,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19723,"src":"592:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19716,"name":"address","nodeType":"ElementaryTypeName","src":"592:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19719,"indexed":false,"name":"_decision","nodeType":"VariableDeclaration","scope":19723,"src":"631:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19718,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19721,"indexed":false,"name":"_totalReputation","nodeType":"VariableDeclaration","scope":19723,"src":"658:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19720,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"554:134:59"},"src":"533:156:59"},{"anonymous":false,"documentation":null,"id":19735,"name":"VoteProposal","nodeType":"EventDefinition","parameters":{"id":19734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19725,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19735,"src":"723:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19727,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19735,"src":"760:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19726,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19729,"indexed":true,"name":"_voter","nodeType":"VariableDeclaration","scope":19735,"src":"799:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19728,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19731,"indexed":false,"name":"_vote","nodeType":"VariableDeclaration","scope":19735,"src":"831:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19730,"name":"uint256","nodeType":"ElementaryTypeName","src":"831:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19733,"indexed":false,"name":"_reputation","nodeType":"VariableDeclaration","scope":19735,"src":"854:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19732,"name":"uint256","nodeType":"ElementaryTypeName","src":"854:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"713:166:59"},"src":"695:185:59"},{"anonymous":false,"documentation":null,"id":19741,"name":"CancelProposal","nodeType":"EventDefinition","parameters":{"id":19740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19737,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19741,"src":"907:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"907:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19739,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19741,"src":"936:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19738,"name":"address","nodeType":"ElementaryTypeName","src":"936:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"906:61:59"},"src":"886:82:59"},{"anonymous":false,"documentation":null,"id":19749,"name":"CancelVoting","nodeType":"EventDefinition","parameters":{"id":19748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19743,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19749,"src":"992:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"992:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19745,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19749,"src":"1021:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19744,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19747,"indexed":true,"name":"_voter","nodeType":"VariableDeclaration","scope":19749,"src":"1052:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19746,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"991:84:59"},"src":"973:103:59"},{"body":null,"documentation":"@dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\ngenerated by calculating keccak256 of a incremented counter.\n@param _numOfChoices number of voting choices\n@param _proposalParameters defines the parameters of the voting machine used for this proposal\n@param _proposer address\n@param _organization address - if this address is zero the msg.sender will be used as the organization address.\n@return proposal's id.","id":19762,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":19758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19751,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":19762,"src":"1637:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19750,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19753,"name":"_proposalParameters","nodeType":"VariableDeclaration","scope":19762,"src":"1668:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1668:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19755,"name":"_proposer","nodeType":"VariableDeclaration","scope":19762,"src":"1705:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19754,"name":"address","nodeType":"ElementaryTypeName","src":"1705:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19757,"name":"_organization","nodeType":"VariableDeclaration","scope":19762,"src":"1732:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19756,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1627:136:59"},"returnParameters":{"id":19761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19760,"name":"","nodeType":"VariableDeclaration","scope":19762,"src":"1781:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1781:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1780:9:59"},"scope":19816,"src":"1611:179:59","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19775,"implemented":false,"kind":"function","modifiers":[],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":19771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19764,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19775,"src":"1819:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19766,"name":"_vote","nodeType":"VariableDeclaration","scope":19775,"src":"1848:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19765,"name":"uint256","nodeType":"ElementaryTypeName","src":"1848:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19768,"name":"_rep","nodeType":"VariableDeclaration","scope":19775,"src":"1871:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19767,"name":"uint256","nodeType":"ElementaryTypeName","src":"1871:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19770,"name":"_voter","nodeType":"VariableDeclaration","scope":19775,"src":"1893:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19769,"name":"address","nodeType":"ElementaryTypeName","src":"1893:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1809:104:59"},"returnParameters":{"id":19774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19773,"name":"","nodeType":"VariableDeclaration","scope":19775,"src":"1939:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19772,"name":"bool","nodeType":"ElementaryTypeName","src":"1939:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1938:6:59"},"scope":19816,"src":"1796:149:59","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19780,"implemented":false,"kind":"function","modifiers":[],"name":"cancelVote","nodeType":"FunctionDefinition","parameters":{"id":19778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19777,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19780,"src":"1971:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1971:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1970:21:59"},"returnParameters":{"id":19779,"nodeType":"ParameterList","parameters":[],"src":"2000:0:59"},"scope":19816,"src":"1951:50:59","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19787,"implemented":false,"kind":"function","modifiers":[],"name":"getNumberOfChoices","nodeType":"FunctionDefinition","parameters":{"id":19783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19782,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19787,"src":"2035:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2035:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2034:21:59"},"returnParameters":{"id":19786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19785,"name":"","nodeType":"VariableDeclaration","scope":19787,"src":"2078:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19784,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2077:9:59"},"scope":19816,"src":"2007:80:59","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19794,"implemented":false,"kind":"function","modifiers":[],"name":"isVotable","nodeType":"FunctionDefinition","parameters":{"id":19790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19789,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19794,"src":"2112:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2112:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2111:21:59"},"returnParameters":{"id":19793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19792,"name":"","nodeType":"VariableDeclaration","scope":19794,"src":"2155:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19791,"name":"bool","nodeType":"ElementaryTypeName","src":"2155:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2154:6:59"},"scope":19816,"src":"2093:68:59","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n@param _proposalId the ID of the proposal\n@param _choice the index in the\n@return voted reputation for the given choice","id":19803,"implemented":false,"kind":"function","modifiers":[],"name":"voteStatus","nodeType":"FunctionDefinition","parameters":{"id":19799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19796,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19803,"src":"2441:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2441:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19798,"name":"_choice","nodeType":"VariableDeclaration","scope":19803,"src":"2462:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19797,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2440:38:59"},"returnParameters":{"id":19802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19801,"name":"","nodeType":"VariableDeclaration","scope":19803,"src":"2501:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19800,"name":"uint256","nodeType":"ElementaryTypeName","src":"2501:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2500:9:59"},"scope":19816,"src":"2421:89:59","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev isAbstainAllow returns if the voting machine allow abstain (0)\n@return bool true or false","id":19808,"implemented":false,"kind":"function","modifiers":[],"name":"isAbstainAllow","nodeType":"FunctionDefinition","parameters":{"id":19804,"nodeType":"ParameterList","parameters":[],"src":"2664:2:59"},"returnParameters":{"id":19807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19806,"name":"","nodeType":"VariableDeclaration","scope":19808,"src":"2689:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19805,"name":"bool","nodeType":"ElementaryTypeName","src":"2689:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2688:6:59"},"scope":19816,"src":"2641:54:59","stateMutability":"pure","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n@return min - minimum number of choices\nmax - maximum number of choices","id":19815,"implemented":false,"kind":"function","modifiers":[],"name":"getAllowedRangeOfChoices","nodeType":"FunctionDefinition","parameters":{"id":19809,"nodeType":"ParameterList","parameters":[],"src":"2940:2:59"},"returnParameters":{"id":19814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19811,"name":"min","nodeType":"VariableDeclaration","scope":19815,"src":"2965:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19810,"name":"uint256","nodeType":"ElementaryTypeName","src":"2965:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19813,"name":"max","nodeType":"VariableDeclaration","scope":19815,"src":"2978:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2978:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2964:26:59"},"scope":19816,"src":"2907:84:59","stateMutability":"pure","superFunction":null,"visibility":"external"}],"scope":19817,"src":"26:2967:59"}],"src":"0:2994:59"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","exportedSymbols":{"IntVoteInterface":[19816]},"id":19817,"nodeType":"SourceUnit","nodes":[{"id":19683,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:59"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":19816,"linearizedBaseContracts":[19816],"name":"IntVoteInterface","nodeType":"ContractDefinition","nodes":[{"body":{"id":19691,"nodeType":"Block","src":"263:14:59","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":19687,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[21112,21113],"referencedDeclaration":21112,"src":"264:6:59","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":19688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"264:8:59","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19689,"nodeType":"ExpressionStatement","src":"264:8:59"},{"id":19690,"nodeType":"PlaceholderStatement","src":"274:1:59"}]},"documentation":null,"id":19692,"name":"onlyProposalOwner","nodeType":"ModifierDefinition","parameters":{"id":19686,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19685,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19692,"src":"242:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19684,"name":"bytes32","nodeType":"ElementaryTypeName","src":"242:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"241:21:59"},"src":"215:62:59","visibility":"internal"},{"body":{"id":19700,"nodeType":"Block","src":"320:14:59","statements":[{"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":19696,"name":"revert","nodeType":"Identifier","overloadedDeclarations":[21112,21113],"referencedDeclaration":21112,"src":"321:6:59","typeDescriptions":{"typeIdentifier":"t_function_revert_pure$__$returns$__$","typeString":"function () pure"}},"id":19697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"321:8:59","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19698,"nodeType":"ExpressionStatement","src":"321:8:59"},{"id":19699,"nodeType":"PlaceholderStatement","src":"331:1:59"}]},"documentation":null,"id":19701,"name":"votable","nodeType":"ModifierDefinition","parameters":{"id":19695,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19694,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19701,"src":"299:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19693,"name":"bytes32","nodeType":"ElementaryTypeName","src":"299:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"298:21:59"},"src":"282:52:59","visibility":"internal"},{"anonymous":false,"documentation":null,"id":19713,"name":"NewProposal","nodeType":"EventDefinition","parameters":{"id":19712,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19703,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19713,"src":"367:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19702,"name":"bytes32","nodeType":"ElementaryTypeName","src":"367:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19705,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19713,"src":"404:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19704,"name":"address","nodeType":"ElementaryTypeName","src":"404:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19707,"indexed":false,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":19713,"src":"443:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19706,"name":"uint256","nodeType":"ElementaryTypeName","src":"443:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19709,"indexed":false,"name":"_proposer","nodeType":"VariableDeclaration","scope":19713,"src":"474:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19708,"name":"address","nodeType":"ElementaryTypeName","src":"474:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19711,"indexed":false,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":19713,"src":"501:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19710,"name":"bytes32","nodeType":"ElementaryTypeName","src":"501:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"357:169:59"},"src":"340:187:59"},{"anonymous":false,"documentation":null,"id":19723,"name":"ExecuteProposal","nodeType":"EventDefinition","parameters":{"id":19722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19715,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19723,"src":"555:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19714,"name":"bytes32","nodeType":"ElementaryTypeName","src":"555:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19717,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19723,"src":"592:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19716,"name":"address","nodeType":"ElementaryTypeName","src":"592:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19719,"indexed":false,"name":"_decision","nodeType":"VariableDeclaration","scope":19723,"src":"631:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19718,"name":"uint256","nodeType":"ElementaryTypeName","src":"631:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19721,"indexed":false,"name":"_totalReputation","nodeType":"VariableDeclaration","scope":19723,"src":"658:24:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19720,"name":"uint256","nodeType":"ElementaryTypeName","src":"658:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"554:134:59"},"src":"533:156:59"},{"anonymous":false,"documentation":null,"id":19735,"name":"VoteProposal","nodeType":"EventDefinition","parameters":{"id":19734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19725,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19735,"src":"723:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19724,"name":"bytes32","nodeType":"ElementaryTypeName","src":"723:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19727,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19735,"src":"760:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19726,"name":"address","nodeType":"ElementaryTypeName","src":"760:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19729,"indexed":true,"name":"_voter","nodeType":"VariableDeclaration","scope":19735,"src":"799:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19728,"name":"address","nodeType":"ElementaryTypeName","src":"799:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19731,"indexed":false,"name":"_vote","nodeType":"VariableDeclaration","scope":19735,"src":"831:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19730,"name":"uint256","nodeType":"ElementaryTypeName","src":"831:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19733,"indexed":false,"name":"_reputation","nodeType":"VariableDeclaration","scope":19735,"src":"854:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19732,"name":"uint256","nodeType":"ElementaryTypeName","src":"854:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"713:166:59"},"src":"695:185:59"},{"anonymous":false,"documentation":null,"id":19741,"name":"CancelProposal","nodeType":"EventDefinition","parameters":{"id":19740,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19737,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19741,"src":"907:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19736,"name":"bytes32","nodeType":"ElementaryTypeName","src":"907:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19739,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19741,"src":"936:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19738,"name":"address","nodeType":"ElementaryTypeName","src":"936:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"906:61:59"},"src":"886:82:59"},{"anonymous":false,"documentation":null,"id":19749,"name":"CancelVoting","nodeType":"EventDefinition","parameters":{"id":19748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19743,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19749,"src":"992:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"992:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19745,"indexed":true,"name":"_organization","nodeType":"VariableDeclaration","scope":19749,"src":"1021:29:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19744,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19747,"indexed":true,"name":"_voter","nodeType":"VariableDeclaration","scope":19749,"src":"1052:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19746,"name":"address","nodeType":"ElementaryTypeName","src":"1052:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"991:84:59"},"src":"973:103:59"},{"body":null,"documentation":"@dev register a new proposal with the given parameters. Every proposal has a unique ID which is being\ngenerated by calculating keccak256 of a incremented counter.\n@param _numOfChoices number of voting choices\n@param _proposalParameters defines the parameters of the voting machine used for this proposal\n@param _proposer address\n@param _organization address - if this address is zero the msg.sender will be used as the organization address.\n@return proposal's id.","id":19762,"implemented":false,"kind":"function","modifiers":[],"name":"propose","nodeType":"FunctionDefinition","parameters":{"id":19758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19751,"name":"_numOfChoices","nodeType":"VariableDeclaration","scope":19762,"src":"1637:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19750,"name":"uint256","nodeType":"ElementaryTypeName","src":"1637:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19753,"name":"_proposalParameters","nodeType":"VariableDeclaration","scope":19762,"src":"1668:27:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19752,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1668:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19755,"name":"_proposer","nodeType":"VariableDeclaration","scope":19762,"src":"1705:17:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19754,"name":"address","nodeType":"ElementaryTypeName","src":"1705:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19757,"name":"_organization","nodeType":"VariableDeclaration","scope":19762,"src":"1732:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19756,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1627:136:59"},"returnParameters":{"id":19761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19760,"name":"","nodeType":"VariableDeclaration","scope":19762,"src":"1781:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19759,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1781:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1780:9:59"},"scope":19816,"src":"1611:179:59","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19775,"implemented":false,"kind":"function","modifiers":[],"name":"vote","nodeType":"FunctionDefinition","parameters":{"id":19771,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19764,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19775,"src":"1819:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1819:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19766,"name":"_vote","nodeType":"VariableDeclaration","scope":19775,"src":"1848:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19765,"name":"uint256","nodeType":"ElementaryTypeName","src":"1848:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19768,"name":"_rep","nodeType":"VariableDeclaration","scope":19775,"src":"1871:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19767,"name":"uint256","nodeType":"ElementaryTypeName","src":"1871:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19770,"name":"_voter","nodeType":"VariableDeclaration","scope":19775,"src":"1893:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19769,"name":"address","nodeType":"ElementaryTypeName","src":"1893:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1809:104:59"},"returnParameters":{"id":19774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19773,"name":"","nodeType":"VariableDeclaration","scope":19775,"src":"1939:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19772,"name":"bool","nodeType":"ElementaryTypeName","src":"1939:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1938:6:59"},"scope":19816,"src":"1796:149:59","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19780,"implemented":false,"kind":"function","modifiers":[],"name":"cancelVote","nodeType":"FunctionDefinition","parameters":{"id":19778,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19777,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19780,"src":"1971:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19776,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1971:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1970:21:59"},"returnParameters":{"id":19779,"nodeType":"ParameterList","parameters":[],"src":"2000:0:59"},"scope":19816,"src":"1951:50:59","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19787,"implemented":false,"kind":"function","modifiers":[],"name":"getNumberOfChoices","nodeType":"FunctionDefinition","parameters":{"id":19783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19782,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19787,"src":"2035:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2035:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2034:21:59"},"returnParameters":{"id":19786,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19785,"name":"","nodeType":"VariableDeclaration","scope":19787,"src":"2078:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19784,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2077:9:59"},"scope":19816,"src":"2007:80:59","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19794,"implemented":false,"kind":"function","modifiers":[],"name":"isVotable","nodeType":"FunctionDefinition","parameters":{"id":19790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19789,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19794,"src":"2112:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19788,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2112:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2111:21:59"},"returnParameters":{"id":19793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19792,"name":"","nodeType":"VariableDeclaration","scope":19794,"src":"2155:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19791,"name":"bool","nodeType":"ElementaryTypeName","src":"2155:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2154:6:59"},"scope":19816,"src":"2093:68:59","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev voteStatus returns the reputation voted for a proposal for a specific voting choice.\n@param _proposalId the ID of the proposal\n@param _choice the index in the\n@return voted reputation for the given choice","id":19803,"implemented":false,"kind":"function","modifiers":[],"name":"voteStatus","nodeType":"FunctionDefinition","parameters":{"id":19799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19796,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19803,"src":"2441:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19795,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2441:7:59","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19798,"name":"_choice","nodeType":"VariableDeclaration","scope":19803,"src":"2462:15:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19797,"name":"uint256","nodeType":"ElementaryTypeName","src":"2462:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2440:38:59"},"returnParameters":{"id":19802,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19801,"name":"","nodeType":"VariableDeclaration","scope":19803,"src":"2501:7:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19800,"name":"uint256","nodeType":"ElementaryTypeName","src":"2501:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2500:9:59"},"scope":19816,"src":"2421:89:59","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev isAbstainAllow returns if the voting machine allow abstain (0)\n@return bool true or false","id":19808,"implemented":false,"kind":"function","modifiers":[],"name":"isAbstainAllow","nodeType":"FunctionDefinition","parameters":{"id":19804,"nodeType":"ParameterList","parameters":[],"src":"2664:2:59"},"returnParameters":{"id":19807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19806,"name":"","nodeType":"VariableDeclaration","scope":19808,"src":"2689:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19805,"name":"bool","nodeType":"ElementaryTypeName","src":"2689:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2688:6:59"},"scope":19816,"src":"2641:54:59","stateMutability":"pure","superFunction":null,"visibility":"external"},{"body":null,"documentation":"@dev getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\n@return min - minimum number of choices\nmax - maximum number of choices","id":19815,"implemented":false,"kind":"function","modifiers":[],"name":"getAllowedRangeOfChoices","nodeType":"FunctionDefinition","parameters":{"id":19809,"nodeType":"ParameterList","parameters":[],"src":"2940:2:59"},"returnParameters":{"id":19814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19811,"name":"min","nodeType":"VariableDeclaration","scope":19815,"src":"2965:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19810,"name":"uint256","nodeType":"ElementaryTypeName","src":"2965:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19813,"name":"max","nodeType":"VariableDeclaration","scope":19815,"src":"2978:11:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19812,"name":"uint256","nodeType":"ElementaryTypeName","src":"2978:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2964:26:59"},"scope":19816,"src":"2907:84:59","stateMutability":"pure","superFunction":null,"visibility":"external"}],"scope":19817,"src":"26:2967:59"}],"src":"0:2994:59"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.264Z","devdoc":{"methods":{"getAllowedRangeOfChoices()":{"details":"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.","return":"min - minimum number of choices max - maximum number of choices"},"isAbstainAllow()":{"details":"isAbstainAllow returns if the voting machine allow abstain (0)","return":"bool true or false"},"propose(uint256,bytes32,address,address)":{"details":"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.","params":{"_numOfChoices":"number of voting choices","_organization":"address - if this address is zero the msg.sender will be used as the organization address.","_proposalParameters":"defines the parameters of the voting machine used for this proposal","_proposer":"address"},"return":"proposal's id."},"voteStatus(bytes32,uint256)":{"details":"voteStatus returns the reputation voted for a proposal for a specific voting choice.","params":{"_choice":"the index in the","_proposalId":"the ID of the proposal"},"return":"voted reputation for the given choice"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Locking4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Locking4Reputation.json new file mode 100644 index 00000000..b6070eb2 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Locking4Reputation.json @@ -0,0 +1 @@ +{"contractName":"Locking4Reputation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_locker","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Release","type":"event"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"lockers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLockingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"scores","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"Lock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"lockers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releaseTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxLockingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"scores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLockedLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalScore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"redeem(address)\":{\"details\":\"redeem reputation function\",\"params\":{\"_beneficiary\":\"the beneficiary for the release\"},\"return\":\"uint256 reputation rewarded\"}},\"title\":\"A locker contract\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol\":\"Locking4Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol\":{\"keccak256\":\"0x0180348aed9e3a89f810920e1876b37991a50f6166fb3d16a624db7a8d7785e9\",\"urls\":[\"bzz-raw://8ae7d576bab9e4ba527a731461821c1427fbdf899c9253a50aeb2134f996029b\",\"dweb:/ipfs/QmWVkTjrmvm6U7mrKLskDWcKUxBhkswNeN9VvgXgY7qK2H\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"128:6222:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;128:6222:17;;;;;;;","deployedSourceMap":"128:6222:17:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;128:6222:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:31;;;:::i;:::-;;;;;;;;;;;;;;;;1119;;;:::i;806:26::-;;;:::i;551:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;551:20:17;;;;;;;;;;;;;;407:101:7;;;:::i;761:38:17:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;761:38:17;-1:-1:-1;;;;;761:38:17;;:::i;639:59::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;639:59:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1351:798;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1351:798:17;-1:-1:-1;;;;;1351:798:17;;:::i;1047:29::-;;;:::i;1006:35::-;;;:::i;1082:31::-;;;:::i;874:25::-;;;:::i;905:30::-;;;:::i;838:::-;;;:::i;969:31::-;;;:::i;1156:::-;;;;:::o;1119:::-;;;;:::o;806:26::-;;;;:::o;551:20::-;;;-1:-1:-1;;;;;551:20:17;;:::o;407:101:7:-;458:7;488:13;407:101;:::o;761:38:17:-;;;;;;;;;;;;;:::o;639:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1351:798::-;1404:18;1514:16;;1496:15;:34;1488:69;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1575:20:17;;1598:1;1575:20;;;:6;:20;;;;;;1567:56;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:20:17;;1633:13;1649:20;;;:6;:20;;;;;;;1679:24;;;;1745:16;;1649:20;;1633:13;1735:27;;1649:20;;1735:27;:9;:27;:::i;:::-;1713:49;;1785:27;1801:10;;1785:11;:15;;:27;;;;:::i;:::-;1894:20;;1772:40;;-1:-1:-1;1894:36:17;;1772:40;1894:36;:24;:36;:::i;:::-;1871:20;:59;1977:6;;:14;;;-1:-1:-1;;;1977:14:17;;;;-1:-1:-1;;;;;1977:6:17;;;;:12;;:14;;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;1977:14:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1977:14:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1977:14:17;2051:6;;1957:102;;;-1:-1:-1;;;1957:102:17;;;;;;;;-1:-1:-1;;;;;1957:102:17;;;;;;;2051:6;;;1957:102;;;;;;:59;;;;;;;:102;;;;;1977:14;;1957:102;;;;;;;2051:6;1957:59;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;1957:102:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1957:102:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1957:102:17;1940:154;;;;;-1:-1:-1;;;1940:154:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:32;;;;;;;;-1:-1:-1;;;;;2110:32:17;;;;;;;;;;;;;1351:798;;;;;:::o;1047:29::-;;;;:::o;1006:35::-;;;;:::o;1082:31::-;;;;:::o;874:25::-;;;;:::o;905:30::-;;;;:::o;838:::-;;;;:::o;969:31::-;;;;:::o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:1;-1:-1:-1;2159:459:66;;;;;:::o;3073:130::-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;3718:338::-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:66;-1:-1:-1;;;1888:5:66;;;1732:187::o","source":"pragma solidity 0.5.13;\n\nimport \"../controller/Controller.sol\";\nimport \"./Agreement.sol\";\n\n/**\n * @title A locker contract\n */\n\ncontract Locking4Reputation is Agreement {\n using SafeMath for uint256;\n\n event Redeem(address indexed _beneficiary, uint256 _amount);\n event Release(bytes32 indexed _lockingId, address indexed _beneficiary, uint256 _amount);\n event Lock(address indexed _locker, bytes32 indexed _lockingId, uint256 _amount, uint256 _period);\n\n struct Locker {\n uint256 amount;\n uint256 releaseTime;\n }\n\n Avatar public avatar;\n\n // A mapping from lockers addresses their lock balances.\n mapping(address => mapping(bytes32=>Locker)) public lockers;\n // A mapping from lockers addresses to their scores.\n mapping(address => uint) public scores;\n\n uint256 public totalLocked;\n uint256 public totalLockedLeft;\n uint256 public totalScore;\n uint256 public lockingsCounter; // Total number of lockings\n uint256 public reputationReward;\n uint256 public reputationRewardLeft;\n uint256 public lockingEndTime;\n uint256 public maxLockingPeriod;\n uint256 public lockingStartTime;\n uint256 public redeemEnableTime;\n\n /**\n * @dev redeem reputation function\n * @param _beneficiary the beneficiary for the release\n * @return uint256 reputation rewarded\n */\n function redeem(address _beneficiary) public returns(uint256 reputation) {\n // solhint-disable-next-line not-rely-on-time\n require(block.timestamp > redeemEnableTime, \"now > redeemEnableTime\");\n require(scores[_beneficiary] > 0, \"score should be > 0\");\n uint256 score = scores[_beneficiary];\n scores[_beneficiary] = 0;\n uint256 repRelation = score.mul(reputationReward);\n reputation = repRelation.div(totalScore);\n\n //check that the reputation is sum zero\n reputationRewardLeft = reputationRewardLeft.sub(reputation);\n require(\n Controller(\n avatar.owner())\n .mintReputation(reputation, _beneficiary, address(avatar)), \"mint reputation should succeed\");\n\n emit Redeem(_beneficiary, reputation);\n }\n\n /**\n * @dev release function\n * @param _beneficiary the beneficiary for the release\n * @param _lockingId the locking id to release\n * @return bool\n */\n function _release(address _beneficiary, bytes32 _lockingId) internal returns(uint256 amount) {\n Locker storage locker = lockers[_beneficiary][_lockingId];\n require(locker.amount > 0, \"amount should be > 0\");\n amount = locker.amount;\n locker.amount = 0;\n // solhint-disable-next-line not-rely-on-time\n require(block.timestamp > locker.releaseTime, \"check the lock period pass\");\n totalLockedLeft = totalLockedLeft.sub(amount);\n\n emit Release(_lockingId, _beneficiary, amount);\n }\n\n /**\n * @dev lock function\n * @param _amount the amount to lock\n * @param _period the locking period\n * @param _locker the locker\n * @param _numerator price numerator\n * @param _denominator price denominator\n * @return lockingId\n */\n function _lock(\n uint256 _amount,\n uint256 _period,\n address _locker,\n uint256 _numerator,\n uint256 _denominator,\n bytes32 _agreementHash)\n internal\n onlyAgree(_agreementHash)\n returns(bytes32 lockingId)\n {\n require(_amount > 0, \"locking amount should be > 0\");\n require(_period <= maxLockingPeriod, \"locking period should be <= maxLockingPeriod\");\n require(_period > 0, \"locking period should be > 0\");\n // solhint-disable-next-line not-rely-on-time\n require(now <= lockingEndTime, \"lock should be within the allowed locking period\");\n // solhint-disable-next-line not-rely-on-time\n require(now >= lockingStartTime, \"lock should start after lockingStartTime\");\n\n lockingId = keccak256(abi.encodePacked(address(this), lockingsCounter));\n lockingsCounter = lockingsCounter.add(1);\n\n Locker storage locker = lockers[_locker][lockingId];\n locker.amount = _amount;\n // solhint-disable-next-line not-rely-on-time\n locker.releaseTime = now + _period;\n totalLocked = totalLocked.add(_amount);\n totalLockedLeft = totalLockedLeft.add(_amount);\n uint256 score = _period.mul(_amount).mul(_numerator).div(_denominator);\n require(score > 0, \"score must me > 0\");\n scores[_locker] = scores[_locker].add(score);\n //verify that redeem will not overflow for this locker\n require((scores[_locker] * reputationReward)/scores[_locker] == reputationReward,\n \"score is too high\");\n totalScore = totalScore.add(score);\n\n emit Lock(_locker, lockingId, _amount, _period);\n }\n\n /**\n * @dev _initialize\n * @param _avatar the avatar to mint reputation from\n * @param _reputationReward the total reputation this contract will reward\n * for eth/token locking\n * @param _lockingStartTime the locking start time.\n * @param _lockingEndTime the locking end time.\n * locking is disable after this time.\n * @param _redeemEnableTime redeem enable time .\n * redeem reputation can be done after this time.\n * @param _maxLockingPeriod maximum locking period allowed.\n */\n function _initialize(\n Avatar _avatar,\n uint256 _reputationReward,\n uint256 _lockingStartTime,\n uint256 _lockingEndTime,\n uint256 _redeemEnableTime,\n uint256 _maxLockingPeriod,\n bytes32 _agreementHash )\n internal\n {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n require(_lockingEndTime > _lockingStartTime, \"locking end time should be greater than locking start time\");\n require(_redeemEnableTime >= _lockingEndTime, \"redeemEnableTime >= lockingEndTime\");\n\n reputationReward = _reputationReward;\n reputationRewardLeft = _reputationReward;\n lockingEndTime = _lockingEndTime;\n maxLockingPeriod = _maxLockingPeriod;\n avatar = _avatar;\n lockingStartTime = _lockingStartTime;\n redeemEnableTime = _redeemEnableTime;\n super.setAgreementHash(_agreementHash);\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","exportedSymbols":{"Locking4Reputation":[7593]},"id":7594,"nodeType":"SourceUnit","nodes":[{"id":7130,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:17"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":7131,"nodeType":"ImportDirective","scope":7594,"sourceUnit":1798,"src":"25:38:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":7132,"nodeType":"ImportDirective","scope":7594,"sourceUnit":2303,"src":"64:25:17","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7133,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"159:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":7134,"nodeType":"InheritanceSpecifier","src":"159:9:17"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A locker contract","fullyImplemented":true,"id":7593,"linearizedBaseContracts":[7593,2302],"name":"Locking4Reputation","nodeType":"ContractDefinition","nodes":[{"id":7137,"libraryName":{"contractScope":null,"id":7135,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"181:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"175:27:17","typeName":{"id":7136,"name":"uint256","nodeType":"ElementaryTypeName","src":"194:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":7143,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":7142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7139,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7143,"src":"221:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7138,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7141,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":7143,"src":"251:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7140,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"220:47:17"},"src":"208:60:17"},{"anonymous":false,"documentation":null,"id":7151,"name":"Release","nodeType":"EventDefinition","parameters":{"id":7150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7145,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7151,"src":"287:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":7147,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7151,"src":"315:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7146,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7149,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":7151,"src":"345:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7148,"name":"uint256","nodeType":"ElementaryTypeName","src":"345:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"286:75:17"},"src":"273:89:17"},{"anonymous":false,"documentation":null,"id":7161,"name":"Lock","nodeType":"EventDefinition","parameters":{"id":7160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7153,"indexed":true,"name":"_locker","nodeType":"VariableDeclaration","scope":7161,"src":"378:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7152,"name":"address","nodeType":"ElementaryTypeName","src":"378:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7155,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7161,"src":"403:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"403:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":7157,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":7161,"src":"431:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7156,"name":"uint256","nodeType":"ElementaryTypeName","src":"431:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7159,"indexed":false,"name":"_period","nodeType":"VariableDeclaration","scope":7161,"src":"448:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7158,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"377:87:17"},"src":"367:98:17"},{"canonicalName":"Locking4Reputation.Locker","id":7166,"members":[{"constant":false,"id":7163,"name":"amount","nodeType":"VariableDeclaration","scope":7166,"src":"495:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7165,"name":"releaseTime","nodeType":"VariableDeclaration","scope":7166,"src":"519:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7164,"name":"uint256","nodeType":"ElementaryTypeName","src":"519:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Locker","nodeType":"StructDefinition","scope":7593,"src":"471:74:17","visibility":"public"},{"constant":false,"id":7168,"name":"avatar","nodeType":"VariableDeclaration","scope":7593,"src":"551:20:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7167,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"551:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":7174,"name":"lockers","nodeType":"VariableDeclaration","scope":7593,"src":"639:59:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker))"},"typeName":{"id":7173,"keyType":{"id":7169,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"639:44:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker))"},"valueType":{"id":7172,"keyType":{"id":7170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"666:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"658:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$","typeString":"mapping(bytes32 => struct Locking4Reputation.Locker)"},"valueType":{"contractScope":null,"id":7171,"name":"Locker","nodeType":"UserDefinedTypeName","referencedDeclaration":7166,"src":"675:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"}}}},"value":null,"visibility":"public"},{"constant":false,"id":7178,"name":"scores","nodeType":"VariableDeclaration","scope":7593,"src":"761:38:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":7177,"keyType":{"id":7175,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"761:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":7176,"name":"uint","nodeType":"ElementaryTypeName","src":"780:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":7180,"name":"totalLocked","nodeType":"VariableDeclaration","scope":7593,"src":"806:26:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7179,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7182,"name":"totalLockedLeft","nodeType":"VariableDeclaration","scope":7593,"src":"838:30:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7181,"name":"uint256","nodeType":"ElementaryTypeName","src":"838:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7184,"name":"totalScore","nodeType":"VariableDeclaration","scope":7593,"src":"874:25:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7183,"name":"uint256","nodeType":"ElementaryTypeName","src":"874:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7186,"name":"lockingsCounter","nodeType":"VariableDeclaration","scope":7593,"src":"905:30:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7185,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7188,"name":"reputationReward","nodeType":"VariableDeclaration","scope":7593,"src":"969:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7187,"name":"uint256","nodeType":"ElementaryTypeName","src":"969:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7190,"name":"reputationRewardLeft","nodeType":"VariableDeclaration","scope":7593,"src":"1006:35:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7189,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7192,"name":"lockingEndTime","nodeType":"VariableDeclaration","scope":7593,"src":"1047:29:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7194,"name":"maxLockingPeriod","nodeType":"VariableDeclaration","scope":7593,"src":"1082:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7196,"name":"lockingStartTime","nodeType":"VariableDeclaration","scope":7593,"src":"1119:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1119:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7198,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":7593,"src":"1156:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7197,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":7276,"nodeType":"Block","src":"1424:725:17","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7206,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"1496:5:17","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1496:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":7208,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7198,"src":"1514:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1496:34:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2072656465656d456e61626c6554696d65","id":7210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1532:24:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""},"value":"now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""}],"id":7205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1488:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1488:69:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7212,"nodeType":"ExpressionStatement","src":"1488:69:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7214,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"1575:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7216,"indexExpression":{"argumentTypes":null,"id":7215,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1582:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1575:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1598:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1575:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73636f72652073686f756c64206265203e2030","id":7219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1601:21:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_392aed1b821fc087bc6dad9aef20f2e9fc8bb2935ccbf7ea4dc351f81eb2a605","typeString":"literal_string \"score should be > 0\""},"value":"score should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_392aed1b821fc087bc6dad9aef20f2e9fc8bb2935ccbf7ea4dc351f81eb2a605","typeString":"literal_string \"score should be > 0\""}],"id":7213,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1567:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1567:56:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7221,"nodeType":"ExpressionStatement","src":"1567:56:17"},{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"name":"score","nodeType":"VariableDeclaration","scope":7276,"src":"1633:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7227,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7224,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"1649:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7226,"indexExpression":{"argumentTypes":null,"id":7225,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1656:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1649:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1633:36:17"},{"expression":{"argumentTypes":null,"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7228,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"1679:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7230,"indexExpression":{"argumentTypes":null,"id":7229,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1686:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1679:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":7231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1679:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7233,"nodeType":"ExpressionStatement","src":"1679:24:17"},{"assignments":[7235],"declarations":[{"constant":false,"id":7235,"name":"repRelation","nodeType":"VariableDeclaration","scope":7276,"src":"1713:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7234,"name":"uint256","nodeType":"ElementaryTypeName","src":"1713:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7240,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7238,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"1745:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7236,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"1735:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"1735:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1735:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1713:49:17"},{"expression":{"argumentTypes":null,"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7241,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"1772:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7244,"name":"totalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"1801:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7242,"name":"repRelation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7235,"src":"1785:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"1785:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1785:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1772:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7247,"nodeType":"ExpressionStatement","src":"1772:40:17"},{"expression":{"argumentTypes":null,"id":7253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7248,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"1871:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7251,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"1919:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7249,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"1894:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"1894:24:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1894:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1871:59:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7254,"nodeType":"ExpressionStatement","src":"1871:59:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7262,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"2017:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7263,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2029:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7265,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2051:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2043:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2043:15:17","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":7257,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"1977:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1977:12:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1977:14:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7256,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1957:10:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1957:35:17","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":7261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"1957:59:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1957:102:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":7268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2061:32:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":7255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1940:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1940:154:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7270,"nodeType":"ExpressionStatement","src":"1940:154:17"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7272,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2117:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7273,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"2131:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7271,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"2110:6:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2110:32:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7275,"nodeType":"EmitStatement","src":"2105:37:17"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary for the release\n@return uint256 reputation rewarded","id":7277,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":7201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7200,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7277,"src":"1367:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7199,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1366:22:17"},"returnParameters":{"id":7204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7203,"name":"reputation","nodeType":"VariableDeclaration","scope":7277,"src":"1404:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7202,"name":"uint256","nodeType":"ElementaryTypeName","src":"1404:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1403:20:17"},"scope":7593,"src":"1351:798:17","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7335,"nodeType":"Block","src":"2423:444:17","statements":[{"assignments":[7287],"declarations":[{"constant":false,"id":7287,"name":"locker","nodeType":"VariableDeclaration","scope":7335,"src":"2433:21:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"},"typeName":{"contractScope":null,"id":7286,"name":"Locker","nodeType":"UserDefinedTypeName","referencedDeclaration":7166,"src":"2433:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"}},"value":null,"visibility":"internal"}],"id":7293,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7288,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7174,"src":"2457:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker storage ref))"}},"id":7290,"indexExpression":{"argumentTypes":null,"id":7289,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"2465:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2457:21:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$","typeString":"mapping(bytes32 => struct Locking4Reputation.Locker storage ref)"}},"id":7292,"indexExpression":{"argumentTypes":null,"id":7291,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"2479:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2457:33:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage","typeString":"struct Locking4Reputation.Locker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2433:57:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7295,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2508:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"2508:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2524:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2508:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"616d6f756e742073686f756c64206265203e2030","id":7299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2527:22:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_28bcfa3c9b3c8db041ce814167a89d2aa287ca649156ecde1f0d9dee24648ea9","typeString":"literal_string \"amount should be > 0\""},"value":"amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28bcfa3c9b3c8db041ce814167a89d2aa287ca649156ecde1f0d9dee24648ea9","typeString":"literal_string \"amount should be > 0\""}],"id":7294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2500:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2500:50:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7301,"nodeType":"ExpressionStatement","src":"2500:50:17"},{"expression":{"argumentTypes":null,"id":7305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7302,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"2560:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7303,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2569:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"2569:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2560:22:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7306,"nodeType":"ExpressionStatement","src":"2560:22:17"},{"expression":{"argumentTypes":null,"id":7311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7307,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2592:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"2592:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":7310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2608:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2592:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7312,"nodeType":"ExpressionStatement","src":"2592:17:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7314,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2681:5:17","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2681:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7316,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2699:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"releaseTime","nodeType":"MemberAccess","referencedDeclaration":7165,"src":"2699:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2681:36:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636865636b20746865206c6f636b20706572696f642070617373","id":7319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2719:28:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2798c2d68226650853d098f4ad9ec350903edcdcf963ca900a7789b4349a5216","typeString":"literal_string \"check the lock period pass\""},"value":"check the lock period pass"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2798c2d68226650853d098f4ad9ec350903edcdcf963ca900a7789b4349a5216","typeString":"literal_string \"check the lock period pass\""}],"id":7313,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2673:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2673:75:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7321,"nodeType":"ExpressionStatement","src":"2673:75:17"},{"expression":{"argumentTypes":null,"id":7327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7322,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"2758:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7325,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"2796:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7323,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"2776:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"2776:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2776:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2758:45:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7328,"nodeType":"ExpressionStatement","src":"2758:45:17"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7330,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"2827:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7331,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"2839:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7332,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"2853:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7329,"name":"Release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7151,"src":"2819:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2819:41:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7334,"nodeType":"EmitStatement","src":"2814:46:17"}]},"documentation":"@dev release function\n@param _beneficiary the beneficiary for the release\n@param _lockingId the locking id to release\n@return bool","id":7336,"implemented":true,"kind":"function","modifiers":[],"name":"_release","nodeType":"FunctionDefinition","parameters":{"id":7282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7279,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7336,"src":"2348:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7278,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7281,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7336,"src":"2370:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2347:42:17"},"returnParameters":{"id":7285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7284,"name":"amount","nodeType":"VariableDeclaration","scope":7336,"src":"2407:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7283,"name":"uint256","nodeType":"ElementaryTypeName","src":"2407:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2406:16:17"},"scope":7593,"src":"2330:537:17","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":7507,"nodeType":"Block","src":"3416:1408:17","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7357,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"3434:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3444:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3434:11:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720616d6f756e742073686f756c64206265203e2030","id":7360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3447:30:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4081391d4503d0456e383c580956a5bc5517ab45129eda26786ba74f337e6109","typeString":"literal_string \"locking amount should be > 0\""},"value":"locking amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4081391d4503d0456e383c580956a5bc5517ab45129eda26786ba74f337e6109","typeString":"literal_string \"locking amount should be > 0\""}],"id":7356,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3426:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3426:52:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7362,"nodeType":"ExpressionStatement","src":"3426:52:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7364,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"3496:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":7365,"name":"maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"3507:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3496:27:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f642073686f756c64206265203c3d206d61784c6f636b696e67506572696f64","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3525:46:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5be08cd0e75ccb3b8a9ac99e40dc2ce94e573601b52c88eb4f60bcb56c4c6e9","typeString":"literal_string \"locking period should be <= maxLockingPeriod\""},"value":"locking period should be <= maxLockingPeriod"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c5be08cd0e75ccb3b8a9ac99e40dc2ce94e573601b52c88eb4f60bcb56c4c6e9","typeString":"literal_string \"locking period should be <= maxLockingPeriod\""}],"id":7363,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3488:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3488:84:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7369,"nodeType":"ExpressionStatement","src":"3488:84:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7371,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"3590:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3600:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3590:11:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f642073686f756c64206265203e2030","id":7374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3603:30:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e1523ca66242174379cc16d810836e790101257f9718a8f865e5dcb60d6e48","typeString":"literal_string \"locking period should be > 0\""},"value":"locking period should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e1523ca66242174379cc16d810836e790101257f9718a8f865e5dcb60d6e48","typeString":"literal_string \"locking period should be > 0\""}],"id":7370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3582:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3582:52:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7376,"nodeType":"ExpressionStatement","src":"3582:52:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7378,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3706:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":7379,"name":"lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"3713:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3706:21:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b2073686f756c642062652077697468696e2074686520616c6c6f776564206c6f636b696e6720706572696f64","id":7381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3729:50:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_656ff6d5c241d75e6900524c8f076c816fa87af7186a36df1b98e926a5784af4","typeString":"literal_string \"lock should be within the allowed locking period\""},"value":"lock should be within the allowed locking period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ff6d5c241d75e6900524c8f076c816fa87af7186a36df1b98e926a5784af4","typeString":"literal_string \"lock should be within the allowed locking period\""}],"id":7377,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3698:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3698:82:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7383,"nodeType":"ExpressionStatement","src":"3698:82:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7385,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3852:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":7386,"name":"lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"3859:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3852:23:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b2073686f756c64207374617274206166746572206c6f636b696e67537461727454696d65","id":7388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3877:42:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_404f18d406fd5ce40fb93796ae3f8cbe8836855f06c34523ce6dc4402438ea1e","typeString":"literal_string \"lock should start after lockingStartTime\""},"value":"lock should start after lockingStartTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_404f18d406fd5ce40fb93796ae3f8cbe8836855f06c34523ce6dc4402438ea1e","typeString":"literal_string \"lock should start after lockingStartTime\""}],"id":7384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3844:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:76:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7390,"nodeType":"ExpressionStatement","src":"3844:76:17"},{"expression":{"argumentTypes":null,"id":7401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7391,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"3931:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7396,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21185,"src":"3978:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}],"id":7395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3970:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3970:13:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7398,"name":"lockingsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"3985:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7393,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3953:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3953:16:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3953:48:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7392,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3943:9:17","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3943:59:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3931:71:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7402,"nodeType":"ExpressionStatement","src":"3931:71:17"},{"expression":{"argumentTypes":null,"id":7408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7403,"name":"lockingsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"4012:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":7406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4050:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":7404,"name":"lockingsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"4030:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4030:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4030:22:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4012:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7409,"nodeType":"ExpressionStatement","src":"4012:40:17"},{"assignments":[7411],"declarations":[{"constant":false,"id":7411,"name":"locker","nodeType":"VariableDeclaration","scope":7507,"src":"4063:21:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"},"typeName":{"contractScope":null,"id":7410,"name":"Locker","nodeType":"UserDefinedTypeName","referencedDeclaration":7166,"src":"4063:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"}},"value":null,"visibility":"internal"}],"id":7417,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7412,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7174,"src":"4087:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker storage ref))"}},"id":7414,"indexExpression":{"argumentTypes":null,"id":7413,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4095:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4087:16:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$","typeString":"mapping(bytes32 => struct Locking4Reputation.Locker storage ref)"}},"id":7416,"indexExpression":{"argumentTypes":null,"id":7415,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"4104:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4087:27:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage","typeString":"struct Locking4Reputation.Locker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4063:51:17"},{"expression":{"argumentTypes":null,"id":7422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7418,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7411,"src":"4124:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"4124:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7421,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4140:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4124:23:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7423,"nodeType":"ExpressionStatement","src":"4124:23:17"},{"expression":{"argumentTypes":null,"id":7430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7424,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7411,"src":"4211:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"releaseTime","nodeType":"MemberAccess","referencedDeclaration":7165,"src":"4211:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7427,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"4232:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":7428,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"4238:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4232:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4211:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7431,"nodeType":"ExpressionStatement","src":"4211:34:17"},{"expression":{"argumentTypes":null,"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7432,"name":"totalLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"4255:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7435,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4285:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7433,"name":"totalLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"4269:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4269:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4269:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4255:38:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7438,"nodeType":"ExpressionStatement","src":"4255:38:17"},{"expression":{"argumentTypes":null,"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7439,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"4303:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7442,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4341:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7440,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"4321:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4321:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4321:28:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4303:46:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7445,"nodeType":"ExpressionStatement","src":"4303:46:17"},{"assignments":[7447],"declarations":[{"constant":false,"id":7447,"name":"score","nodeType":"VariableDeclaration","scope":7507,"src":"4359:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7446,"name":"uint256","nodeType":"ElementaryTypeName","src":"4359:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7458,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7456,"name":"_denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7346,"src":"4416:12:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7453,"name":"_numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7344,"src":"4400:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7450,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4387:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7448,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"4375:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"4375:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4375:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"4375:24:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4375:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"4375:40:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4375:54:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4359:70:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7460,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4447:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4455:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4447:9:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73636f7265206d757374206d65203e2030","id":7463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4458:19:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_18a35fb1b0f7f35d80873437f0a1f77775e2c4ccfc0fcd653dd8d39deca3c479","typeString":"literal_string \"score must me > 0\""},"value":"score must me > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18a35fb1b0f7f35d80873437f0a1f77775e2c4ccfc0fcd653dd8d39deca3c479","typeString":"literal_string \"score must me > 0\""}],"id":7459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4439:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4439:39:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7465,"nodeType":"ExpressionStatement","src":"4439:39:17"},{"expression":{"argumentTypes":null,"id":7475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7466,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4488:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7468,"indexExpression":{"argumentTypes":null,"id":7467,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4495:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4488:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7473,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4526:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7469,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4506:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7471,"indexExpression":{"argumentTypes":null,"id":7470,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4513:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4506:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4506:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4506:26:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4488:44:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7476,"nodeType":"ExpressionStatement","src":"4488:44:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7478,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4614:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7480,"indexExpression":{"argumentTypes":null,"id":7479,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4621:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4614:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":7481,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"4632:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7483,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4613:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7484,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4650:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7486,"indexExpression":{"argumentTypes":null,"id":7485,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4657:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4650:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4613:52:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":7488,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"4669:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4613:72:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73636f726520697320746f6f2068696768","id":7490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4695:19:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4f0819647f62702ec1ee452569e71bf99c2598e2d2d6c5b980893f68ef96ce59","typeString":"literal_string \"score is too high\""},"value":"score is too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4f0819647f62702ec1ee452569e71bf99c2598e2d2d6c5b980893f68ef96ce59","typeString":"literal_string \"score is too high\""}],"id":7477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4605:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4605:110:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7492,"nodeType":"ExpressionStatement","src":"4605:110:17"},{"expression":{"argumentTypes":null,"id":7498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7493,"name":"totalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"4725:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7496,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4753:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7494,"name":"totalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"4738:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4738:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4738:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4725:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7499,"nodeType":"ExpressionStatement","src":"4725:34:17"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7501,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4780:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7502,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"4789:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7503,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4800:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7504,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"4809:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7500,"name":"Lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"4775:4:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,uint256,uint256)"}},"id":7505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4775:42:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7506,"nodeType":"EmitStatement","src":"4770:47:17"}]},"documentation":"@dev lock function\n@param _amount the amount to lock\n@param _period the locking period\n@param _locker the locker\n@param _numerator price numerator\n@param _denominator price denominator\n@return lockingId","id":7508,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":7351,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7348,"src":"3357:14:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7352,"modifierName":{"argumentTypes":null,"id":7350,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"3347:9:17","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3347:25:17"}],"name":"_lock","nodeType":"FunctionDefinition","parameters":{"id":7349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7338,"name":"_amount","nodeType":"VariableDeclaration","scope":7508,"src":"3165:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7337,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7340,"name":"_period","nodeType":"VariableDeclaration","scope":7508,"src":"3190:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7339,"name":"uint256","nodeType":"ElementaryTypeName","src":"3190:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7342,"name":"_locker","nodeType":"VariableDeclaration","scope":7508,"src":"3215:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7341,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7344,"name":"_numerator","nodeType":"VariableDeclaration","scope":7508,"src":"3240:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7343,"name":"uint256","nodeType":"ElementaryTypeName","src":"3240:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7346,"name":"_denominator","nodeType":"VariableDeclaration","scope":7508,"src":"3268:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"3268:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7348,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7508,"src":"3298:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3298:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3155:166:17"},"returnParameters":{"id":7355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7354,"name":"lockingId","nodeType":"VariableDeclaration","scope":7508,"src":"3389:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3389:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3388:19:17"},"scope":7593,"src":"3141:1683:17","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":7591,"nodeType":"Block","src":"5647:700:17","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7526,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"5665:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5682:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7527,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"5675:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5675:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"5665:19:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":7531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5686:29:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":7525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5657:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5657:59:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7533,"nodeType":"ExpressionStatement","src":"5657:59:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7535,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7510,"src":"5734:7:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5752:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7536,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"5745:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5745:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"5734:20:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":7540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5756:23:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":7534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5726:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5726:54:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7542,"nodeType":"ExpressionStatement","src":"5726:54:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7544,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"5798:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":7545,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7514,"src":"5816:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5798:35:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720656e642074696d652073686f756c642062652067726561746572207468616e206c6f636b696e672073746172742074696d65","id":7547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5835:60:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a8c7e00815e525919a0b9d1e0beadb668ee45651d9cb73f81af1903f8ccc91aa","typeString":"literal_string \"locking end time should be greater than locking start time\""},"value":"locking end time should be greater than locking start time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8c7e00815e525919a0b9d1e0beadb668ee45651d9cb73f81af1903f8ccc91aa","typeString":"literal_string \"locking end time should be greater than locking start time\""}],"id":7543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5790:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5790:106:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7549,"nodeType":"ExpressionStatement","src":"5790:106:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7551,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"5914:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":7552,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"5935:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5914:36:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72656465656d456e61626c6554696d65203e3d206c6f636b696e67456e6454696d65","id":7554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5952:36:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e44fecc5e4144d5fbb5f4965043c1c0c2d3ad8b7b2804290e548cfd919951f31","typeString":"literal_string \"redeemEnableTime >= lockingEndTime\""},"value":"redeemEnableTime >= lockingEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e44fecc5e4144d5fbb5f4965043c1c0c2d3ad8b7b2804290e548cfd919951f31","typeString":"literal_string \"redeemEnableTime >= lockingEndTime\""}],"id":7550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5906:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5906:83:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7556,"nodeType":"ExpressionStatement","src":"5906:83:17"},{"expression":{"argumentTypes":null,"id":7559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7557,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"6000:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7558,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"6019:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6000:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7560,"nodeType":"ExpressionStatement","src":"6000:36:17"},{"expression":{"argumentTypes":null,"id":7563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7561,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"6046:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7562,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"6069:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6046:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7564,"nodeType":"ExpressionStatement","src":"6046:40:17"},{"expression":{"argumentTypes":null,"id":7567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7565,"name":"lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"6096:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7566,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"6113:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6096:32:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7568,"nodeType":"ExpressionStatement","src":"6096:32:17"},{"expression":{"argumentTypes":null,"id":7571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7569,"name":"maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"6138:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7570,"name":"_maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7520,"src":"6157:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6138:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7572,"nodeType":"ExpressionStatement","src":"6138:36:17"},{"expression":{"argumentTypes":null,"id":7575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7573,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"6184:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7574,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7510,"src":"6193:7:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"6184:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7576,"nodeType":"ExpressionStatement","src":"6184:16:17"},{"expression":{"argumentTypes":null,"id":7579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7577,"name":"lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"6210:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7578,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7514,"src":"6229:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6210:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7580,"nodeType":"ExpressionStatement","src":"6210:36:17"},{"expression":{"argumentTypes":null,"id":7583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7581,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7198,"src":"6256:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7582,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"6275:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6256:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7584,"nodeType":"ExpressionStatement","src":"6256:36:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7588,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7522,"src":"6325:14:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7585,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21186,"src":"6302:5:17","typeDescriptions":{"typeIdentifier":"t_super$_Locking4Reputation_$7593","typeString":"contract super Locking4Reputation"}},"id":7587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"6302:22:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":7589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6302:38:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7590,"nodeType":"ExpressionStatement","src":"6302:38:17"}]},"documentation":"@dev _initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for eth/token locking\n@param _lockingStartTime the locking start time.\n@param _lockingEndTime the locking end time.\n locking is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _maxLockingPeriod maximum locking period allowed.","id":7592,"implemented":true,"kind":"function","modifiers":[],"name":"_initialize","nodeType":"FunctionDefinition","parameters":{"id":7523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7510,"name":"_avatar","nodeType":"VariableDeclaration","scope":7592,"src":"5408:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7509,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"5408:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7512,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":7592,"src":"5432:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5432:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7514,"name":"_lockingStartTime","nodeType":"VariableDeclaration","scope":7592,"src":"5467:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7513,"name":"uint256","nodeType":"ElementaryTypeName","src":"5467:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7516,"name":"_lockingEndTime","nodeType":"VariableDeclaration","scope":7592,"src":"5502:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7515,"name":"uint256","nodeType":"ElementaryTypeName","src":"5502:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7518,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":7592,"src":"5535:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7517,"name":"uint256","nodeType":"ElementaryTypeName","src":"5535:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7520,"name":"_maxLockingPeriod","nodeType":"VariableDeclaration","scope":7592,"src":"5570:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7519,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7522,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7592,"src":"5605:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5605:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5398:231:17"},"returnParameters":{"id":7524,"nodeType":"ParameterList","parameters":[],"src":"5647:0:17"},"scope":7593,"src":"5378:969:17","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":7594,"src":"128:6222:17"}],"src":"0:6351:17"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","exportedSymbols":{"Locking4Reputation":[7593]},"id":7594,"nodeType":"SourceUnit","nodes":[{"id":7130,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:17"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":7131,"nodeType":"ImportDirective","scope":7594,"sourceUnit":1798,"src":"25:38:17","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":7132,"nodeType":"ImportDirective","scope":7594,"sourceUnit":2303,"src":"64:25:17","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7133,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"159:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":7134,"nodeType":"InheritanceSpecifier","src":"159:9:17"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A locker contract","fullyImplemented":true,"id":7593,"linearizedBaseContracts":[7593,2302],"name":"Locking4Reputation","nodeType":"ContractDefinition","nodes":[{"id":7137,"libraryName":{"contractScope":null,"id":7135,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"181:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"175:27:17","typeName":{"id":7136,"name":"uint256","nodeType":"ElementaryTypeName","src":"194:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"anonymous":false,"documentation":null,"id":7143,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":7142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7139,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7143,"src":"221:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7138,"name":"address","nodeType":"ElementaryTypeName","src":"221:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7141,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":7143,"src":"251:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7140,"name":"uint256","nodeType":"ElementaryTypeName","src":"251:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"220:47:17"},"src":"208:60:17"},{"anonymous":false,"documentation":null,"id":7151,"name":"Release","nodeType":"EventDefinition","parameters":{"id":7150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7145,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7151,"src":"287:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"287:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":7147,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7151,"src":"315:28:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7146,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7149,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":7151,"src":"345:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7148,"name":"uint256","nodeType":"ElementaryTypeName","src":"345:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"286:75:17"},"src":"273:89:17"},{"anonymous":false,"documentation":null,"id":7161,"name":"Lock","nodeType":"EventDefinition","parameters":{"id":7160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7153,"indexed":true,"name":"_locker","nodeType":"VariableDeclaration","scope":7161,"src":"378:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7152,"name":"address","nodeType":"ElementaryTypeName","src":"378:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7155,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7161,"src":"403:26:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7154,"name":"bytes32","nodeType":"ElementaryTypeName","src":"403:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":7157,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":7161,"src":"431:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7156,"name":"uint256","nodeType":"ElementaryTypeName","src":"431:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7159,"indexed":false,"name":"_period","nodeType":"VariableDeclaration","scope":7161,"src":"448:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7158,"name":"uint256","nodeType":"ElementaryTypeName","src":"448:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"377:87:17"},"src":"367:98:17"},{"canonicalName":"Locking4Reputation.Locker","id":7166,"members":[{"constant":false,"id":7163,"name":"amount","nodeType":"VariableDeclaration","scope":7166,"src":"495:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7162,"name":"uint256","nodeType":"ElementaryTypeName","src":"495:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7165,"name":"releaseTime","nodeType":"VariableDeclaration","scope":7166,"src":"519:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7164,"name":"uint256","nodeType":"ElementaryTypeName","src":"519:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Locker","nodeType":"StructDefinition","scope":7593,"src":"471:74:17","visibility":"public"},{"constant":false,"id":7168,"name":"avatar","nodeType":"VariableDeclaration","scope":7593,"src":"551:20:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7167,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"551:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":7174,"name":"lockers","nodeType":"VariableDeclaration","scope":7593,"src":"639:59:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker))"},"typeName":{"id":7173,"keyType":{"id":7169,"name":"address","nodeType":"ElementaryTypeName","src":"647:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"639:44:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker))"},"valueType":{"id":7172,"keyType":{"id":7170,"name":"bytes32","nodeType":"ElementaryTypeName","src":"666:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"658:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$","typeString":"mapping(bytes32 => struct Locking4Reputation.Locker)"},"valueType":{"contractScope":null,"id":7171,"name":"Locker","nodeType":"UserDefinedTypeName","referencedDeclaration":7166,"src":"675:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"}}}},"value":null,"visibility":"public"},{"constant":false,"id":7178,"name":"scores","nodeType":"VariableDeclaration","scope":7593,"src":"761:38:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":7177,"keyType":{"id":7175,"name":"address","nodeType":"ElementaryTypeName","src":"769:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"761:24:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":7176,"name":"uint","nodeType":"ElementaryTypeName","src":"780:4:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":7180,"name":"totalLocked","nodeType":"VariableDeclaration","scope":7593,"src":"806:26:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7179,"name":"uint256","nodeType":"ElementaryTypeName","src":"806:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7182,"name":"totalLockedLeft","nodeType":"VariableDeclaration","scope":7593,"src":"838:30:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7181,"name":"uint256","nodeType":"ElementaryTypeName","src":"838:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7184,"name":"totalScore","nodeType":"VariableDeclaration","scope":7593,"src":"874:25:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7183,"name":"uint256","nodeType":"ElementaryTypeName","src":"874:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7186,"name":"lockingsCounter","nodeType":"VariableDeclaration","scope":7593,"src":"905:30:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7185,"name":"uint256","nodeType":"ElementaryTypeName","src":"905:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7188,"name":"reputationReward","nodeType":"VariableDeclaration","scope":7593,"src":"969:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7187,"name":"uint256","nodeType":"ElementaryTypeName","src":"969:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7190,"name":"reputationRewardLeft","nodeType":"VariableDeclaration","scope":7593,"src":"1006:35:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7189,"name":"uint256","nodeType":"ElementaryTypeName","src":"1006:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7192,"name":"lockingEndTime","nodeType":"VariableDeclaration","scope":7593,"src":"1047:29:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7191,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7194,"name":"maxLockingPeriod","nodeType":"VariableDeclaration","scope":7593,"src":"1082:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7193,"name":"uint256","nodeType":"ElementaryTypeName","src":"1082:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7196,"name":"lockingStartTime","nodeType":"VariableDeclaration","scope":7593,"src":"1119:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7195,"name":"uint256","nodeType":"ElementaryTypeName","src":"1119:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7198,"name":"redeemEnableTime","nodeType":"VariableDeclaration","scope":7593,"src":"1156:31:17","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7197,"name":"uint256","nodeType":"ElementaryTypeName","src":"1156:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":7276,"nodeType":"Block","src":"1424:725:17","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7206,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"1496:5:17","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1496:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":7208,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7198,"src":"1514:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1496:34:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e6f77203e2072656465656d456e61626c6554696d65","id":7210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1532:24:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""},"value":"now > redeemEnableTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2aaa74b76c01246dfdce8b4cd25b819596936f8b35d25c63e52689b67c7c8439","typeString":"literal_string \"now > redeemEnableTime\""}],"id":7205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1488:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1488:69:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7212,"nodeType":"ExpressionStatement","src":"1488:69:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7214,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"1575:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7216,"indexExpression":{"argumentTypes":null,"id":7215,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1582:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1575:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1598:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1575:24:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73636f72652073686f756c64206265203e2030","id":7219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1601:21:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_392aed1b821fc087bc6dad9aef20f2e9fc8bb2935ccbf7ea4dc351f81eb2a605","typeString":"literal_string \"score should be > 0\""},"value":"score should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_392aed1b821fc087bc6dad9aef20f2e9fc8bb2935ccbf7ea4dc351f81eb2a605","typeString":"literal_string \"score should be > 0\""}],"id":7213,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1567:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1567:56:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7221,"nodeType":"ExpressionStatement","src":"1567:56:17"},{"assignments":[7223],"declarations":[{"constant":false,"id":7223,"name":"score","nodeType":"VariableDeclaration","scope":7276,"src":"1633:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7222,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7227,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7224,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"1649:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7226,"indexExpression":{"argumentTypes":null,"id":7225,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1656:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1649:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1633:36:17"},{"expression":{"argumentTypes":null,"id":7232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7228,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"1679:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7230,"indexExpression":{"argumentTypes":null,"id":7229,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"1686:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1679:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":7231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1702:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1679:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7233,"nodeType":"ExpressionStatement","src":"1679:24:17"},{"assignments":[7235],"declarations":[{"constant":false,"id":7235,"name":"repRelation","nodeType":"VariableDeclaration","scope":7276,"src":"1713:19:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7234,"name":"uint256","nodeType":"ElementaryTypeName","src":"1713:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7240,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7238,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"1745:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7236,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7223,"src":"1735:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"1735:9:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1735:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1713:49:17"},{"expression":{"argumentTypes":null,"id":7246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7241,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"1772:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7244,"name":"totalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"1801:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7242,"name":"repRelation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7235,"src":"1785:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"1785:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7245,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1785:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1772:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7247,"nodeType":"ExpressionStatement","src":"1772:40:17"},{"expression":{"argumentTypes":null,"id":7253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7248,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"1871:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7251,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"1919:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7249,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"1894:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"1894:24:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1894:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1871:59:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7254,"nodeType":"ExpressionStatement","src":"1871:59:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7262,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"2017:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7263,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2029:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7265,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"2051:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":7264,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2043:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7266,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2043:15:17","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":7257,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"1977:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1977:12:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":7259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1977:14:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":7256,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1957:10:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":7260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1957:35:17","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":7261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"1957:59:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":7267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1957:102:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":7268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2061:32:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":7255,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1940:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1940:154:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7270,"nodeType":"ExpressionStatement","src":"1940:154:17"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7272,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7200,"src":"2117:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7273,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7203,"src":"2131:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7271,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7143,"src":"2110:6:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2110:32:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7275,"nodeType":"EmitStatement","src":"2105:37:17"}]},"documentation":"@dev redeem reputation function\n@param _beneficiary the beneficiary for the release\n@return uint256 reputation rewarded","id":7277,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":7201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7200,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7277,"src":"1367:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7199,"name":"address","nodeType":"ElementaryTypeName","src":"1367:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1366:22:17"},"returnParameters":{"id":7204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7203,"name":"reputation","nodeType":"VariableDeclaration","scope":7277,"src":"1404:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7202,"name":"uint256","nodeType":"ElementaryTypeName","src":"1404:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1403:20:17"},"scope":7593,"src":"1351:798:17","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7335,"nodeType":"Block","src":"2423:444:17","statements":[{"assignments":[7287],"declarations":[{"constant":false,"id":7287,"name":"locker","nodeType":"VariableDeclaration","scope":7335,"src":"2433:21:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"},"typeName":{"contractScope":null,"id":7286,"name":"Locker","nodeType":"UserDefinedTypeName","referencedDeclaration":7166,"src":"2433:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"}},"value":null,"visibility":"internal"}],"id":7293,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7288,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7174,"src":"2457:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker storage ref))"}},"id":7290,"indexExpression":{"argumentTypes":null,"id":7289,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"2465:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2457:21:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$","typeString":"mapping(bytes32 => struct Locking4Reputation.Locker storage ref)"}},"id":7292,"indexExpression":{"argumentTypes":null,"id":7291,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"2479:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2457:33:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage","typeString":"struct Locking4Reputation.Locker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2433:57:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7295,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2508:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7296,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"2508:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7297,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2524:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2508:17:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"616d6f756e742073686f756c64206265203e2030","id":7299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2527:22:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_28bcfa3c9b3c8db041ce814167a89d2aa287ca649156ecde1f0d9dee24648ea9","typeString":"literal_string \"amount should be > 0\""},"value":"amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_28bcfa3c9b3c8db041ce814167a89d2aa287ca649156ecde1f0d9dee24648ea9","typeString":"literal_string \"amount should be > 0\""}],"id":7294,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2500:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2500:50:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7301,"nodeType":"ExpressionStatement","src":"2500:50:17"},{"expression":{"argumentTypes":null,"id":7305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7302,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"2560:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7303,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2569:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7304,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"2569:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2560:22:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7306,"nodeType":"ExpressionStatement","src":"2560:22:17"},{"expression":{"argumentTypes":null,"id":7311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7307,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2592:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"2592:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":7310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2608:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2592:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7312,"nodeType":"ExpressionStatement","src":"2592:17:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7314,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2681:5:17","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":7315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"timestamp","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2681:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7316,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7287,"src":"2699:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"releaseTime","nodeType":"MemberAccess","referencedDeclaration":7165,"src":"2699:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2681:36:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636865636b20746865206c6f636b20706572696f642070617373","id":7319,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2719:28:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_2798c2d68226650853d098f4ad9ec350903edcdcf963ca900a7789b4349a5216","typeString":"literal_string \"check the lock period pass\""},"value":"check the lock period pass"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2798c2d68226650853d098f4ad9ec350903edcdcf963ca900a7789b4349a5216","typeString":"literal_string \"check the lock period pass\""}],"id":7313,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2673:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2673:75:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7321,"nodeType":"ExpressionStatement","src":"2673:75:17"},{"expression":{"argumentTypes":null,"id":7327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7322,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"2758:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7325,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"2796:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7323,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"2776:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"2776:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2776:27:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2758:45:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7328,"nodeType":"ExpressionStatement","src":"2758:45:17"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7330,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7281,"src":"2827:10:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7331,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7279,"src":"2839:12:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7332,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7284,"src":"2853:6:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7329,"name":"Release","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7151,"src":"2819:7:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256)"}},"id":7333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2819:41:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7334,"nodeType":"EmitStatement","src":"2814:46:17"}]},"documentation":"@dev release function\n@param _beneficiary the beneficiary for the release\n@param _lockingId the locking id to release\n@return bool","id":7336,"implemented":true,"kind":"function","modifiers":[],"name":"_release","nodeType":"FunctionDefinition","parameters":{"id":7282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7279,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7336,"src":"2348:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7278,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7281,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7336,"src":"2370:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7280,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2370:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2347:42:17"},"returnParameters":{"id":7285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7284,"name":"amount","nodeType":"VariableDeclaration","scope":7336,"src":"2407:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7283,"name":"uint256","nodeType":"ElementaryTypeName","src":"2407:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2406:16:17"},"scope":7593,"src":"2330:537:17","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":7507,"nodeType":"Block","src":"3416:1408:17","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7357,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"3434:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3444:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3434:11:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720616d6f756e742073686f756c64206265203e2030","id":7360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3447:30:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4081391d4503d0456e383c580956a5bc5517ab45129eda26786ba74f337e6109","typeString":"literal_string \"locking amount should be > 0\""},"value":"locking amount should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4081391d4503d0456e383c580956a5bc5517ab45129eda26786ba74f337e6109","typeString":"literal_string \"locking amount should be > 0\""}],"id":7356,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3426:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3426:52:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7362,"nodeType":"ExpressionStatement","src":"3426:52:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7364,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"3496:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":7365,"name":"maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"3507:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3496:27:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f642073686f756c64206265203c3d206d61784c6f636b696e67506572696f64","id":7367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3525:46:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_c5be08cd0e75ccb3b8a9ac99e40dc2ce94e573601b52c88eb4f60bcb56c4c6e9","typeString":"literal_string \"locking period should be <= maxLockingPeriod\""},"value":"locking period should be <= maxLockingPeriod"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c5be08cd0e75ccb3b8a9ac99e40dc2ce94e573601b52c88eb4f60bcb56c4c6e9","typeString":"literal_string \"locking period should be <= maxLockingPeriod\""}],"id":7363,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3488:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3488:84:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7369,"nodeType":"ExpressionStatement","src":"3488:84:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7371,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"3590:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3600:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3590:11:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720706572696f642073686f756c64206265203e2030","id":7374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3603:30:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e1523ca66242174379cc16d810836e790101257f9718a8f865e5dcb60d6e48","typeString":"literal_string \"locking period should be > 0\""},"value":"locking period should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e1523ca66242174379cc16d810836e790101257f9718a8f865e5dcb60d6e48","typeString":"literal_string \"locking period should be > 0\""}],"id":7370,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3582:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3582:52:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7376,"nodeType":"ExpressionStatement","src":"3582:52:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7378,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3706:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":7379,"name":"lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"3713:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3706:21:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b2073686f756c642062652077697468696e2074686520616c6c6f776564206c6f636b696e6720706572696f64","id":7381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3729:50:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_656ff6d5c241d75e6900524c8f076c816fa87af7186a36df1b98e926a5784af4","typeString":"literal_string \"lock should be within the allowed locking period\""},"value":"lock should be within the allowed locking period"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_656ff6d5c241d75e6900524c8f076c816fa87af7186a36df1b98e926a5784af4","typeString":"literal_string \"lock should be within the allowed locking period\""}],"id":7377,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3698:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3698:82:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7383,"nodeType":"ExpressionStatement","src":"3698:82:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7385,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3852:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":7386,"name":"lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"3859:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3852:23:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b2073686f756c64207374617274206166746572206c6f636b696e67537461727454696d65","id":7388,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3877:42:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_404f18d406fd5ce40fb93796ae3f8cbe8836855f06c34523ce6dc4402438ea1e","typeString":"literal_string \"lock should start after lockingStartTime\""},"value":"lock should start after lockingStartTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_404f18d406fd5ce40fb93796ae3f8cbe8836855f06c34523ce6dc4402438ea1e","typeString":"literal_string \"lock should start after lockingStartTime\""}],"id":7384,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3844:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3844:76:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7390,"nodeType":"ExpressionStatement","src":"3844:76:17"},{"expression":{"argumentTypes":null,"id":7401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7391,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"3931:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7396,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21185,"src":"3978:4:17","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}],"id":7395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3970:7:17","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3970:13:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7398,"name":"lockingsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"3985:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7393,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3953:3:17","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":7394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3953:16:17","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":7399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3953:48:17","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":7392,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3943:9:17","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":7400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3943:59:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3931:71:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7402,"nodeType":"ExpressionStatement","src":"3931:71:17"},{"expression":{"argumentTypes":null,"id":7408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7403,"name":"lockingsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"4012:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":7406,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4050:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"expression":{"argumentTypes":null,"id":7404,"name":"lockingsCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7186,"src":"4030:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4030:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4030:22:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4012:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7409,"nodeType":"ExpressionStatement","src":"4012:40:17"},{"assignments":[7411],"declarations":[{"constant":false,"id":7411,"name":"locker","nodeType":"VariableDeclaration","scope":7507,"src":"4063:21:17","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"},"typeName":{"contractScope":null,"id":7410,"name":"Locker","nodeType":"UserDefinedTypeName","referencedDeclaration":7166,"src":"4063:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker"}},"value":null,"visibility":"internal"}],"id":7417,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7412,"name":"lockers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7174,"src":"4087:7:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct Locking4Reputation.Locker storage ref))"}},"id":7414,"indexExpression":{"argumentTypes":null,"id":7413,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4095:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4087:16:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Locker_$7166_storage_$","typeString":"mapping(bytes32 => struct Locking4Reputation.Locker storage ref)"}},"id":7416,"indexExpression":{"argumentTypes":null,"id":7415,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"4104:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4087:27:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage","typeString":"struct Locking4Reputation.Locker storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4063:51:17"},{"expression":{"argumentTypes":null,"id":7422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7418,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7411,"src":"4124:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7420,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":7163,"src":"4124:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7421,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4140:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4124:23:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7423,"nodeType":"ExpressionStatement","src":"4124:23:17"},{"expression":{"argumentTypes":null,"id":7430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7424,"name":"locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7411,"src":"4211:6:17","typeDescriptions":{"typeIdentifier":"t_struct$_Locker_$7166_storage_ptr","typeString":"struct Locking4Reputation.Locker storage pointer"}},"id":7426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"releaseTime","nodeType":"MemberAccess","referencedDeclaration":7165,"src":"4211:18:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7427,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"4232:3:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":7428,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"4238:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4232:13:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4211:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7431,"nodeType":"ExpressionStatement","src":"4211:34:17"},{"expression":{"argumentTypes":null,"id":7437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7432,"name":"totalLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"4255:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7435,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4285:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7433,"name":"totalLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7180,"src":"4269:11:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4269:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4269:24:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4255:38:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7438,"nodeType":"ExpressionStatement","src":"4255:38:17"},{"expression":{"argumentTypes":null,"id":7444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7439,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"4303:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7442,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4341:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7440,"name":"totalLockedLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7182,"src":"4321:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4321:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4321:28:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4303:46:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7445,"nodeType":"ExpressionStatement","src":"4303:46:17"},{"assignments":[7447],"declarations":[{"constant":false,"id":7447,"name":"score","nodeType":"VariableDeclaration","scope":7507,"src":"4359:13:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7446,"name":"uint256","nodeType":"ElementaryTypeName","src":"4359:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7458,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7456,"name":"_denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7346,"src":"4416:12:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7453,"name":"_numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7344,"src":"4400:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7450,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4387:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7448,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"4375:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"4375:11:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4375:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"4375:24:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4375:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"4375:40:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4375:54:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4359:70:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7460,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4447:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4455:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4447:9:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73636f7265206d757374206d65203e2030","id":7463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4458:19:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_18a35fb1b0f7f35d80873437f0a1f77775e2c4ccfc0fcd653dd8d39deca3c479","typeString":"literal_string \"score must me > 0\""},"value":"score must me > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_18a35fb1b0f7f35d80873437f0a1f77775e2c4ccfc0fcd653dd8d39deca3c479","typeString":"literal_string \"score must me > 0\""}],"id":7459,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4439:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4439:39:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7465,"nodeType":"ExpressionStatement","src":"4439:39:17"},{"expression":{"argumentTypes":null,"id":7475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7466,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4488:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7468,"indexExpression":{"argumentTypes":null,"id":7467,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4495:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4488:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7473,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4526:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7469,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4506:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7471,"indexExpression":{"argumentTypes":null,"id":7470,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4513:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4506:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4506:19:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4506:26:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4488:44:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7476,"nodeType":"ExpressionStatement","src":"4488:44:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7478,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4614:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7480,"indexExpression":{"argumentTypes":null,"id":7479,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4621:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4614:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":7481,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"4632:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4614:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7483,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4613:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7484,"name":"scores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7178,"src":"4650:6:17","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":7486,"indexExpression":{"argumentTypes":null,"id":7485,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4657:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4650:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4613:52:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":7488,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"4669:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4613:72:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73636f726520697320746f6f2068696768","id":7490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4695:19:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_4f0819647f62702ec1ee452569e71bf99c2598e2d2d6c5b980893f68ef96ce59","typeString":"literal_string \"score is too high\""},"value":"score is too high"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4f0819647f62702ec1ee452569e71bf99c2598e2d2d6c5b980893f68ef96ce59","typeString":"literal_string \"score is too high\""}],"id":7477,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4605:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4605:110:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7492,"nodeType":"ExpressionStatement","src":"4605:110:17"},{"expression":{"argumentTypes":null,"id":7498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7493,"name":"totalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"4725:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7496,"name":"score","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7447,"src":"4753:5:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7494,"name":"totalScore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7184,"src":"4738:10:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4738:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":7497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4738:21:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4725:34:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7499,"nodeType":"ExpressionStatement","src":"4725:34:17"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7501,"name":"_locker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7342,"src":"4780:7:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7502,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7354,"src":"4789:9:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7503,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7338,"src":"4800:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7504,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7340,"src":"4809:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7500,"name":"Lock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7161,"src":"4775:4:17","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,bytes32,uint256,uint256)"}},"id":7505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4775:42:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7506,"nodeType":"EmitStatement","src":"4770:47:17"}]},"documentation":"@dev lock function\n@param _amount the amount to lock\n@param _period the locking period\n@param _locker the locker\n@param _numerator price numerator\n@param _denominator price denominator\n@return lockingId","id":7508,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":7351,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7348,"src":"3357:14:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":7352,"modifierName":{"argumentTypes":null,"id":7350,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"3347:9:17","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3347:25:17"}],"name":"_lock","nodeType":"FunctionDefinition","parameters":{"id":7349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7338,"name":"_amount","nodeType":"VariableDeclaration","scope":7508,"src":"3165:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7337,"name":"uint256","nodeType":"ElementaryTypeName","src":"3165:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7340,"name":"_period","nodeType":"VariableDeclaration","scope":7508,"src":"3190:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7339,"name":"uint256","nodeType":"ElementaryTypeName","src":"3190:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7342,"name":"_locker","nodeType":"VariableDeclaration","scope":7508,"src":"3215:15:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7341,"name":"address","nodeType":"ElementaryTypeName","src":"3215:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7344,"name":"_numerator","nodeType":"VariableDeclaration","scope":7508,"src":"3240:18:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7343,"name":"uint256","nodeType":"ElementaryTypeName","src":"3240:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7346,"name":"_denominator","nodeType":"VariableDeclaration","scope":7508,"src":"3268:20:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7345,"name":"uint256","nodeType":"ElementaryTypeName","src":"3268:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7348,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7508,"src":"3298:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7347,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3298:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3155:166:17"},"returnParameters":{"id":7355,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7354,"name":"lockingId","nodeType":"VariableDeclaration","scope":7508,"src":"3389:17:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3389:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3388:19:17"},"scope":7593,"src":"3141:1683:17","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":7591,"nodeType":"Block","src":"5647:700:17","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7526,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"5665:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5682:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7527,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"5675:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5675:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"5665:19:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":7531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5686:29:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":7525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5657:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5657:59:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7533,"nodeType":"ExpressionStatement","src":"5657:59:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7535,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7510,"src":"5734:7:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5752:1:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":7536,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"5745:6:17","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5745:9:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"5734:20:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":7540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5756:23:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":7534,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5726:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5726:54:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7542,"nodeType":"ExpressionStatement","src":"5726:54:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7544,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"5798:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":7545,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7514,"src":"5816:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5798:35:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6c6f636b696e6720656e642074696d652073686f756c642062652067726561746572207468616e206c6f636b696e672073746172742074696d65","id":7547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5835:60:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a8c7e00815e525919a0b9d1e0beadb668ee45651d9cb73f81af1903f8ccc91aa","typeString":"literal_string \"locking end time should be greater than locking start time\""},"value":"locking end time should be greater than locking start time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a8c7e00815e525919a0b9d1e0beadb668ee45651d9cb73f81af1903f8ccc91aa","typeString":"literal_string \"locking end time should be greater than locking start time\""}],"id":7543,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5790:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5790:106:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7549,"nodeType":"ExpressionStatement","src":"5790:106:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7551,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"5914:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":7552,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"5935:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5914:36:17","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72656465656d456e61626c6554696d65203e3d206c6f636b696e67456e6454696d65","id":7554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5952:36:17","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e44fecc5e4144d5fbb5f4965043c1c0c2d3ad8b7b2804290e548cfd919951f31","typeString":"literal_string \"redeemEnableTime >= lockingEndTime\""},"value":"redeemEnableTime >= lockingEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e44fecc5e4144d5fbb5f4965043c1c0c2d3ad8b7b2804290e548cfd919951f31","typeString":"literal_string \"redeemEnableTime >= lockingEndTime\""}],"id":7550,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5906:7:17","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5906:83:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7556,"nodeType":"ExpressionStatement","src":"5906:83:17"},{"expression":{"argumentTypes":null,"id":7559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7557,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7188,"src":"6000:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7558,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"6019:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6000:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7560,"nodeType":"ExpressionStatement","src":"6000:36:17"},{"expression":{"argumentTypes":null,"id":7563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7561,"name":"reputationRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7190,"src":"6046:20:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7562,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7512,"src":"6069:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6046:40:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7564,"nodeType":"ExpressionStatement","src":"6046:40:17"},{"expression":{"argumentTypes":null,"id":7567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7565,"name":"lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7192,"src":"6096:14:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7566,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7516,"src":"6113:15:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6096:32:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7568,"nodeType":"ExpressionStatement","src":"6096:32:17"},{"expression":{"argumentTypes":null,"id":7571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7569,"name":"maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7194,"src":"6138:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7570,"name":"_maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7520,"src":"6157:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6138:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7572,"nodeType":"ExpressionStatement","src":"6138:36:17"},{"expression":{"argumentTypes":null,"id":7575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7573,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7168,"src":"6184:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7574,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7510,"src":"6193:7:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"6184:16:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7576,"nodeType":"ExpressionStatement","src":"6184:16:17"},{"expression":{"argumentTypes":null,"id":7579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7577,"name":"lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7196,"src":"6210:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7578,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7514,"src":"6229:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6210:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7580,"nodeType":"ExpressionStatement","src":"6210:36:17"},{"expression":{"argumentTypes":null,"id":7583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7581,"name":"redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7198,"src":"6256:16:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7582,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7518,"src":"6275:17:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6256:36:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7584,"nodeType":"ExpressionStatement","src":"6256:36:17"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7588,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7522,"src":"6325:14:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7585,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21186,"src":"6302:5:17","typeDescriptions":{"typeIdentifier":"t_super$_Locking4Reputation_$7593","typeString":"contract super Locking4Reputation"}},"id":7587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"6302:22:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":7589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6302:38:17","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7590,"nodeType":"ExpressionStatement","src":"6302:38:17"}]},"documentation":"@dev _initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for eth/token locking\n@param _lockingStartTime the locking start time.\n@param _lockingEndTime the locking end time.\n locking is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _maxLockingPeriod maximum locking period allowed.","id":7592,"implemented":true,"kind":"function","modifiers":[],"name":"_initialize","nodeType":"FunctionDefinition","parameters":{"id":7523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7510,"name":"_avatar","nodeType":"VariableDeclaration","scope":7592,"src":"5408:14:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7509,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"5408:6:17","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7512,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":7592,"src":"5432:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7511,"name":"uint256","nodeType":"ElementaryTypeName","src":"5432:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7514,"name":"_lockingStartTime","nodeType":"VariableDeclaration","scope":7592,"src":"5467:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7513,"name":"uint256","nodeType":"ElementaryTypeName","src":"5467:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7516,"name":"_lockingEndTime","nodeType":"VariableDeclaration","scope":7592,"src":"5502:23:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7515,"name":"uint256","nodeType":"ElementaryTypeName","src":"5502:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7518,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":7592,"src":"5535:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7517,"name":"uint256","nodeType":"ElementaryTypeName","src":"5535:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7520,"name":"_maxLockingPeriod","nodeType":"VariableDeclaration","scope":7592,"src":"5570:25:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7519,"name":"uint256","nodeType":"ElementaryTypeName","src":"5570:7:17","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7522,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7592,"src":"5605:22:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5605:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5398:231:17"},"returnParameters":{"id":7524,"nodeType":"ParameterList","parameters":[],"src":"5647:0:17"},"scope":7593,"src":"5378:969:17","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":7594,"src":"128:6222:17"}],"src":"0:6351:17"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.122Z","devdoc":{"methods":{"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"redeem(address)":{"details":"redeem reputation function","params":{"_beneficiary":"the beneficiary for the release"},"return":"uint256 reputation rewarded"}},"title":"A locker contract"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/LockingEth4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/LockingEth4Reputation.json new file mode 100644 index 00000000..9a6ec397 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/LockingEth4Reputation.json @@ -0,0 +1 @@ +{"contractName":"LockingEth4Reputation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_locker","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Release","type":"event"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"lockers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLockingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"scores","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_reputationReward","type":"uint256"},{"internalType":"uint256","name":"_lockingStartTime","type":"uint256"},{"internalType":"uint256","name":"_lockingEndTime","type":"uint256"},{"internalType":"uint256","name":"_redeemEnableTime","type":"uint256"},{"internalType":"uint256","name":"_maxLockingPeriod","type":"uint256"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_lockingId","type":"bytes32"}],"name":"release","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"lock","outputs":[{"internalType":"bytes32","name":"lockingId","type":"bytes32"}],"payable":true,"stateMutability":"payable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"Lock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockingStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockingEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_redeemEnableTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxLockingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"lockingId\",\"type\":\"bytes32\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"lockers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releaseTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxLockingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"scores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLockedLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalScore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"initialize(address,uint256,uint256,uint256,uint256,uint256,bytes32)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar to mint reputation from\",\"_lockingEndTime\":\"the locking end time. locking is disable after this time.\",\"_lockingStartTime\":\"locking starting period time.\",\"_maxLockingPeriod\":\"maximum locking period allowed.\",\"_redeemEnableTime\":\"redeem enable time . redeem reputation can be done after this time.\",\"_reputationReward\":\"the total reputation this contract will reward for eth locking\"}},\"lock(uint256,bytes32)\":{\"details\":\"lock function\",\"params\":{\"_period\":\"the locking period\"},\"return\":\"lockingId the unique Id\"},\"redeem(address)\":{\"details\":\"redeem reputation function\",\"params\":{\"_beneficiary\":\"the beneficiary for the release\"},\"return\":\"uint256 reputation rewarded\"},\"release(address,bytes32)\":{\"details\":\"release locked eth\",\"params\":{\"_beneficiary\":\"the release _beneficiary\",\"_lockingId\":\"the locking id\"},\"return\":\"bool\"}},\"title\":\"A scheme for locking ETH for reputation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/LockingEth4Reputation.sol\":\"LockingEth4Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol\":{\"keccak256\":\"0x0180348aed9e3a89f810920e1876b37991a50f6166fb3d16a624db7a8d7785e9\",\"urls\":[\"bzz-raw://8ae7d576bab9e4ba527a731461821c1427fbdf899c9253a50aeb2134f996029b\",\"dweb:/ipfs/QmWVkTjrmvm6U7mrKLskDWcKUxBhkswNeN9VvgXgY7qK2H\"]},\"/Users/oren/daostack/arc/contracts/schemes/LockingEth4Reputation.sol\":{\"keccak256\":\"0xe26ccab5b804dc2c1ce2c5a1c7bbe67e45d7467af178851bc656ed1337bde7de\",\"urls\":[\"bzz-raw://969ca4e156ae053ffd439cb59f90a62bc97b1d5f067c8047d6aa4c7e61bfcfaf\",\"dweb:/ipfs/QmShJFAUaHxf48XjsqBTMKqsniMoogmUi9UY8Jx2HcDzaA\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"120:1789:18:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;120:1789:18;;;;;;;","deployedSourceMap":"120:1789:18:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:31:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1156:31:17;;;:::i;:::-;;;;;;;;;;;;;;;;1720:186:18;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1720:186:18;;;;;;;:::i;1119:31:17:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1119:31:17;;;:::i;806:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;806:26:17;;;:::i;551:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;551:20:17;;;:::i;:::-;;;;-1:-1:-1;;;;;551:20:17;;;;;;;;;;;;;;727:477:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;727:477:18;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;727:477:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;407:101:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;407:101:7;;;:::i;761:38:17:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;761:38:17;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;761:38:17;-1:-1:-1;;;;;761:38:17;;:::i;639:59::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;639:59:17;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;639:59:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1351:798;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1351:798:17;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1351:798:17;-1:-1:-1;;;;;1351:798:17;;:::i;1047:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1047:29:17;;;:::i;1006:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1006:35:17;;;:::i;1082:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1082:31:17;;;:::i;874:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;874:25:17;;;:::i;905:30::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;905:30:17;;;:::i;838:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;838:30:17;;;:::i;1369:223:18:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1369:223:18;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1369:223:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;969:31:17;;8:9:-1;5:2;;;30:1;27;20:12;5:2;969:31:17;;;:::i;1156:::-;;;;:::o;1720:186:18:-;1798:17;1834:65;1846:9;1857:7;1866:10;1878:1;1881;1884:14;1834:11;:65::i;:::-;1827:72;;1720:186;;;;;:::o;1119:31:17:-;;;;:::o;806:26::-;;;;:::o;551:20::-;;;-1:-1:-1;;;;;551:20:17;;:::o;727:477:18:-;1005:192;1032:7;1049:17;1076;1103:15;1128:17;1155;1182:14;1005:17;:192::i;:::-;727:477;;;;;;;:::o;407:101:7:-;458:7;488:13;407:101;:::o;761:38:17:-;;;;;;;;;;;;;:::o;639:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1351:798::-;1404:18;1514:16;;1496:15;:34;1488:69;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1575:20:17;;1598:1;1575:20;;;:6;:20;;;;;;1567:56;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:20:17;;1633:13;1649:20;;;:6;:20;;;;;;;1679:24;;;;1745:16;;1649:20;;1633:13;1735:27;;1649:20;;1735:27;:9;:27;:::i;:::-;1713:49;;1785:27;1801:10;;1785:11;:15;;:27;;;;:::i;:::-;1894:20;;1772:40;;-1:-1:-1;1894:36:17;;1772:40;1894:36;:24;:36;:::i;:::-;1871:20;:59;1977:6;;:14;;;-1:-1:-1;;;1977:14:17;;;;-1:-1:-1;;;;;1977:6:17;;;;:12;;:14;;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;1977:14:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1977:14:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1977:14:17;2051:6;;1957:102;;;-1:-1:-1;;;1957:102:17;;;;;;;;-1:-1:-1;;;;;1957:102:17;;;;;;;2051:6;;;1957:102;;;;;;:59;;;;;;;:102;;;;;1977:14;;1957:102;;;;;;;2051:6;1957:59;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;1957:102:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1957:102:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1957:102:17;1940:154;;;;;-1:-1:-1;;;1940:154:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:32;;;;;;;;-1:-1:-1;;;;;2110:32:17;;;;;;;;;;;;;1351:798;;;;;:::o;1047:29::-;;;;:::o;1006:35::-;;;;:::o;1082:31::-;;;;:::o;874:25::-;;;;:::o;905:30::-;;;;:::o;838:::-;;;;:::o;1369:223:18:-;1451:4;1467:14;1484:40;1499:12;1513:10;1484:14;:40::i;:::-;1534:29;;1467:57;;-1:-1:-1;;;;;;1534:21:18;;;:29;;;;;1467:57;;1534:29;;;;1467:57;1534:21;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;1581:4:18;;1369:223;-1:-1:-1;;;;1369:223:18:o;969:31:17:-;;;;:::o;3141:1683::-;3389:17;3357:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3444:1:17;3434:7;:11;3426:52;;;;;-1:-1:-1;;;3426:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;3507:16;;3496:7;:27;;3488:84;;;;-1:-1:-1;;;3488:84:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:1;3590:7;:11;3582:52;;;;;-1:-1:-1;;;3582:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:14;;3706:3;:21;;3698:82;;;;-1:-1:-1;;;3698:82:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3859:16;;3852:3;:23;;3844:76;;;;-1:-1:-1;;;3844:76:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3985:15;;3953:48;;;3978:4;3953:48;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3953:48:17;;;;;;;3943:59;;;;;;-1:-1:-1;4030:22:17;;4050:1;4030:22;:19;:22;:::i;:::-;4012:15;:40;-1:-1:-1;;;;;4087:16:17;;4063:21;4087:16;;;:7;:16;;;;;;;;:27;;;;;;;;4124:23;;;4232:3;:13;;4211:18;;;:34;4269:11;;:24;;4140:7;4269:24;:15;:24;:::i;:::-;4255:11;:38;4321:15;;:28;;4341:7;4321:28;:19;:28;:::i;:::-;4303:15;:46;4359:13;4375:54;4416:12;4375:36;4400:10;4375:20;:7;4387;4375:20;:11;:20;:::i;:::-;:24;:36;:24;:36;:::i;:::-;:40;:54;:40;:54;:::i;:::-;4359:70;;4455:1;4447:5;:9;4439:39;;;;;-1:-1:-1;;;4439:39:17;;;;;;;;;;;;-1:-1:-1;;;4439:39:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;4506:15:17;;;;;;:6;:15;;;;;;:26;;4526:5;4506:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;4488:15:17;;;;;;:6;:15;;;;;:44;;;4669:16;;;4614:34;;;4488:44;4613:52;;;;;:72;4605:110;;;;;-1:-1:-1;;;4605:110:17;;;;;;;;;;;;-1:-1:-1;;;4605:110:17;;;;;;;;;;;;;;;4738:10;;:21;;4753:5;4738:21;:14;:21;:::i;:::-;4725:10;:34;4775:42;;;;;;;;;;;;;;4789:9;;-1:-1:-1;;;;;4775:42:17;;;;;;;;;;;;;;311:1:7;;3141:1683:17;;;;;;;;;:::o;5378:969::-;5665:6;;-1:-1:-1;;;;;5665:6:17;:19;5657:59;;;;;-1:-1:-1;;;5657:59:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5734:20:17;;5726:54;;;;;-1:-1:-1;;;5726:54:17;;;;;;;;;;;;-1:-1:-1;;;5726:54:17;;;;;;;;;;;;;;;5816:17;5798:15;:35;5790:106;;;;-1:-1:-1;;;5790:106:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5935:15;5914:17;:36;;5906:83;;;;-1:-1:-1;;;5906:83:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:16;:36;;;6046:20;:40;;;6096:14;:32;;;6138:16;:36;;;6184:6;:16;;-1:-1:-1;;;;;;6184:16:17;-1:-1:-1;;;;;6184:16:17;;;;;6210;:36;;;6256:16;:36;;;6302:38;6325:14;6302:22;:38::i;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3073:130;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;2330:537:17:-;-1:-1:-1;;;;;2457:21:17;;2407:14;2457:21;;;:7;:21;;;;;;;;:33;;;;;;;;2508:13;;2500:50;;;;;-1:-1:-1;;;2500:50:17;;;;;;;;;;;;-1:-1:-1;;;2500:50:17;;;;;;;;;;;;;;;2569:13;;;2592:17;;-1:-1:-1;2699:18:17;;;2569:13;;-1:-1:-1;2681:15:17;:36;2673:75;;;;;-1:-1:-1;;;2673:75:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:15;;:27;;2796:6;2776:27;:19;:27;:::i;:::-;2758:15;:45;2819:41;;;;;;;;-1:-1:-1;;;;;2819:41:17;;;2827:10;;2819:41;;;;;;;;;2330:537;;;;;:::o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;658:187:7;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o;3718:338:66:-;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:66;-1:-1:-1;;;1888:5:66;;;1732:187::o","source":"pragma solidity 0.5.13;\n\nimport \"./Locking4Reputation.sol\";\n\n/**\n * @title A scheme for locking ETH for reputation\n */\n\ncontract LockingEth4Reputation is Locking4Reputation {\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _reputationReward the total reputation this contract will reward\n * for eth locking\n * @param _lockingStartTime locking starting period time.\n * @param _lockingEndTime the locking end time.\n * locking is disable after this time.\n * @param _redeemEnableTime redeem enable time .\n * redeem reputation can be done after this time.\n * @param _maxLockingPeriod maximum locking period allowed.\n */\n function initialize(\n Avatar _avatar,\n uint256 _reputationReward,\n uint256 _lockingStartTime,\n uint256 _lockingEndTime,\n uint256 _redeemEnableTime,\n uint256 _maxLockingPeriod,\n bytes32 _agreementHash )\n external\n {\n super._initialize(\n _avatar,\n _reputationReward,\n _lockingStartTime,\n _lockingEndTime,\n _redeemEnableTime,\n _maxLockingPeriod,\n _agreementHash);\n }\n\n /**\n * @dev release locked eth\n * @param _beneficiary the release _beneficiary\n * @param _lockingId the locking id\n * @return bool\n */\n function release(address payable _beneficiary, bytes32 _lockingId) public returns(bool) {\n uint256 amount = super._release(_beneficiary, _lockingId);\n _beneficiary.transfer(amount);\n\n return true;\n }\n\n /**\n * @dev lock function\n * @param _period the locking period\n * @return lockingId the unique Id\n */\n function lock(uint256 _period, bytes32 _agreementHash) public payable returns(bytes32 lockingId) {\n return super._lock(msg.value, _period, msg.sender, 1, 1, _agreementHash);\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/LockingEth4Reputation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/LockingEth4Reputation.sol","exportedSymbols":{"LockingEth4Reputation":[7677]},"id":7678,"nodeType":"SourceUnit","nodes":[{"id":7595,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:18"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","file":"./Locking4Reputation.sol","id":7596,"nodeType":"ImportDirective","scope":7678,"sourceUnit":7594,"src":"25:34:18","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7597,"name":"Locking4Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":7593,"src":"154:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}},"id":7598,"nodeType":"InheritanceSpecifier","src":"154:18:18"}],"contractDependencies":[2302,7593],"contractKind":"contract","documentation":"@title A scheme for locking ETH for reputation","fullyImplemented":true,"id":7677,"linearizedBaseContracts":[7677,7593,2302],"name":"LockingEth4Reputation","nodeType":"ContractDefinition","nodes":[{"body":{"id":7627,"nodeType":"Block","src":"995:209:18","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7618,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"1032:7:18","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":7619,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"1049:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7620,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"1076:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7621,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"1103:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7622,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"1128:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7623,"name":"_maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"1155:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7624,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"1182:14:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"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_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7615,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"1005:5:18","typeDescriptions":{"typeIdentifier":"t_super$_LockingEth4Reputation_$7677","typeString":"contract super LockingEth4Reputation"}},"id":7617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":7592,"src":"1005:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Avatar_$337_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (contract Avatar,uint256,uint256,uint256,uint256,uint256,bytes32)"}},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1005:192:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7626,"nodeType":"ExpressionStatement","src":"1005:192:18"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for eth locking\n@param _lockingStartTime locking starting period time.\n@param _lockingEndTime the locking end time.\n locking is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _maxLockingPeriod maximum locking period allowed.","id":7628,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":7613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7600,"name":"_avatar","nodeType":"VariableDeclaration","scope":7628,"src":"756:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7599,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"756:6:18","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7602,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":7628,"src":"780:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7601,"name":"uint256","nodeType":"ElementaryTypeName","src":"780:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7604,"name":"_lockingStartTime","nodeType":"VariableDeclaration","scope":7628,"src":"815:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7603,"name":"uint256","nodeType":"ElementaryTypeName","src":"815:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7606,"name":"_lockingEndTime","nodeType":"VariableDeclaration","scope":7628,"src":"850:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7605,"name":"uint256","nodeType":"ElementaryTypeName","src":"850:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7608,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":7628,"src":"883:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7607,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7610,"name":"_maxLockingPeriod","nodeType":"VariableDeclaration","scope":7628,"src":"918:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7609,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7612,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7628,"src":"953:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"953:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"746:231:18"},"returnParameters":{"id":7614,"nodeType":"ParameterList","parameters":[],"src":"995:0:18"},"scope":7677,"src":"727:477:18","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":7653,"nodeType":"Block","src":"1457:135:18","statements":[{"assignments":[7638],"declarations":[{"constant":false,"id":7638,"name":"amount","nodeType":"VariableDeclaration","scope":7653,"src":"1467:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7637,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7644,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7641,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7630,"src":"1499:12:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7642,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"1513:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7639,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"1484:5:18","typeDescriptions":{"typeIdentifier":"t_super$_LockingEth4Reputation_$7677","typeString":"contract super LockingEth4Reputation"}},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_release","nodeType":"MemberAccess","referencedDeclaration":7336,"src":"1484:14:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) returns (uint256)"}},"id":7643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1484:40:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1467:57:18"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7648,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7638,"src":"1556:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7645,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7630,"src":"1534:12:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1534:21:18","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1534:29:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7650,"nodeType":"ExpressionStatement","src":"1534:29:18"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":7651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1581:4:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7636,"id":7652,"nodeType":"Return","src":"1574:11:18"}]},"documentation":"@dev release locked eth\n@param _beneficiary the release _beneficiary\n@param _lockingId the locking id\n@return bool","id":7654,"implemented":true,"kind":"function","modifiers":[],"name":"release","nodeType":"FunctionDefinition","parameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7630,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7654,"src":"1386:28:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":7629,"name":"address","nodeType":"ElementaryTypeName","src":"1386:15:18","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":7632,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7654,"src":"1416:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1416:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1385:50:18"},"returnParameters":{"id":7636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7635,"name":"","nodeType":"VariableDeclaration","scope":7654,"src":"1451:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7634,"name":"bool","nodeType":"ElementaryTypeName","src":"1451:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1450:6:18"},"scope":7677,"src":"1369:223:18","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7675,"nodeType":"Block","src":"1817:89:18","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7665,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1846:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1846:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7667,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"1857:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1866:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1866:10:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"31","id":7670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"hexValue":"31","id":7671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:1:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":7672,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"1884:14:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7663,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"1834:5:18","typeDescriptions":{"typeIdentifier":"t_super$_LockingEth4Reputation_$7677","typeString":"contract super LockingEth4Reputation"}},"id":7664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_lock","nodeType":"MemberAccess","referencedDeclaration":7508,"src":"1834:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,address,uint256,uint256,bytes32) returns (bytes32)"}},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1834:65:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7662,"id":7674,"nodeType":"Return","src":"1827:72:18"}]},"documentation":"@dev lock function\n@param _period the locking period\n@return lockingId the unique Id","id":7676,"implemented":true,"kind":"function","modifiers":[],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":7659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7656,"name":"_period","nodeType":"VariableDeclaration","scope":7676,"src":"1734:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7658,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7676,"src":"1751:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1751:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1733:41:18"},"returnParameters":{"id":7662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7661,"name":"lockingId","nodeType":"VariableDeclaration","scope":7676,"src":"1798:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1798:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1797:19:18"},"scope":7677,"src":"1720:186:18","stateMutability":"payable","superFunction":null,"visibility":"public"}],"scope":7678,"src":"120:1789:18"}],"src":"0:1910:18"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/LockingEth4Reputation.sol","exportedSymbols":{"LockingEth4Reputation":[7677]},"id":7678,"nodeType":"SourceUnit","nodes":[{"id":7595,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:18"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","file":"./Locking4Reputation.sol","id":7596,"nodeType":"ImportDirective","scope":7678,"sourceUnit":7594,"src":"25:34:18","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7597,"name":"Locking4Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":7593,"src":"154:18:18","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}},"id":7598,"nodeType":"InheritanceSpecifier","src":"154:18:18"}],"contractDependencies":[2302,7593],"contractKind":"contract","documentation":"@title A scheme for locking ETH for reputation","fullyImplemented":true,"id":7677,"linearizedBaseContracts":[7677,7593,2302],"name":"LockingEth4Reputation","nodeType":"ContractDefinition","nodes":[{"body":{"id":7627,"nodeType":"Block","src":"995:209:18","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7618,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7600,"src":"1032:7:18","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":7619,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7602,"src":"1049:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7620,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7604,"src":"1076:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7621,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7606,"src":"1103:15:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7622,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7608,"src":"1128:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7623,"name":"_maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7610,"src":"1155:17:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7624,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7612,"src":"1182:14:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"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_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7615,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"1005:5:18","typeDescriptions":{"typeIdentifier":"t_super$_LockingEth4Reputation_$7677","typeString":"contract super LockingEth4Reputation"}},"id":7617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":7592,"src":"1005:17:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Avatar_$337_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (contract Avatar,uint256,uint256,uint256,uint256,uint256,bytes32)"}},"id":7625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1005:192:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7626,"nodeType":"ExpressionStatement","src":"1005:192:18"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for eth locking\n@param _lockingStartTime locking starting period time.\n@param _lockingEndTime the locking end time.\n locking is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _maxLockingPeriod maximum locking period allowed.","id":7628,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":7613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7600,"name":"_avatar","nodeType":"VariableDeclaration","scope":7628,"src":"756:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7599,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"756:6:18","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7602,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":7628,"src":"780:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7601,"name":"uint256","nodeType":"ElementaryTypeName","src":"780:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7604,"name":"_lockingStartTime","nodeType":"VariableDeclaration","scope":7628,"src":"815:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7603,"name":"uint256","nodeType":"ElementaryTypeName","src":"815:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7606,"name":"_lockingEndTime","nodeType":"VariableDeclaration","scope":7628,"src":"850:23:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7605,"name":"uint256","nodeType":"ElementaryTypeName","src":"850:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7608,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":7628,"src":"883:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7607,"name":"uint256","nodeType":"ElementaryTypeName","src":"883:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7610,"name":"_maxLockingPeriod","nodeType":"VariableDeclaration","scope":7628,"src":"918:25:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7609,"name":"uint256","nodeType":"ElementaryTypeName","src":"918:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7612,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7628,"src":"953:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"953:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"746:231:18"},"returnParameters":{"id":7614,"nodeType":"ParameterList","parameters":[],"src":"995:0:18"},"scope":7677,"src":"727:477:18","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":7653,"nodeType":"Block","src":"1457:135:18","statements":[{"assignments":[7638],"declarations":[{"constant":false,"id":7638,"name":"amount","nodeType":"VariableDeclaration","scope":7653,"src":"1467:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7637,"name":"uint256","nodeType":"ElementaryTypeName","src":"1467:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7644,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7641,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7630,"src":"1499:12:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7642,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7632,"src":"1513:10:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7639,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"1484:5:18","typeDescriptions":{"typeIdentifier":"t_super$_LockingEth4Reputation_$7677","typeString":"contract super LockingEth4Reputation"}},"id":7640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_release","nodeType":"MemberAccess","referencedDeclaration":7336,"src":"1484:14:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) returns (uint256)"}},"id":7643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1484:40:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1467:57:18"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7648,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7638,"src":"1556:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7645,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7630,"src":"1534:12:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":7647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1534:21:18","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":7649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1534:29:18","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7650,"nodeType":"ExpressionStatement","src":"1534:29:18"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":7651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1581:4:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7636,"id":7652,"nodeType":"Return","src":"1574:11:18"}]},"documentation":"@dev release locked eth\n@param _beneficiary the release _beneficiary\n@param _lockingId the locking id\n@return bool","id":7654,"implemented":true,"kind":"function","modifiers":[],"name":"release","nodeType":"FunctionDefinition","parameters":{"id":7633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7630,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7654,"src":"1386:28:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":7629,"name":"address","nodeType":"ElementaryTypeName","src":"1386:15:18","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"},{"constant":false,"id":7632,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7654,"src":"1416:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1416:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1385:50:18"},"returnParameters":{"id":7636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7635,"name":"","nodeType":"VariableDeclaration","scope":7654,"src":"1451:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7634,"name":"bool","nodeType":"ElementaryTypeName","src":"1451:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1450:6:18"},"scope":7677,"src":"1369:223:18","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7675,"nodeType":"Block","src":"1817:89:18","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7665,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1846:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1846:9:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7667,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7656,"src":"1857:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7668,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1866:3:18","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1866:10:18","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"31","id":7670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"hexValue":"31","id":7671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1881:1:18","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":7672,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7658,"src":"1884:14:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7663,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21196,"src":"1834:5:18","typeDescriptions":{"typeIdentifier":"t_super$_LockingEth4Reputation_$7677","typeString":"contract super LockingEth4Reputation"}},"id":7664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_lock","nodeType":"MemberAccess","referencedDeclaration":7508,"src":"1834:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,address,uint256,uint256,bytes32) returns (bytes32)"}},"id":7673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1834:65:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":7662,"id":7674,"nodeType":"Return","src":"1827:72:18"}]},"documentation":"@dev lock function\n@param _period the locking period\n@return lockingId the unique Id","id":7676,"implemented":true,"kind":"function","modifiers":[],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":7659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7656,"name":"_period","nodeType":"VariableDeclaration","scope":7676,"src":"1734:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7655,"name":"uint256","nodeType":"ElementaryTypeName","src":"1734:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7658,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7676,"src":"1751:22:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7657,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1751:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1733:41:18"},"returnParameters":{"id":7662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7661,"name":"lockingId","nodeType":"VariableDeclaration","scope":7676,"src":"1798:17:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1798:7:18","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1797:19:18"},"scope":7677,"src":"1720:186:18","stateMutability":"payable","superFunction":null,"visibility":"public"}],"scope":7678,"src":"120:1789:18"}],"src":"0:1910:18"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.127Z","devdoc":{"methods":{"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"initialize(address,uint256,uint256,uint256,uint256,uint256,bytes32)":{"details":"initialize","params":{"_avatar":"the avatar to mint reputation from","_lockingEndTime":"the locking end time. locking is disable after this time.","_lockingStartTime":"locking starting period time.","_maxLockingPeriod":"maximum locking period allowed.","_redeemEnableTime":"redeem enable time . redeem reputation can be done after this time.","_reputationReward":"the total reputation this contract will reward for eth locking"}},"lock(uint256,bytes32)":{"details":"lock function","params":{"_period":"the locking period"},"return":"lockingId the unique Id"},"redeem(address)":{"details":"redeem reputation function","params":{"_beneficiary":"the beneficiary for the release"},"return":"uint256 reputation rewarded"},"release(address,bytes32)":{"details":"release locked eth","params":{"_beneficiary":"the release _beneficiary","_lockingId":"the locking id"},"return":"bool"}},"title":"A scheme for locking ETH for reputation"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/LockingToken4Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/LockingToken4Reputation.json new file mode 100644 index 00000000..6a507659 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/LockingToken4Reputation.json @@ -0,0 +1 @@ +{"contractName":"LockingToken4Reputation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_locker","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_period","type":"uint256"}],"name":"Lock","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numerator","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"LockToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_lockingId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Release","type":"event"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"lockedTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"lockers","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"releaseTime","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lockingsCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxLockingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"priceOracleContract","outputs":[{"internalType":"contract PriceOracleInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"redeemEnableTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"scores","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLocked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalLockedLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalScore","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_reputationReward","type":"uint256"},{"internalType":"uint256","name":"_lockingStartTime","type":"uint256"},{"internalType":"uint256","name":"_lockingEndTime","type":"uint256"},{"internalType":"uint256","name":"_redeemEnableTime","type":"uint256"},{"internalType":"uint256","name":"_maxLockingPeriod","type":"uint256"},{"internalType":"contract PriceOracleInterface","name":"_priceOracleContract","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_lockingId","type":"bytes32"}],"name":"release","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"uint256","name":"_period","type":"uint256"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"lock","outputs":[{"internalType":"bytes32","name":"lockingId","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_locker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"}],\"name\":\"Lock\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numerator\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_denominator\",\"type\":\"uint256\"}],\"name\":\"LockToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Release\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockingStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lockingEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_redeemEnableTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxLockingPeriod\",\"type\":\"uint256\"},{\"internalType\":\"contract PriceOracleInterface\",\"name\":\"_priceOracleContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_period\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"lockingId\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"lockedTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"lockers\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"releaseTime\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lockingsCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"maxLockingPeriod\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"priceOracleContract\",\"outputs\":[{\"internalType\":\"contract PriceOracleInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"redeemEnableTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_lockingId\",\"type\":\"bytes32\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"scores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLocked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalLockedLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalScore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"initialize(address,uint256,uint256,uint256,uint256,uint256,address,bytes32)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the avatar to mint reputation from\",\"_lockingEndTime\":\"the locking end time. locking is disable after this time.\",\"_lockingStartTime\":\"locking starting period time.\",\"_maxLockingPeriod\":\"maximum locking period allowed.\",\"_priceOracleContract\":\"the price oracle contract which the locked token will be validated against\",\"_redeemEnableTime\":\"redeem enable time . redeem reputation can be done after this time.\",\"_reputationReward\":\"the total reputation this contract will reward for the token locking\"}},\"lock(uint256,uint256,address,bytes32)\":{\"details\":\"lock function\",\"params\":{\"_amount\":\"the amount to lock\",\"_period\":\"the locking period\",\"_token\":\"the token to lock - this should be whitelisted at the priceOracleContract\"},\"return\":\"lockingId\"},\"redeem(address)\":{\"details\":\"redeem reputation function\",\"params\":{\"_beneficiary\":\"the beneficiary for the release\"},\"return\":\"uint256 reputation rewarded\"},\"release(address,bytes32)\":{\"details\":\"release locked tokens\",\"params\":{\"_beneficiary\":\"the release _beneficiary\",\"_lockingId\":\"the locking id\"},\"return\":\"bool\"}},\"title\":\"A scheme for locking ERC20 Tokens for reputation\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/LockingToken4Reputation.sol\":\"LockingToken4Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol\":{\"keccak256\":\"0x0180348aed9e3a89f810920e1876b37991a50f6166fb3d16a624db7a8d7785e9\",\"urls\":[\"bzz-raw://8ae7d576bab9e4ba527a731461821c1427fbdf899c9253a50aeb2134f996029b\",\"dweb:/ipfs/QmWVkTjrmvm6U7mrKLskDWcKUxBhkswNeN9VvgXgY7qK2H\"]},\"/Users/oren/daostack/arc/contracts/schemes/LockingToken4Reputation.sol\":{\"keccak256\":\"0xd769dae7d9f4a2dd85fb99c2974707da455b34b831a391622b1930d9cdb85049\",\"urls\":[\"bzz-raw://a0f1dbe549096cb8e0311ad9823e226ff996bd7f755970c7128d2aa74c98f1c2\",\"dweb:/ipfs/QmfDuPRwrhiJiR9fm4B2rGTT6eFPxqTxhnYCMaZomMiEMT\"]},\"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol\":{\"keccak256\":\"0x039506b7d17da35e14379bc12cb2896e11f527f89827f2abb5001dd32fff911b\",\"urls\":[\"bzz-raw://0d629d58127bcb1808e61152e3deb8e9381829316be5abc0fac4a363f6f1733f\",\"dweb:/ipfs/QmfRzBypSmVxWCuvPMFduxKv9sqBfJBxB5VXqmUi7Aw1EE\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"199:2968:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;199:2968:19;;;;;;;","deployedSourceMap":"199:2968:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;199:2968:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1156:31:17;;;:::i;:::-;;;;;;;;;;;;;;;;294:47:19;;;:::i;:::-;;;;-1:-1:-1;;;;;294:47:19;;;;;;;;;;;;;;1119:31:17;;;:::i;806:26::-;;;:::i;551:20::-;;;:::i;407:101:7:-;;;:::i;761:38:17:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;761:38:17;-1:-1:-1;;;;;761:38:17;;:::i;1227:579:19:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1227:579:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;639:59:17;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;639:59:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2469:696:19;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2469:696:19;;;;;;;;-1:-1:-1;;;;;2469:696:19;;;;;;;;;;:::i;1351:798:17:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1351:798:17;-1:-1:-1;;;;;1351:798:17;;:::i;1047:29::-;;;:::i;1006:35::-;;;:::i;1082:31::-;;;:::i;874:25::-;;;:::i;905:30::-;;;:::i;838:::-;;;:::i;1974:245:19:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1974:245:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;378:49;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;378:49:19;;:::i;969:31:17:-;;;:::i;1156:::-;;;;:::o;294:47:19:-;;;-1:-1:-1;;;;;294:47:19;;:::o;1119:31:17:-;;;;:::o;806:26::-;;;;:::o;551:20::-;;;-1:-1:-1;;;;;551:20:17;;:::o;407:101:7:-;458:7;488:13;407:101;:::o;761:38:17:-;;;;;;;;;;;;;:::o;1227:579:19:-;1555:19;:42;;-1:-1:-1;;;;;;1555:42:19;-1:-1:-1;;;;;1555:42:19;;;;;1607:192;1634:7;1651:17;1678;1705:15;1730:17;1757;1784:14;1607:17;:192::i;:::-;1227:579;;;;;;;;:::o;639:59:17:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2469:696:19:-;2714:19;;:36;;;-1:-1:-1;;;2714:36:19;;-1:-1:-1;;;;;2714:36:19;;;;;;;;;2600:17;;;;;;2714:19;;;;;:28;;:36;;;;;;;;;;;:19;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;2714:36:19;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2714:36:19;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2714:36:19;;;;;;;;;-1:-1:-1;2714:36:19;-1:-1:-1;2769:13:19;2761:49;;;;;-1:-1:-1;;;2761:49:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;2842:1;2828:11;:15;2820:53;;;;;-1:-1:-1;;;2820:53:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;2884:59;-1:-1:-1;;;;;2884:23:19;;2908:10;2928:4;2935:7;2884:59;:23;:59;:::i;:::-;2966:81;2978:7;2987;2996:10;3008:9;3019:11;3032:14;2966:11;:81::i;:::-;3058:23;;;;:12;:23;;;;;;;;;:32;;-1:-1:-1;;;;;;3058:32:19;-1:-1:-1;;;;;3058:32:19;;;;;;;;3106:52;;;;;;;;;;;;;3058:23;;-1:-1:-1;3058:32:19;:23;;3106:52;;;;;;;;2469:696;;;;;;;;:::o;1351:798:17:-;1404:18;1514:16;;1496:15;:34;1488:69;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;-1:-1:-1;;;1488:69:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1575:20:17;;1598:1;1575:20;;;:6;:20;;;;;;1567:56;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;-1:-1:-1;;;1567:56:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;1649:20:17;;1633:13;1649:20;;;:6;:20;;;;;;;1679:24;;;;1745:16;;1649:20;;1633:13;1735:27;;1649:20;;1735:27;:9;:27;:::i;:::-;1713:49;;1785:27;1801:10;;1785:11;:15;;:27;;;;:::i;:::-;1894:20;;1772:40;;-1:-1:-1;1894:36:17;;1772:40;1894:36;:24;:36;:::i;:::-;1871:20;:59;1977:6;;:14;;;-1:-1:-1;;;1977:14:17;;;;-1:-1:-1;;;;;1977:6:17;;;;:12;;:14;;;;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;1977:14:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1977:14:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1977:14:17;2051:6;;1957:102;;;-1:-1:-1;;;1957:102:17;;;;;;;;-1:-1:-1;;;;;1957:102:17;;;;;;;2051:6;;;1957:102;;;;;;:59;;;;;;;:102;;;;;1977:14;;1957:102;;;;;;;2051:6;1957:59;:102;;;5:2:-1;;;;30:1;27;20:12;5:2;1957:102:17;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1957:102:17;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1957:102:17;1940:154;;;;;-1:-1:-1;;;1940:154:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;2110:32;;;;;;;;-1:-1:-1;;;;;2110:32:17;;;;;;;;;;;;;1351:798;;;;;:::o;1047:29::-;;;;:::o;1006:35::-;;;;:::o;1082:31::-;;;;:::o;874:25::-;;;;:::o;905:30::-;;;;:::o;838:::-;;;;:::o;1974:245:19:-;2048:4;2064:14;2081:40;2096:12;2110:10;2081:14;:40::i;:::-;2131:24;;;;:12;:24;;;;;;2064:57;;-1:-1:-1;2131:59:19;;-1:-1:-1;;;;;2131:24:19;2169:12;2064:57;2131:59;:37;:59;:::i;:::-;2208:4;2201:11;;;1974:245;;;;;:::o;378:49::-;;;;;;;;;;;;-1:-1:-1;;;;;378:49:19;;:::o;969:31:17:-;;;;:::o;5378:969::-;5665:6;;-1:-1:-1;;;;;5665:6:17;:19;5657:59;;;;;-1:-1:-1;;;5657:59:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5734:20:17;;5726:54;;;;;-1:-1:-1;;;5726:54:17;;;;;;;;;;;;-1:-1:-1;;;5726:54:17;;;;;;;;;;;;;;;5816:17;5798:15;:35;5790:106;;;;-1:-1:-1;;;5790:106:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5935:15;5914:17;:36;;5906:83;;;;-1:-1:-1;;;5906:83:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6000:16;:36;;;6046:20;:40;;;6096:14;:32;;;6138:16;:36;;;6184:6;:16;;-1:-1:-1;;;;;;6184:16:17;-1:-1:-1;;;;;6184:16:17;;;;;6210;:36;;;6256:16;:36;;;6302:38;6325:14;6302:22;:38::i;:::-;5378:969;;;;;;;:::o;1566:597:6:-;1726:23;:10;-1:-1:-1;;;;;1726:21:6;;:23::i;:::-;1718:32;;;;;;1762:12;1776:24;1871:10;-1:-1:-1;;;;;1871:15:6;837:46;;;;;;;;;;;;;;;;;827:57;;;;;;;1887:65;;;-1:-1:-1;;;;;1887:65:6;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1887:65:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1887:65:6;;;179:29:-1;;;;160:49;;1871:82:6;;;;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1871:82:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1761:192:6;;;;2021:7;2013:16;;;;;;2076:18;;:23;;:79;;;2104:11;:18;2126:2;2104:24;:50;;;;;2133:11;2145:2;2133:15;;;;;;;;;;;;-1:-1:-1;;;;;;2133:15:6;:20;;2104:50;2068:88;;;;;;1566:597;;;;;;:::o;3141:1683:17:-;3389:17;3357:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3444:1:17;3434:7;:11;3426:52;;;;;-1:-1:-1;;;3426:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;3507:16;;3496:7;:27;;3488:84;;;;-1:-1:-1;;;3488:84:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:1;3590:7;:11;3582:52;;;;;-1:-1:-1;;;3582:52:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:14;;3706:3;:21;;3698:82;;;;-1:-1:-1;;;3698:82:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3859:16;;3852:3;:23;;3844:76;;;;-1:-1:-1;;;3844:76:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3985:15;;3953:48;;;3978:4;3953:48;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3953:48:17;;;;;;;3943:59;;;;;;-1:-1:-1;4030:22:17;;4050:1;4030:22;:19;:22;:::i;:::-;4012:15;:40;-1:-1:-1;;;;;4087:16:17;;4063:21;4087:16;;;:7;:16;;;;;;;;:27;;;;;;;;4124:23;;;4232:3;:13;;4211:18;;;:34;4269:11;;:24;;4140:7;4269:24;:15;:24;:::i;:::-;4255:11;:38;4321:15;;:28;;4341:7;4321:28;:19;:28;:::i;:::-;4303:15;:46;4359:13;4375:54;4416:12;4375:36;4400:10;4375:20;:7;4387;4375:20;:11;:20;:::i;:::-;:24;:36;:24;:36;:::i;:::-;:40;:54;:40;:54;:::i;:::-;4359:70;;4455:1;4447:5;:9;4439:39;;;;;-1:-1:-1;;;4439:39:17;;;;;;;;;;;;-1:-1:-1;;;4439:39:17;;;;;;;;;;;;;;;-1:-1:-1;;;;;4506:15:17;;;;;;:6;:15;;;;;;:26;;4526:5;4506:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;4488:15:17;;;;;;:6;:15;;;;;:44;;;4669:16;;;4614:34;;;4488:44;4613:52;;;;;:72;4605:110;;;;;-1:-1:-1;;;4605:110:17;;;;;;;;;;;;-1:-1:-1;;;4605:110:17;;;;;;;;;;;;;;;4738:10;;:21;;4753:5;4738:21;:14;:21;:::i;:::-;4725:10;:34;4775:42;;;;;;;;;;;;;;4789:9;;-1:-1:-1;;;;;4775:42:17;;;;;;;;;;;;;;311:1:7;;3141:1683:17;;;;;;;;;:::o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:1;2159:459;-1:-1:-1;;;2159:459:66:o;3073:130::-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;:3;:39::i;1274:134::-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;2330:537:17:-;-1:-1:-1;;;;;2457:21:17;;2407:14;2457:21;;;:7;:21;;;;;;;;:33;;;;;;;;2508:13;;2500:50;;;;;-1:-1:-1;;;2500:50:17;;;;;;;;;;;;-1:-1:-1;;;2500:50:17;;;;;;;;;;;;;;;2569:13;;;2592:17;;-1:-1:-1;2699:18:17;;;2569:13;;-1:-1:-1;2681:15:17;:36;2673:75;;;;;-1:-1:-1;;;2673:75:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;2776:15;;:27;;2796:6;2776:27;:19;:27;:::i;:::-;2758:15;:45;2819:41;;;;;;;;-1:-1:-1;;;;;2819:41:17;;;2827:10;;2819:41;;;;;;;;;2330:537;;;;;:::o;993:567:6:-;1134:23;:10;-1:-1:-1;;;;;1134:21:6;;:23::i;:::-;1126:32;;;;;;730:34;;;;;;;;;;;;;;;;;1295:54;;-1:-1:-1;;;;;1295:54:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1295:54:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1279:71:6;;;;1170:12;;1184:24;;1279:15;;;1295:54;1279:71;;;25:18:-1;1279:71:6;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1279:71:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1169:181:6;;;;1418:7;1410:16;;;;;;1473:18;;:23;;:79;;;1501:11;:18;1523:2;1501:24;:50;;;;;1530:11;1542:2;1530:15;;;;;;;;;;;;-1:-1:-1;;;;;;1530:15:6;:20;;1501:50;1465:88;;;;;;993:567;;;;;:::o;658:187:7:-;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;3718:338;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o;1732:187::-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1837:29:66;-1:-1:-1;;;1888:5:66;;;1732:187::o","source":"pragma solidity 0.5.13;\n\nimport \"./Locking4Reputation.sol\";\nimport \"./PriceOracleInterface.sol\";\nimport \"../libs/SafeERC20.sol\";\n\n\n/**\n * @title A scheme for locking ERC20 Tokens for reputation\n */\n\ncontract LockingToken4Reputation is Locking4Reputation {\n using SafeERC20 for address;\n\n PriceOracleInterface public priceOracleContract;\n // lockingId => token\n mapping(bytes32 => address) public lockedTokens;\n\n event LockToken(bytes32 indexed _lockingId, address indexed _token, uint256 _numerator, uint256 _denominator);\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _reputationReward the total reputation this contract will reward\n * for the token locking\n * @param _lockingStartTime locking starting period time.\n * @param _lockingEndTime the locking end time.\n * locking is disable after this time.\n * @param _redeemEnableTime redeem enable time .\n * redeem reputation can be done after this time.\n * @param _maxLockingPeriod maximum locking period allowed.\n * @param _priceOracleContract the price oracle contract which the locked token will be\n * validated against\n */\n function initialize(\n Avatar _avatar,\n uint256 _reputationReward,\n uint256 _lockingStartTime,\n uint256 _lockingEndTime,\n uint256 _redeemEnableTime,\n uint256 _maxLockingPeriod,\n PriceOracleInterface _priceOracleContract,\n bytes32 _agreementHash)\n external\n {\n priceOracleContract = _priceOracleContract;\n super._initialize(\n _avatar,\n _reputationReward,\n _lockingStartTime,\n _lockingEndTime,\n _redeemEnableTime,\n _maxLockingPeriod,\n _agreementHash);\n }\n\n /**\n * @dev release locked tokens\n * @param _beneficiary the release _beneficiary\n * @param _lockingId the locking id\n * @return bool\n */\n function release(address _beneficiary, bytes32 _lockingId) public returns(bool) {\n uint256 amount = super._release(_beneficiary, _lockingId);\n lockedTokens[_lockingId].safeTransfer(_beneficiary, amount);\n\n return true;\n }\n\n /**\n * @dev lock function\n * @param _amount the amount to lock\n * @param _period the locking period\n * @param _token the token to lock - this should be whitelisted at the priceOracleContract\n * @return lockingId\n */\n function lock(uint256 _amount,\n uint256 _period,\n address _token,\n bytes32 _agreementHash)\n public returns(bytes32 lockingId) {\n\n uint256 numerator;\n uint256 denominator;\n\n (numerator, denominator) = priceOracleContract.getPrice(_token);\n\n require(numerator > 0, \"numerator should be > 0\");\n require(denominator > 0, \"denominator should be > 0\");\n\n _token.safeTransferFrom(msg.sender, address(this), _amount);\n\n lockingId = super._lock(_amount, _period, msg.sender, numerator, denominator, _agreementHash);\n\n lockedTokens[lockingId] = _token;\n\n emit LockToken(lockingId, _token, numerator, denominator);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/LockingToken4Reputation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/LockingToken4Reputation.sol","exportedSymbols":{"LockingToken4Reputation":[7848]},"id":7849,"nodeType":"SourceUnit","nodes":[{"id":7679,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:19"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","file":"./Locking4Reputation.sol","id":7680,"nodeType":"ImportDirective","scope":7849,"sourceUnit":7594,"src":"25:34:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","file":"./PriceOracleInterface.sol","id":7681,"nodeType":"ImportDirective","scope":7849,"sourceUnit":7861,"src":"60:36:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":7682,"nodeType":"ImportDirective","scope":7849,"sourceUnit":2258,"src":"97:31:19","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7683,"name":"Locking4Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":7593,"src":"235:18:19","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}},"id":7684,"nodeType":"InheritanceSpecifier","src":"235:18:19"}],"contractDependencies":[2302,7593],"contractKind":"contract","documentation":"@title A scheme for locking ERC20 Tokens for reputation","fullyImplemented":true,"id":7848,"linearizedBaseContracts":[7848,7593,2302],"name":"LockingToken4Reputation","nodeType":"ContractDefinition","nodes":[{"id":7687,"libraryName":{"contractScope":null,"id":7685,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"266:9:19","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"260:28:19","typeName":{"id":7686,"name":"address","nodeType":"ElementaryTypeName","src":"280:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":7689,"name":"priceOracleContract","nodeType":"VariableDeclaration","scope":7848,"src":"294:47:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"},"typeName":{"contractScope":null,"id":7688,"name":"PriceOracleInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":7860,"src":"294:20:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":7693,"name":"lockedTokens","nodeType":"VariableDeclaration","scope":7848,"src":"378:49:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":7692,"keyType":{"id":7690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"378:29:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":7691,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":7703,"name":"LockToken","nodeType":"EventDefinition","parameters":{"id":7702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7695,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7703,"src":"450:26:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"450:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":7697,"indexed":true,"name":"_token","nodeType":"VariableDeclaration","scope":7703,"src":"478:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7696,"name":"address","nodeType":"ElementaryTypeName","src":"478:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7699,"indexed":false,"name":"_numerator","nodeType":"VariableDeclaration","scope":7703,"src":"502:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7698,"name":"uint256","nodeType":"ElementaryTypeName","src":"502:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7701,"indexed":false,"name":"_denominator","nodeType":"VariableDeclaration","scope":7703,"src":"522:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7700,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"449:94:19"},"src":"434:110:19"},{"body":{"id":7738,"nodeType":"Block","src":"1545:261:19","statements":[{"expression":{"argumentTypes":null,"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7722,"name":"priceOracleContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7689,"src":"1555:19:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7723,"name":"_priceOracleContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"1577:20:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"src":"1555:42:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"id":7725,"nodeType":"ExpressionStatement","src":"1555:42:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7729,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7705,"src":"1634:7:19","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":7730,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"1651:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7731,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"1678:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7732,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"1705:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7733,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"1730:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7734,"name":"_maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"1757:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7735,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7719,"src":"1784:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"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_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7726,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21200,"src":"1607:5:19","typeDescriptions":{"typeIdentifier":"t_super$_LockingToken4Reputation_$7848","typeString":"contract super LockingToken4Reputation"}},"id":7728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":7592,"src":"1607:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Avatar_$337_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (contract Avatar,uint256,uint256,uint256,uint256,uint256,bytes32)"}},"id":7736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1607:192:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7737,"nodeType":"ExpressionStatement","src":"1607:192:19"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for the token locking\n@param _lockingStartTime locking starting period time.\n@param _lockingEndTime the locking end time.\n locking is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _maxLockingPeriod maximum locking period allowed.\n@param _priceOracleContract the price oracle contract which the locked token will be\n validated against","id":7739,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":7720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7705,"name":"_avatar","nodeType":"VariableDeclaration","scope":7739,"src":"1256:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7704,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1256:6:19","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7707,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":7739,"src":"1280:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7706,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7709,"name":"_lockingStartTime","nodeType":"VariableDeclaration","scope":7739,"src":"1315:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1315:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7711,"name":"_lockingEndTime","nodeType":"VariableDeclaration","scope":7739,"src":"1350:23:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7713,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":7739,"src":"1383:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7712,"name":"uint256","nodeType":"ElementaryTypeName","src":"1383:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7715,"name":"_maxLockingPeriod","nodeType":"VariableDeclaration","scope":7739,"src":"1418:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1418:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7717,"name":"_priceOracleContract","nodeType":"VariableDeclaration","scope":7739,"src":"1453:41:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"},"typeName":{"contractScope":null,"id":7716,"name":"PriceOracleInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":7860,"src":"1453:20:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":7719,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7739,"src":"1504:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1504:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1246:281:19"},"returnParameters":{"id":7721,"nodeType":"ParameterList","parameters":[],"src":"1545:0:19"},"scope":7848,"src":"1227:579:19","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":7766,"nodeType":"Block","src":"2054:165:19","statements":[{"assignments":[7749],"declarations":[{"constant":false,"id":7749,"name":"amount","nodeType":"VariableDeclaration","scope":7766,"src":"2064:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2064:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7755,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7752,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"2096:12:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7753,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"2110:10:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7750,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21200,"src":"2081:5:19","typeDescriptions":{"typeIdentifier":"t_super$_LockingToken4Reputation_$7848","typeString":"contract super LockingToken4Reputation"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_release","nodeType":"MemberAccess","referencedDeclaration":7336,"src":"2081:14:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) returns (uint256)"}},"id":7754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2081:40:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2064:57:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7760,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"2169:12:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7761,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7749,"src":"2183:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7756,"name":"lockedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"2131:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":7758,"indexExpression":{"argumentTypes":null,"id":7757,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"2144:10:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2131:24:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"2131:37:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2131:59:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"ExpressionStatement","src":"2131:59:19"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":7764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2208:4:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7747,"id":7765,"nodeType":"Return","src":"2201:11:19"}]},"documentation":"@dev release locked tokens\n@param _beneficiary the release _beneficiary\n@param _lockingId the locking id\n@return bool","id":7767,"implemented":true,"kind":"function","modifiers":[],"name":"release","nodeType":"FunctionDefinition","parameters":{"id":7744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7741,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7767,"src":"1991:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7740,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7743,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7767,"src":"2013:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2013:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1990:42:19"},"returnParameters":{"id":7747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7746,"name":"","nodeType":"VariableDeclaration","scope":7767,"src":"2048:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7745,"name":"bool","nodeType":"ElementaryTypeName","src":"2048:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2047:6:19"},"scope":7848,"src":"1974:245:19","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7846,"nodeType":"Block","src":"2619:546:19","statements":[{"assignments":[7781],"declarations":[{"constant":false,"id":7781,"name":"numerator","nodeType":"VariableDeclaration","scope":7846,"src":"2630:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7780,"name":"uint256","nodeType":"ElementaryTypeName","src":"2630:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7782,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2630:17:19"},{"assignments":[7784],"declarations":[{"constant":false,"id":7784,"name":"denominator","nodeType":"VariableDeclaration","scope":7846,"src":"2657:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2657:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7785,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2657:19:19"},{"expression":{"argumentTypes":null,"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":7786,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"2688:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7787,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"2699:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7788,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2687:24:19","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7791,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"2743:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":7789,"name":"priceOracleContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7689,"src":"2714:19:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":7859,"src":"2714:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) view external returns (uint256,uint256)"}},"id":7792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2714:36:19","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"2687:63:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7794,"nodeType":"ExpressionStatement","src":"2687:63:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7796,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"2769:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2781:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2769:13:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d657261746f722073686f756c64206265203e2030","id":7799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2784:25:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_45af8ae7721513ccf517d5e85adacb3a23e8b58dfd8ac205eba8c8f098c757e8","typeString":"literal_string \"numerator should be > 0\""},"value":"numerator should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45af8ae7721513ccf517d5e85adacb3a23e8b58dfd8ac205eba8c8f098c757e8","typeString":"literal_string \"numerator should be > 0\""}],"id":7795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2761:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2761:49:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7801,"nodeType":"ExpressionStatement","src":"2761:49:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7803,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"2828:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2842:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2828:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64656e6f6d696e61746f722073686f756c64206265203e2030","id":7806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2845:27:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a4dd3ca4aa7c831663fdf97a30965ff2492a3d68871d6308196778df39939881","typeString":"literal_string \"denominator should be > 0\""},"value":"denominator should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4dd3ca4aa7c831663fdf97a30965ff2492a3d68871d6308196778df39939881","typeString":"literal_string \"denominator should be > 0\""}],"id":7802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2820:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2820:53:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7808,"nodeType":"ExpressionStatement","src":"2820:53:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2908:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2908:10:19","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21199,"src":"2928:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_LockingToken4Reputation_$7848","typeString":"contract LockingToken4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LockingToken4Reputation_$7848","typeString":"contract LockingToken4Reputation"}],"id":7814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2920:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2920:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7817,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7769,"src":"2935:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7809,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"2884:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"2884:23:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2884:59:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7819,"nodeType":"ExpressionStatement","src":"2884:59:19"},{"expression":{"argumentTypes":null,"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7820,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"2954:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7823,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7769,"src":"2978:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7824,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7771,"src":"2987:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2996:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2996:10:19","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7827,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"3008:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7828,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"3019:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7829,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7775,"src":"3032:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7821,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21200,"src":"2966:5:19","typeDescriptions":{"typeIdentifier":"t_super$_LockingToken4Reputation_$7848","typeString":"contract super LockingToken4Reputation"}},"id":7822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_lock","nodeType":"MemberAccess","referencedDeclaration":7508,"src":"2966:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,address,uint256,uint256,bytes32) returns (bytes32)"}},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2966:81:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2954:93:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7832,"nodeType":"ExpressionStatement","src":"2954:93:19"},{"expression":{"argumentTypes":null,"id":7837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7833,"name":"lockedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"3058:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":7835,"indexExpression":{"argumentTypes":null,"id":7834,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"3071:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3058:23:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7836,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"3084:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3058:32:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7838,"nodeType":"ExpressionStatement","src":"3058:32:19"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7840,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"3116:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7841,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"3127:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7842,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"3135:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7843,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"3146:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7839,"name":"LockToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7703,"src":"3106:9:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":7844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3106:52:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7845,"nodeType":"EmitStatement","src":"3101:57:19"}]},"documentation":"@dev lock function\n@param _amount the amount to lock\n@param _period the locking period\n@param _token the token to lock - this should be whitelisted at the priceOracleContract\n@return lockingId","id":7847,"implemented":true,"kind":"function","modifiers":[],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":7776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7769,"name":"_amount","nodeType":"VariableDeclaration","scope":7847,"src":"2483:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7768,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7771,"name":"_period","nodeType":"VariableDeclaration","scope":7847,"src":"2508:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7770,"name":"uint256","nodeType":"ElementaryTypeName","src":"2508:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7773,"name":"_token","nodeType":"VariableDeclaration","scope":7847,"src":"2533:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7772,"name":"address","nodeType":"ElementaryTypeName","src":"2533:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7775,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7847,"src":"2557:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2557:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2482:98:19"},"returnParameters":{"id":7779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7778,"name":"lockingId","nodeType":"VariableDeclaration","scope":7847,"src":"2600:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2600:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2599:19:19"},"scope":7848,"src":"2469:696:19","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":7849,"src":"199:2968:19"}],"src":"0:3168:19"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/LockingToken4Reputation.sol","exportedSymbols":{"LockingToken4Reputation":[7848]},"id":7849,"nodeType":"SourceUnit","nodes":[{"id":7679,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:19"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Locking4Reputation.sol","file":"./Locking4Reputation.sol","id":7680,"nodeType":"ImportDirective","scope":7849,"sourceUnit":7594,"src":"25:34:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","file":"./PriceOracleInterface.sol","id":7681,"nodeType":"ImportDirective","scope":7849,"sourceUnit":7861,"src":"60:36:19","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":7682,"nodeType":"ImportDirective","scope":7849,"sourceUnit":2258,"src":"97:31:19","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7683,"name":"Locking4Reputation","nodeType":"UserDefinedTypeName","referencedDeclaration":7593,"src":"235:18:19","typeDescriptions":{"typeIdentifier":"t_contract$_Locking4Reputation_$7593","typeString":"contract Locking4Reputation"}},"id":7684,"nodeType":"InheritanceSpecifier","src":"235:18:19"}],"contractDependencies":[2302,7593],"contractKind":"contract","documentation":"@title A scheme for locking ERC20 Tokens for reputation","fullyImplemented":true,"id":7848,"linearizedBaseContracts":[7848,7593,2302],"name":"LockingToken4Reputation","nodeType":"ContractDefinition","nodes":[{"id":7687,"libraryName":{"contractScope":null,"id":7685,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"266:9:19","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"260:28:19","typeName":{"id":7686,"name":"address","nodeType":"ElementaryTypeName","src":"280:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":7689,"name":"priceOracleContract","nodeType":"VariableDeclaration","scope":7848,"src":"294:47:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"},"typeName":{"contractScope":null,"id":7688,"name":"PriceOracleInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":7860,"src":"294:20:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":7693,"name":"lockedTokens","nodeType":"VariableDeclaration","scope":7848,"src":"378:49:19","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":7692,"keyType":{"id":7690,"name":"bytes32","nodeType":"ElementaryTypeName","src":"386:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"378:29:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueType":{"id":7691,"name":"address","nodeType":"ElementaryTypeName","src":"399:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":7703,"name":"LockToken","nodeType":"EventDefinition","parameters":{"id":7702,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7695,"indexed":true,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7703,"src":"450:26:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"450:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":7697,"indexed":true,"name":"_token","nodeType":"VariableDeclaration","scope":7703,"src":"478:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7696,"name":"address","nodeType":"ElementaryTypeName","src":"478:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7699,"indexed":false,"name":"_numerator","nodeType":"VariableDeclaration","scope":7703,"src":"502:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7698,"name":"uint256","nodeType":"ElementaryTypeName","src":"502:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7701,"indexed":false,"name":"_denominator","nodeType":"VariableDeclaration","scope":7703,"src":"522:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7700,"name":"uint256","nodeType":"ElementaryTypeName","src":"522:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"449:94:19"},"src":"434:110:19"},{"body":{"id":7738,"nodeType":"Block","src":"1545:261:19","statements":[{"expression":{"argumentTypes":null,"id":7724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7722,"name":"priceOracleContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7689,"src":"1555:19:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7723,"name":"_priceOracleContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7717,"src":"1577:20:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"src":"1555:42:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"id":7725,"nodeType":"ExpressionStatement","src":"1555:42:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7729,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7705,"src":"1634:7:19","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":7730,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7707,"src":"1651:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7731,"name":"_lockingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7709,"src":"1678:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7732,"name":"_lockingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7711,"src":"1705:15:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7733,"name":"_redeemEnableTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7713,"src":"1730:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7734,"name":"_maxLockingPeriod","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7715,"src":"1757:17:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7735,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7719,"src":"1784:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"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_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7726,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21200,"src":"1607:5:19","typeDescriptions":{"typeIdentifier":"t_super$_LockingToken4Reputation_$7848","typeString":"contract super LockingToken4Reputation"}},"id":7728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_initialize","nodeType":"MemberAccess","referencedDeclaration":7592,"src":"1607:17:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Avatar_$337_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$__$","typeString":"function (contract Avatar,uint256,uint256,uint256,uint256,uint256,bytes32)"}},"id":7736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1607:192:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7737,"nodeType":"ExpressionStatement","src":"1607:192:19"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _reputationReward the total reputation this contract will reward\n for the token locking\n@param _lockingStartTime locking starting period time.\n@param _lockingEndTime the locking end time.\n locking is disable after this time.\n@param _redeemEnableTime redeem enable time .\n redeem reputation can be done after this time.\n@param _maxLockingPeriod maximum locking period allowed.\n@param _priceOracleContract the price oracle contract which the locked token will be\n validated against","id":7739,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":7720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7705,"name":"_avatar","nodeType":"VariableDeclaration","scope":7739,"src":"1256:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7704,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1256:6:19","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7707,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":7739,"src":"1280:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7706,"name":"uint256","nodeType":"ElementaryTypeName","src":"1280:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7709,"name":"_lockingStartTime","nodeType":"VariableDeclaration","scope":7739,"src":"1315:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7708,"name":"uint256","nodeType":"ElementaryTypeName","src":"1315:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7711,"name":"_lockingEndTime","nodeType":"VariableDeclaration","scope":7739,"src":"1350:23:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1350:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7713,"name":"_redeemEnableTime","nodeType":"VariableDeclaration","scope":7739,"src":"1383:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7712,"name":"uint256","nodeType":"ElementaryTypeName","src":"1383:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7715,"name":"_maxLockingPeriod","nodeType":"VariableDeclaration","scope":7739,"src":"1418:25:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7714,"name":"uint256","nodeType":"ElementaryTypeName","src":"1418:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7717,"name":"_priceOracleContract","nodeType":"VariableDeclaration","scope":7739,"src":"1453:41:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"},"typeName":{"contractScope":null,"id":7716,"name":"PriceOracleInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":7860,"src":"1453:20:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":7719,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7739,"src":"1504:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7718,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1504:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1246:281:19"},"returnParameters":{"id":7721,"nodeType":"ParameterList","parameters":[],"src":"1545:0:19"},"scope":7848,"src":"1227:579:19","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":7766,"nodeType":"Block","src":"2054:165:19","statements":[{"assignments":[7749],"declarations":[{"constant":false,"id":7749,"name":"amount","nodeType":"VariableDeclaration","scope":7766,"src":"2064:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2064:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7755,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7752,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"2096:12:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7753,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"2110:10:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7750,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21200,"src":"2081:5:19","typeDescriptions":{"typeIdentifier":"t_super$_LockingToken4Reputation_$7848","typeString":"contract super LockingToken4Reputation"}},"id":7751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_release","nodeType":"MemberAccess","referencedDeclaration":7336,"src":"2081:14:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,bytes32) returns (uint256)"}},"id":7754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2081:40:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2064:57:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7760,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7741,"src":"2169:12:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7761,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7749,"src":"2183:6:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7756,"name":"lockedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"2131:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":7758,"indexExpression":{"argumentTypes":null,"id":7757,"name":"_lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7743,"src":"2144:10:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2131:24:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"2131:37:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":7762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2131:59:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7763,"nodeType":"ExpressionStatement","src":"2131:59:19"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":7764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2208:4:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":7747,"id":7765,"nodeType":"Return","src":"2201:11:19"}]},"documentation":"@dev release locked tokens\n@param _beneficiary the release _beneficiary\n@param _lockingId the locking id\n@return bool","id":7767,"implemented":true,"kind":"function","modifiers":[],"name":"release","nodeType":"FunctionDefinition","parameters":{"id":7744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7741,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":7767,"src":"1991:20:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7740,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7743,"name":"_lockingId","nodeType":"VariableDeclaration","scope":7767,"src":"2013:18:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7742,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2013:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1990:42:19"},"returnParameters":{"id":7747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7746,"name":"","nodeType":"VariableDeclaration","scope":7767,"src":"2048:4:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":7745,"name":"bool","nodeType":"ElementaryTypeName","src":"2048:4:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2047:6:19"},"scope":7848,"src":"1974:245:19","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":7846,"nodeType":"Block","src":"2619:546:19","statements":[{"assignments":[7781],"declarations":[{"constant":false,"id":7781,"name":"numerator","nodeType":"VariableDeclaration","scope":7846,"src":"2630:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7780,"name":"uint256","nodeType":"ElementaryTypeName","src":"2630:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7782,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2630:17:19"},{"assignments":[7784],"declarations":[{"constant":false,"id":7784,"name":"denominator","nodeType":"VariableDeclaration","scope":7846,"src":"2657:19:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7783,"name":"uint256","nodeType":"ElementaryTypeName","src":"2657:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7785,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2657:19:19"},{"expression":{"argumentTypes":null,"id":7793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":7786,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"2688:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7787,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"2699:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":7788,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2687:24:19","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7791,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"2743:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":7789,"name":"priceOracleContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7689,"src":"2714:19:19","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"id":7790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPrice","nodeType":"MemberAccess","referencedDeclaration":7859,"src":"2714:28:19","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (address) view external returns (uint256,uint256)"}},"id":7792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2714:36:19","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"2687:63:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7794,"nodeType":"ExpressionStatement","src":"2687:63:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7796,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"2769:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2781:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2769:13:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6e756d657261746f722073686f756c64206265203e2030","id":7799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2784:25:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_45af8ae7721513ccf517d5e85adacb3a23e8b58dfd8ac205eba8c8f098c757e8","typeString":"literal_string \"numerator should be > 0\""},"value":"numerator should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_45af8ae7721513ccf517d5e85adacb3a23e8b58dfd8ac205eba8c8f098c757e8","typeString":"literal_string \"numerator should be > 0\""}],"id":7795,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2761:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2761:49:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7801,"nodeType":"ExpressionStatement","src":"2761:49:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7803,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"2828:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":7804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2842:1:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2828:15:19","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"64656e6f6d696e61746f722073686f756c64206265203e2030","id":7806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2845:27:19","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a4dd3ca4aa7c831663fdf97a30965ff2492a3d68871d6308196778df39939881","typeString":"literal_string \"denominator should be > 0\""},"value":"denominator should be > 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_a4dd3ca4aa7c831663fdf97a30965ff2492a3d68871d6308196778df39939881","typeString":"literal_string \"denominator should be > 0\""}],"id":7802,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2820:7:19","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2820:53:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7808,"nodeType":"ExpressionStatement","src":"2820:53:19"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7812,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2908:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2908:10:19","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21199,"src":"2928:4:19","typeDescriptions":{"typeIdentifier":"t_contract$_LockingToken4Reputation_$7848","typeString":"contract LockingToken4Reputation"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_LockingToken4Reputation_$7848","typeString":"contract LockingToken4Reputation"}],"id":7814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2920:7:19","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":7816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2920:13:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7817,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7769,"src":"2935:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":7809,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"2884:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"2884:23:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":7818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2884:59:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7819,"nodeType":"ExpressionStatement","src":"2884:59:19"},{"expression":{"argumentTypes":null,"id":7831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7820,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"2954:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7823,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7769,"src":"2978:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7824,"name":"_period","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7771,"src":"2987:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7825,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2996:3:19","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":7826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2996:10:19","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":7827,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"3008:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7828,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"3019:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7829,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7775,"src":"3032:14:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":7821,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21200,"src":"2966:5:19","typeDescriptions":{"typeIdentifier":"t_super$_LockingToken4Reputation_$7848","typeString":"contract super LockingToken4Reputation"}},"id":7822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"_lock","nodeType":"MemberAccess","referencedDeclaration":7508,"src":"2966:11:19","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes32_$returns$_t_bytes32_$","typeString":"function (uint256,uint256,address,uint256,uint256,bytes32) returns (bytes32)"}},"id":7830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2966:81:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2954:93:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":7832,"nodeType":"ExpressionStatement","src":"2954:93:19"},{"expression":{"argumentTypes":null,"id":7837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7833,"name":"lockedTokens","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7693,"src":"3058:12:19","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":7835,"indexExpression":{"argumentTypes":null,"id":7834,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"3071:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3058:23:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7836,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"3084:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3058:32:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7838,"nodeType":"ExpressionStatement","src":"3058:32:19"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":7840,"name":"lockingId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7778,"src":"3116:9:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":7841,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7773,"src":"3127:6:19","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":7842,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7781,"src":"3135:9:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":7843,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7784,"src":"3146:11:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7839,"name":"LockToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7703,"src":"3106:9:19","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":7844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3106:52:19","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7845,"nodeType":"EmitStatement","src":"3101:57:19"}]},"documentation":"@dev lock function\n@param _amount the amount to lock\n@param _period the locking period\n@param _token the token to lock - this should be whitelisted at the priceOracleContract\n@return lockingId","id":7847,"implemented":true,"kind":"function","modifiers":[],"name":"lock","nodeType":"FunctionDefinition","parameters":{"id":7776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7769,"name":"_amount","nodeType":"VariableDeclaration","scope":7847,"src":"2483:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7768,"name":"uint256","nodeType":"ElementaryTypeName","src":"2483:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7771,"name":"_period","nodeType":"VariableDeclaration","scope":7847,"src":"2508:15:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7770,"name":"uint256","nodeType":"ElementaryTypeName","src":"2508:7:19","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7773,"name":"_token","nodeType":"VariableDeclaration","scope":7847,"src":"2533:14:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7772,"name":"address","nodeType":"ElementaryTypeName","src":"2533:7:19","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":7775,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":7847,"src":"2557:22:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7774,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2557:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2482:98:19"},"returnParameters":{"id":7779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7778,"name":"lockingId","nodeType":"VariableDeclaration","scope":7847,"src":"2600:17:19","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":7777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2600:7:19","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2599:19:19"},"scope":7848,"src":"2469:696:19","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":7849,"src":"199:2968:19"}],"src":"0:3168:19"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.129Z","devdoc":{"methods":{"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"initialize(address,uint256,uint256,uint256,uint256,uint256,address,bytes32)":{"details":"initialize","params":{"_avatar":"the avatar to mint reputation from","_lockingEndTime":"the locking end time. locking is disable after this time.","_lockingStartTime":"locking starting period time.","_maxLockingPeriod":"maximum locking period allowed.","_priceOracleContract":"the price oracle contract which the locked token will be validated against","_redeemEnableTime":"redeem enable time . redeem reputation can be done after this time.","_reputationReward":"the total reputation this contract will reward for the token locking"}},"lock(uint256,uint256,address,bytes32)":{"details":"lock function","params":{"_amount":"the amount to lock","_period":"the locking period","_token":"the token to lock - this should be whitelisted at the priceOracleContract"},"return":"lockingId"},"redeem(address)":{"details":"redeem reputation function","params":{"_beneficiary":"the beneficiary for the release"},"return":"uint256 reputation rewarded"},"release(address,bytes32)":{"details":"release locked tokens","params":{"_beneficiary":"the release _beneficiary","_lockingId":"the locking id"},"return":"bool"}},"title":"A scheme for locking ERC20 Tokens for reputation"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Math.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Math.json new file mode 100644 index 00000000..06e1cd66 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Math.json @@ -0,0 +1 @@ +{"contractName":"Math","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Standard math utilities missing in the Solidity language.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/Math.sol\":\"Math\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]}},\"version\":1}","sourceMap":"99:668:65:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","deployedSourceMap":"99:668:65:-;;;;;;;;","source":"pragma solidity ^0.5.0;\n\n/**\n * @dev Standard math utilities missing in the Solidity language.\n */\nlibrary Math {\n /**\n * @dev Returns the largest of two numbers.\n */\n function max(uint256 a, uint256 b) internal pure returns (uint256) {\n return a >= b ? a : b;\n }\n\n /**\n * @dev Returns the smallest of two numbers.\n */\n function min(uint256 a, uint256 b) internal pure returns (uint256) {\n return a < b ? a : b;\n }\n\n /**\n * @dev Returns the average of two numbers. The result is rounded towards\n * zero.\n */\n function average(uint256 a, uint256 b) internal pure returns (uint256) {\n // (a + b) / 2 can overflow, so we distribute\n return (a / 2) + (b / 2) + ((a % 2 + b % 2) / 2);\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/math/Math.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/math/Math.sol","exportedSymbols":{"Math":[20208]},"id":20209,"nodeType":"SourceUnit","nodes":[{"id":20141,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:65"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Standard math utilities missing in the Solidity language.","fullyImplemented":true,"id":20208,"linearizedBaseContracts":[20208],"name":"Math","nodeType":"ContractDefinition","nodes":[{"body":{"id":20157,"nodeType":"Block","src":"249:38:65","statements":[{"expression":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20150,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20143,"src":"266:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":20151,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20145,"src":"271:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"266:6:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":20154,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20145,"src":"279:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"266:14:65","trueExpression":{"argumentTypes":null,"id":20153,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20143,"src":"275:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20149,"id":20156,"nodeType":"Return","src":"259:21:65"}]},"documentation":"@dev Returns the largest of two numbers.","id":20158,"implemented":true,"kind":"function","modifiers":[],"name":"max","nodeType":"FunctionDefinition","parameters":{"id":20146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20143,"name":"a","nodeType":"VariableDeclaration","scope":20158,"src":"195:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20142,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20145,"name":"b","nodeType":"VariableDeclaration","scope":20158,"src":"206:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20144,"name":"uint256","nodeType":"ElementaryTypeName","src":"206:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"194:22:65"},"returnParameters":{"id":20149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20148,"name":"","nodeType":"VariableDeclaration","scope":20158,"src":"240:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20147,"name":"uint256","nodeType":"ElementaryTypeName","src":"240:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"239:9:65"},"scope":20208,"src":"182:105:65","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20174,"nodeType":"Block","src":"425:37:65","statements":[{"expression":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20167,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"442:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":20168,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"446:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"442:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":20171,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"454:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"442:13:65","trueExpression":{"argumentTypes":null,"id":20170,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"450:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20166,"id":20173,"nodeType":"Return","src":"435:20:65"}]},"documentation":"@dev Returns the smallest of two numbers.","id":20175,"implemented":true,"kind":"function","modifiers":[],"name":"min","nodeType":"FunctionDefinition","parameters":{"id":20163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20160,"name":"a","nodeType":"VariableDeclaration","scope":20175,"src":"371:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20159,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20162,"name":"b","nodeType":"VariableDeclaration","scope":20175,"src":"382:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20161,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"370:22:65"},"returnParameters":{"id":20166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20165,"name":"","nodeType":"VariableDeclaration","scope":20175,"src":"416:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20164,"name":"uint256","nodeType":"ElementaryTypeName","src":"416:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"415:9:65"},"scope":20208,"src":"358:104:65","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20206,"nodeType":"Block","src":"646:119:65","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20184,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20177,"src":"718:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"722:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"718:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20187,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"717:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20188,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"728:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"728:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"727:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"717:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20193,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20177,"src":"739:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"739:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20196,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"747:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"751:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"747:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"739:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20200,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"738:15:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"756:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"738:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"737:21:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"717:41:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20183,"id":20205,"nodeType":"Return","src":"710:48:65"}]},"documentation":"@dev Returns the average of two numbers. The result is rounded towards\nzero.","id":20207,"implemented":true,"kind":"function","modifiers":[],"name":"average","nodeType":"FunctionDefinition","parameters":{"id":20180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20177,"name":"a","nodeType":"VariableDeclaration","scope":20207,"src":"592:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20176,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20179,"name":"b","nodeType":"VariableDeclaration","scope":20207,"src":"603:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20178,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"591:22:65"},"returnParameters":{"id":20183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20182,"name":"","nodeType":"VariableDeclaration","scope":20207,"src":"637:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20181,"name":"uint256","nodeType":"ElementaryTypeName","src":"637:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"636:9:65"},"scope":20208,"src":"575:190:65","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":20209,"src":"99:668:65"}],"src":"0:768:65"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/math/Math.sol","exportedSymbols":{"Math":[20208]},"id":20209,"nodeType":"SourceUnit","nodes":[{"id":20141,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:65"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Standard math utilities missing in the Solidity language.","fullyImplemented":true,"id":20208,"linearizedBaseContracts":[20208],"name":"Math","nodeType":"ContractDefinition","nodes":[{"body":{"id":20157,"nodeType":"Block","src":"249:38:65","statements":[{"expression":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20150,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20143,"src":"266:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":20151,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20145,"src":"271:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"266:6:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":20154,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20145,"src":"279:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"266:14:65","trueExpression":{"argumentTypes":null,"id":20153,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20143,"src":"275:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20149,"id":20156,"nodeType":"Return","src":"259:21:65"}]},"documentation":"@dev Returns the largest of two numbers.","id":20158,"implemented":true,"kind":"function","modifiers":[],"name":"max","nodeType":"FunctionDefinition","parameters":{"id":20146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20143,"name":"a","nodeType":"VariableDeclaration","scope":20158,"src":"195:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20142,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20145,"name":"b","nodeType":"VariableDeclaration","scope":20158,"src":"206:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20144,"name":"uint256","nodeType":"ElementaryTypeName","src":"206:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"194:22:65"},"returnParameters":{"id":20149,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20148,"name":"","nodeType":"VariableDeclaration","scope":20158,"src":"240:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20147,"name":"uint256","nodeType":"ElementaryTypeName","src":"240:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"239:9:65"},"scope":20208,"src":"182:105:65","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20174,"nodeType":"Block","src":"425:37:65","statements":[{"expression":{"argumentTypes":null,"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20167,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"442:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":20168,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"446:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"442:5:65","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"argumentTypes":null,"id":20171,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20162,"src":"454:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":20172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"442:13:65","trueExpression":{"argumentTypes":null,"id":20170,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20160,"src":"450:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20166,"id":20173,"nodeType":"Return","src":"435:20:65"}]},"documentation":"@dev Returns the smallest of two numbers.","id":20175,"implemented":true,"kind":"function","modifiers":[],"name":"min","nodeType":"FunctionDefinition","parameters":{"id":20163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20160,"name":"a","nodeType":"VariableDeclaration","scope":20175,"src":"371:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20159,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20162,"name":"b","nodeType":"VariableDeclaration","scope":20175,"src":"382:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20161,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"370:22:65"},"returnParameters":{"id":20166,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20165,"name":"","nodeType":"VariableDeclaration","scope":20175,"src":"416:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20164,"name":"uint256","nodeType":"ElementaryTypeName","src":"416:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"415:9:65"},"scope":20208,"src":"358:104:65","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20206,"nodeType":"Block","src":"646:119:65","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20184,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20177,"src":"718:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"722:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"718:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20187,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"717:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20188,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"728:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"732:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"728:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"727:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"717:17:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20193,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20177,"src":"739:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"743:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"739:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20196,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20179,"src":"747:1:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"751:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"747:5:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"739:13:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20200,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"738:15:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":20201,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"756:1:65","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"738:19:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":20203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"737:21:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"717:41:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20183,"id":20205,"nodeType":"Return","src":"710:48:65"}]},"documentation":"@dev Returns the average of two numbers. The result is rounded towards\nzero.","id":20207,"implemented":true,"kind":"function","modifiers":[],"name":"average","nodeType":"FunctionDefinition","parameters":{"id":20180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20177,"name":"a","nodeType":"VariableDeclaration","scope":20207,"src":"592:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20176,"name":"uint256","nodeType":"ElementaryTypeName","src":"592:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20179,"name":"b","nodeType":"VariableDeclaration","scope":20207,"src":"603:9:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20178,"name":"uint256","nodeType":"ElementaryTypeName","src":"603:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"591:22:65"},"returnParameters":{"id":20183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20182,"name":"","nodeType":"VariableDeclaration","scope":20207,"src":"637:7:65","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20181,"name":"uint256","nodeType":"ElementaryTypeName","src":"637:7:65","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"636:9:65"},"scope":20208,"src":"575:190:65","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":20209,"src":"99:668:65"}],"src":"0:768:65"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.268Z","devdoc":{"details":"Standard math utilities missing in the Solidity language.","methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Migrations.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Migrations.json new file mode 100644 index 00000000..14a2bc5f --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Migrations.json @@ -0,0 +1 @@ +{"contractName":"Migrations","abi":[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"lastCompletedMigration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"completed","type":"uint256"}],"name":"setCompleted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"upgrade","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastCompletedMigration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAddress\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/Migrations.sol\":{\"keccak256\":\"0x06dd1f2c24aa1dd60670501a795ab4f9253ca971e4a91606bba9f8609043ed79\",\"urls\":[\"bzz-raw://f459a5eac39fb608c2699eaf88157a7903f182d97f966aae823796f311d0b62b\",\"dweb:/ipfs/QmUaa7JCdrvKVcHEWCbZu5reHm5hTU3yhPthe8DoBBRkEy\"]}},\"version\":1}","sourceMap":"26:542:0:-;;;217:56;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;248:5:0;:18;;-1:-1:-1;;;;;;248:18:0;256:10;248:18;;;26:542;;;;;;","deployedSourceMap":"26:542:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;26:542:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;395:171;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;395:171:0;-1:-1:-1;;;;;395:171:0;;:::i;:::-;;52:20;;;:::i;:::-;;;;-1:-1:-1;;;;;52:20:0;;;;;;;;;;;;;;78:37;;;:::i;:::-;;;;;;;;;;;;;;;;279:110;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;279:110:0;;:::i;395:171::-;172:5;;-1:-1:-1;;;;;172:5:0;158:10;:19;154:51;;;460:19;493:10;460:44;;514:8;-1:-1:-1;;;;;514:21:0;;536:22;;514:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;514:45:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;514:45:0;;;;193:1;154:51;395:171;:::o;52:20::-;;;-1:-1:-1;;;;;52:20:0;;:::o;78:37::-;;;;:::o;279:110::-;172:5;;-1:-1:-1;;;;;172:5:0;158:10;:19;154:51;;;348:22;:34;279:110::o","source":"pragma solidity 0.5.13;\n\n\ncontract Migrations {\n address public owner;\n uint256 public lastCompletedMigration;\n\n modifier restricted() {\n if (msg.sender == owner) {\n _;\n }\n }\n\n constructor() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint256 completed) public restricted {\n lastCompletedMigration = completed;\n }\n\n function upgrade(address newAddress) public restricted {\n Migrations upgraded = Migrations(newAddress);\n upgraded.setCompleted(lastCompletedMigration);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/Migrations.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/Migrations.sol","exportedSymbols":{"Migrations":[57]},"id":58,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:0"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":57,"linearizedBaseContracts":[57],"name":"Migrations","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3,"name":"owner","nodeType":"VariableDeclaration","scope":57,"src":"52:20:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"52:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":5,"name":"lastCompletedMigration","nodeType":"VariableDeclaration","scope":57,"src":"78:37:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint256","nodeType":"ElementaryTypeName","src":"78:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":14,"nodeType":"Block","src":"144:67:0","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"158:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"158:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":9,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"172:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"158:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13,"nodeType":"IfStatement","src":"154:51:0","trueBody":{"id":12,"nodeType":"Block","src":"179:26:0","statements":[{"id":11,"nodeType":"PlaceholderStatement","src":"193:1:0"}]}}]},"documentation":null,"id":15,"name":"restricted","nodeType":"ModifierDefinition","parameters":{"id":6,"nodeType":"ParameterList","parameters":[],"src":"141:2:0"},"src":"122:89:0","visibility":"internal"},{"body":{"id":23,"nodeType":"Block","src":"238:35:0","statements":[{"expression":{"argumentTypes":null,"id":21,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"248:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"256:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"256:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"248:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22,"nodeType":"ExpressionStatement","src":"248:18:0"}]},"documentation":null,"id":24,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":16,"nodeType":"ParameterList","parameters":[],"src":"228:2:0"},"returnParameters":{"id":17,"nodeType":"ParameterList","parameters":[],"src":"238:0:0"},"scope":57,"src":"217:56:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":35,"nodeType":"Block","src":"338:51:0","statements":[{"expression":{"argumentTypes":null,"id":33,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":31,"name":"lastCompletedMigration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"348:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":32,"name":"completed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"373:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34,"nodeType":"ExpressionStatement","src":"348:34:0"}]},"documentation":null,"id":36,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":29,"modifierName":{"argumentTypes":null,"id":28,"name":"restricted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"327:10:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"327:10:0"}],"name":"setCompleted","nodeType":"FunctionDefinition","parameters":{"id":27,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26,"name":"completed","nodeType":"VariableDeclaration","scope":36,"src":"301:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25,"name":"uint256","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"300:19:0"},"returnParameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"338:0:0"},"scope":57,"src":"279:110:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":55,"nodeType":"Block","src":"450:116:0","statements":[{"assignments":[44],"declarations":[{"constant":false,"id":44,"name":"upgraded","nodeType":"VariableDeclaration","scope":55,"src":"460:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"},"typeName":{"contractScope":null,"id":43,"name":"Migrations","nodeType":"UserDefinedTypeName","referencedDeclaration":57,"src":"460:10:0","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"}},"value":null,"visibility":"internal"}],"id":48,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":46,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"493:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"Migrations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57,"src":"482:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Migrations_$57_$","typeString":"type(contract Migrations)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"482:22:0","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"}},"nodeType":"VariableDeclarationStatement","src":"460:44:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":52,"name":"lastCompletedMigration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"536:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":49,"name":"upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"514:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"}},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":36,"src":"514:21:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":53,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"514:45:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54,"nodeType":"ExpressionStatement","src":"514:45:0"}]},"documentation":null,"id":56,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":41,"modifierName":{"argumentTypes":null,"id":40,"name":"restricted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"439:10:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"439:10:0"}],"name":"upgrade","nodeType":"FunctionDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"name":"newAddress","nodeType":"VariableDeclaration","scope":56,"src":"412:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"412:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"411:20:0"},"returnParameters":{"id":42,"nodeType":"ParameterList","parameters":[],"src":"450:0:0"},"scope":57,"src":"395:171:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":58,"src":"26:542:0"}],"src":"0:569:0"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/Migrations.sol","exportedSymbols":{"Migrations":[57]},"id":58,"nodeType":"SourceUnit","nodes":[{"id":1,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:0"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":57,"linearizedBaseContracts":[57],"name":"Migrations","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":3,"name":"owner","nodeType":"VariableDeclaration","scope":57,"src":"52:20:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2,"name":"address","nodeType":"ElementaryTypeName","src":"52:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"constant":false,"id":5,"name":"lastCompletedMigration","nodeType":"VariableDeclaration","scope":57,"src":"78:37:0","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4,"name":"uint256","nodeType":"ElementaryTypeName","src":"78:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":14,"nodeType":"Block","src":"144:67:0","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":10,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"158:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"158:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":9,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"172:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"158:19:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13,"nodeType":"IfStatement","src":"154:51:0","trueBody":{"id":12,"nodeType":"Block","src":"179:26:0","statements":[{"id":11,"nodeType":"PlaceholderStatement","src":"193:1:0"}]}}]},"documentation":null,"id":15,"name":"restricted","nodeType":"ModifierDefinition","parameters":{"id":6,"nodeType":"ParameterList","parameters":[],"src":"141:2:0"},"src":"122:89:0","visibility":"internal"},{"body":{"id":23,"nodeType":"Block","src":"238:35:0","statements":[{"expression":{"argumentTypes":null,"id":21,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":18,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3,"src":"248:5:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"256:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":20,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"256:10:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"248:18:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":22,"nodeType":"ExpressionStatement","src":"248:18:0"}]},"documentation":null,"id":24,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":16,"nodeType":"ParameterList","parameters":[],"src":"228:2:0"},"returnParameters":{"id":17,"nodeType":"ParameterList","parameters":[],"src":"238:0:0"},"scope":57,"src":"217:56:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":35,"nodeType":"Block","src":"338:51:0","statements":[{"expression":{"argumentTypes":null,"id":33,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":31,"name":"lastCompletedMigration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"348:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":32,"name":"completed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":26,"src":"373:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"348:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":34,"nodeType":"ExpressionStatement","src":"348:34:0"}]},"documentation":null,"id":36,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":29,"modifierName":{"argumentTypes":null,"id":28,"name":"restricted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"327:10:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"327:10:0"}],"name":"setCompleted","nodeType":"FunctionDefinition","parameters":{"id":27,"nodeType":"ParameterList","parameters":[{"constant":false,"id":26,"name":"completed","nodeType":"VariableDeclaration","scope":36,"src":"301:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":25,"name":"uint256","nodeType":"ElementaryTypeName","src":"301:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"300:19:0"},"returnParameters":{"id":30,"nodeType":"ParameterList","parameters":[],"src":"338:0:0"},"scope":57,"src":"279:110:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":55,"nodeType":"Block","src":"450:116:0","statements":[{"assignments":[44],"declarations":[{"constant":false,"id":44,"name":"upgraded","nodeType":"VariableDeclaration","scope":55,"src":"460:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"},"typeName":{"contractScope":null,"id":43,"name":"Migrations","nodeType":"UserDefinedTypeName","referencedDeclaration":57,"src":"460:10:0","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"}},"value":null,"visibility":"internal"}],"id":48,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":46,"name":"newAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"493:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":45,"name":"Migrations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57,"src":"482:10:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Migrations_$57_$","typeString":"type(contract Migrations)"}},"id":47,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"482:22:0","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"}},"nodeType":"VariableDeclarationStatement","src":"460:44:0"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":52,"name":"lastCompletedMigration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5,"src":"536:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":49,"name":"upgraded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44,"src":"514:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_Migrations_$57","typeString":"contract Migrations"}},"id":51,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setCompleted","nodeType":"MemberAccess","referencedDeclaration":36,"src":"514:21:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":53,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"514:45:0","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":54,"nodeType":"ExpressionStatement","src":"514:45:0"}]},"documentation":null,"id":56,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":41,"modifierName":{"argumentTypes":null,"id":40,"name":"restricted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15,"src":"439:10:0","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"439:10:0"}],"name":"upgrade","nodeType":"FunctionDefinition","parameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"name":"newAddress","nodeType":"VariableDeclaration","scope":56,"src":"412:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37,"name":"address","nodeType":"ElementaryTypeName","src":"412:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"411:20:0"},"returnParameters":{"id":42,"nodeType":"ParameterList","parameters":[],"src":"450:0:0"},"scope":57,"src":"395:171:0","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":58,"src":"26:542:0"}],"src":"0:569:0"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.043Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/MiniMeToken.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/MiniMeToken.json new file mode 100644 index 00000000..97264f01 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/MiniMeToken.json @@ -0,0 +1 @@ +{"contractName":"MiniMeToken","abi":[{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"balanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol\":\"MiniMeToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol\":{\"keccak256\":\"0x494c35dc00566ab2b53e06a92e7514656d194a51657d470b09b030eaf3991198\",\"urls\":[\"bzz-raw://8c8811960ab976ded993e87e125d2051b7ccfd3a4483659a5d09d22dab3a2b43\",\"dweb:/ipfs/QmPXJgQw5uCsyep98BJADYwQXcSr4w5B2BxkauVTZv3i5T\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract MiniMeToken {\n function balanceOfAt(address _owner, uint _blockNumber) public view returns (uint);\n function totalSupplyAt(uint _blockNumber) public view returns(uint);\n}\n\n/**\n * @title NectarRepAllocation contract\n * This contract should be use to calculate reputation allocation for nextar dao bootstrat\n * this contract can be used as the rep mapping contract for RepitationFromToken contract.\n */\n\ncontract NectarRepAllocation {\n using SafeMath for uint256;\n\n uint256 public reputationReward;\n uint256 public claimingStartTime;\n uint256 public claimingEndTime;\n uint256 public totalTokenSupplyAt;\n uint256 public blockReference;\n MiniMeToken public token;\n\n /**\n * @dev initialize\n * @param _reputationReward the total reputation which will be used to calc the reward\n * for the token locking\n * @param _claimingStartTime claiming starting period time.\n * @param _claimingEndTime the claiming end time.\n * claiming is disable after this time.\n * @param _blockReference the block nbumber reference which is used to takle the balance from.\n * @param _token nectar token address\n */\n function initialize(\n uint256 _reputationReward,\n uint256 _claimingStartTime,\n uint256 _claimingEndTime,\n uint256 _blockReference,\n MiniMeToken _token)\n external\n {\n require(token == MiniMeToken(0), \"can be called only one time\");\n require(_token != MiniMeToken(0), \"token cannot be zero\");\n token = _token;\n reputationReward = _reputationReward;\n claimingStartTime = _claimingStartTime;\n claimingEndTime = _claimingEndTime;\n blockReference = _blockReference;\n if ((claimingStartTime != 0) || (claimingEndTime != 0)) {\n require(claimingEndTime > claimingStartTime, \"claimingStartTime > claimingEndTime\");\n }\n totalTokenSupplyAt = token.totalSupplyAt(_blockReference);\n }\n\n /**\n * @dev get balanceOf _beneficiary function\n * @param _beneficiary addresses\n */\n function balanceOf(address _beneficiary) public view returns(uint256 reputation) {\n if (((claimingStartTime != 0) || (claimingEndTime != 0)) &&\n // solhint-disable-next-line not-rely-on-time\n ((now >= claimingEndTime) || (now < claimingStartTime))) {\n reputation = 0;\n } else {\n reputation = token.balanceOfAt(_beneficiary, blockReference).mul(reputationReward).div(totalTokenSupplyAt);\n }\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol","exportedSymbols":{"MiniMeToken":[9106],"NectarRepAllocation":[9249]},"id":9250,"nodeType":"SourceUnit","nodes":[{"id":9088,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:32"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":9089,"nodeType":"ImportDirective","scope":9250,"sourceUnit":20396,"src":"25:59:32","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":9106,"linearizedBaseContracts":[9106],"name":"MiniMeToken","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":9098,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfAt","nodeType":"FunctionDefinition","parameters":{"id":9094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9091,"name":"_owner","nodeType":"VariableDeclaration","scope":9098,"src":"135:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9090,"name":"address","nodeType":"ElementaryTypeName","src":"135:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9093,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9098,"src":"151:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9092,"name":"uint","nodeType":"ElementaryTypeName","src":"151:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"134:35:32"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"name":"","nodeType":"VariableDeclaration","scope":9098,"src":"191:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9095,"name":"uint","nodeType":"ElementaryTypeName","src":"191:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"190:6:32"},"scope":9106,"src":"114:83:32","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":9105,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyAt","nodeType":"FunctionDefinition","parameters":{"id":9101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9100,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9105,"src":"225:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9099,"name":"uint","nodeType":"ElementaryTypeName","src":"225:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"224:19:32"},"returnParameters":{"id":9104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9103,"name":"","nodeType":"VariableDeclaration","scope":9105,"src":"264:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9102,"name":"uint","nodeType":"ElementaryTypeName","src":"264:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"263:6:32"},"scope":9106,"src":"202:68:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"87:185:32"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title NectarRepAllocation contract\nThis contract should be use to calculate reputation allocation for nextar dao bootstrat\nthis contract can be used as the rep mapping contract for RepitationFromToken contract.","fullyImplemented":true,"id":9249,"linearizedBaseContracts":[9249],"name":"NectarRepAllocation","nodeType":"ContractDefinition","nodes":[{"id":9109,"libraryName":{"contractScope":null,"id":9107,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"545:8:32","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"539:27:32","typeName":{"id":9108,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":9111,"name":"reputationReward","nodeType":"VariableDeclaration","scope":9249,"src":"572:31:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9110,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9113,"name":"claimingStartTime","nodeType":"VariableDeclaration","scope":9249,"src":"609:32:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9112,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9115,"name":"claimingEndTime","nodeType":"VariableDeclaration","scope":9249,"src":"647:30:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9114,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9117,"name":"totalTokenSupplyAt","nodeType":"VariableDeclaration","scope":9249,"src":"683:33:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9119,"name":"blockReference","nodeType":"VariableDeclaration","scope":9249,"src":"722:29:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9118,"name":"uint256","nodeType":"ElementaryTypeName","src":"722:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9121,"name":"token","nodeType":"VariableDeclaration","scope":9249,"src":"757:24:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9120,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"757:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"public"},{"body":{"id":9197,"nodeType":"Block","src":"1472:591:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9135,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1490:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:32","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":9136,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1499:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1490:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":9140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1515:29:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":9134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1482:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:63:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9142,"nodeType":"ExpressionStatement","src":"1482:63:32"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9144,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1563:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:32","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":9145,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1573:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1573:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1563:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f6b656e2063616e6e6f74206265207a65726f","id":9149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1589:22:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""},"value":"token cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""}],"id":9143,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1555:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1555:57:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9151,"nodeType":"ExpressionStatement","src":"1555:57:32"},{"expression":{"argumentTypes":null,"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9152,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1622:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9153,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1630:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1622:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9155,"nodeType":"ExpressionStatement","src":"1622:14:32"},{"expression":{"argumentTypes":null,"id":9158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9156,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"1646:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9157,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"1665:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1646:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9159,"nodeType":"ExpressionStatement","src":"1646:36:32"},{"expression":{"argumentTypes":null,"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9160,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1692:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9161,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9125,"src":"1712:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1692:38:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9163,"nodeType":"ExpressionStatement","src":"1692:38:32"},{"expression":{"argumentTypes":null,"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9164,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1740:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9165,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9127,"src":"1758:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1740:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9167,"nodeType":"ExpressionStatement","src":"1740:34:32"},{"expression":{"argumentTypes":null,"id":9170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9168,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"1784:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9169,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"1801:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:32:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9171,"nodeType":"ExpressionStatement","src":"1784:32:32"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9172,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1831:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1831:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1830:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9176,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1859:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1858:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1830:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9189,"nodeType":"IfStatement","src":"1826:164:32","trueBody":{"id":9188,"nodeType":"Block","src":"1882:108:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9182,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1904:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":9183,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1922:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1904:35:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636c61696d696e67537461727454696d65203e20636c61696d696e67456e6454696d65","id":9185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:37:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""},"value":"claimingStartTime > claimingEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""}],"id":9181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1896:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1896:83:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9187,"nodeType":"ExpressionStatement","src":"1896:83:32"}]}},{"expression":{"argumentTypes":null,"id":9195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9190,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"1999:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9193,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"2040:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9191,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2020:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":9105,"src":"2020:19:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1999:57:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9196,"nodeType":"ExpressionStatement","src":"1999:57:32"}]},"documentation":"@dev initialize\n@param _reputationReward the total reputation which will be used to calc the reward\n for the token locking\n@param _claimingStartTime claiming starting period time.\n@param _claimingEndTime the claiming end time.\n claiming is disable after this time.\n@param _blockReference the block nbumber reference which is used to takle the balance from.\n@param _token nectar token address","id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":9132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":9198,"src":"1293:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9125,"name":"_claimingStartTime","nodeType":"VariableDeclaration","scope":9198,"src":"1328:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9127,"name":"_claimingEndTime","nodeType":"VariableDeclaration","scope":9198,"src":"1364:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1364:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9129,"name":"_blockReference","nodeType":"VariableDeclaration","scope":9198,"src":"1398:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1398:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9131,"name":"_token","nodeType":"VariableDeclaration","scope":9198,"src":"1431:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9130,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"1431:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"internal"}],"src":"1283:167:32"},"returnParameters":{"id":9133,"nodeType":"ParameterList","parameters":[],"src":"1472:0:32"},"scope":9249,"src":"1264:799:32","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":9247,"nodeType":"Block","src":"2251:377:32","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9205,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2267:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2288:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2267:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2266:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9209,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2295:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2314:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2295:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2294:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2266:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9214,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2265:52:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9215,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2391:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":9216,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2398:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2391:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2390:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9219,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2419:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":9220,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2425:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2419:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2418:25:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2390:53:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2389:55:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2265:179:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9245,"nodeType":"Block","src":"2491:131:32","statements":[{"expression":{"argumentTypes":null,"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9231,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2505:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9241,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"2592:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9238,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"2570:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9234,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"2536:12:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9235,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"2550:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9232,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2518:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":9098,"src":"2518:17:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:47:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"2518:51:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:69:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"2518:73:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:93:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2505:106:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9244,"nodeType":"ExpressionStatement","src":"2505:106:32"}]},"id":9246,"nodeType":"IfStatement","src":"2261:361:32","trueBody":{"id":9230,"nodeType":"Block","src":"2446:39:32","statements":[{"expression":{"argumentTypes":null,"id":9228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9226,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2460:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":9227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2460:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9229,"nodeType":"ExpressionStatement","src":"2460:14:32"}]}}]},"documentation":"@dev get balanceOf _beneficiary function\n@param _beneficiary addresses","id":9248,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9200,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9248,"src":"2189:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9199,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2188:22:32"},"returnParameters":{"id":9204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9203,"name":"reputation","nodeType":"VariableDeclaration","scope":9248,"src":"2231:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2230:20:32"},"scope":9249,"src":"2170:458:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"504:2127:32"}],"src":"0:2632:32"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol","exportedSymbols":{"MiniMeToken":[9106],"NectarRepAllocation":[9249]},"id":9250,"nodeType":"SourceUnit","nodes":[{"id":9088,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:32"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":9089,"nodeType":"ImportDirective","scope":9250,"sourceUnit":20396,"src":"25:59:32","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":9106,"linearizedBaseContracts":[9106],"name":"MiniMeToken","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":9098,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfAt","nodeType":"FunctionDefinition","parameters":{"id":9094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9091,"name":"_owner","nodeType":"VariableDeclaration","scope":9098,"src":"135:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9090,"name":"address","nodeType":"ElementaryTypeName","src":"135:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9093,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9098,"src":"151:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9092,"name":"uint","nodeType":"ElementaryTypeName","src":"151:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"134:35:32"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"name":"","nodeType":"VariableDeclaration","scope":9098,"src":"191:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9095,"name":"uint","nodeType":"ElementaryTypeName","src":"191:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"190:6:32"},"scope":9106,"src":"114:83:32","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":9105,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyAt","nodeType":"FunctionDefinition","parameters":{"id":9101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9100,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9105,"src":"225:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9099,"name":"uint","nodeType":"ElementaryTypeName","src":"225:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"224:19:32"},"returnParameters":{"id":9104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9103,"name":"","nodeType":"VariableDeclaration","scope":9105,"src":"264:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9102,"name":"uint","nodeType":"ElementaryTypeName","src":"264:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"263:6:32"},"scope":9106,"src":"202:68:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"87:185:32"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title NectarRepAllocation contract\nThis contract should be use to calculate reputation allocation for nextar dao bootstrat\nthis contract can be used as the rep mapping contract for RepitationFromToken contract.","fullyImplemented":true,"id":9249,"linearizedBaseContracts":[9249],"name":"NectarRepAllocation","nodeType":"ContractDefinition","nodes":[{"id":9109,"libraryName":{"contractScope":null,"id":9107,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"545:8:32","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"539:27:32","typeName":{"id":9108,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":9111,"name":"reputationReward","nodeType":"VariableDeclaration","scope":9249,"src":"572:31:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9110,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9113,"name":"claimingStartTime","nodeType":"VariableDeclaration","scope":9249,"src":"609:32:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9112,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9115,"name":"claimingEndTime","nodeType":"VariableDeclaration","scope":9249,"src":"647:30:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9114,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9117,"name":"totalTokenSupplyAt","nodeType":"VariableDeclaration","scope":9249,"src":"683:33:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9119,"name":"blockReference","nodeType":"VariableDeclaration","scope":9249,"src":"722:29:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9118,"name":"uint256","nodeType":"ElementaryTypeName","src":"722:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9121,"name":"token","nodeType":"VariableDeclaration","scope":9249,"src":"757:24:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9120,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"757:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"public"},{"body":{"id":9197,"nodeType":"Block","src":"1472:591:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9135,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1490:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:32","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":9136,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1499:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1490:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":9140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1515:29:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":9134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1482:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:63:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9142,"nodeType":"ExpressionStatement","src":"1482:63:32"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9144,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1563:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:32","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":9145,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1573:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1573:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1563:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f6b656e2063616e6e6f74206265207a65726f","id":9149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1589:22:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""},"value":"token cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""}],"id":9143,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1555:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1555:57:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9151,"nodeType":"ExpressionStatement","src":"1555:57:32"},{"expression":{"argumentTypes":null,"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9152,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1622:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9153,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1630:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1622:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9155,"nodeType":"ExpressionStatement","src":"1622:14:32"},{"expression":{"argumentTypes":null,"id":9158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9156,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"1646:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9157,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"1665:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1646:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9159,"nodeType":"ExpressionStatement","src":"1646:36:32"},{"expression":{"argumentTypes":null,"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9160,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1692:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9161,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9125,"src":"1712:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1692:38:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9163,"nodeType":"ExpressionStatement","src":"1692:38:32"},{"expression":{"argumentTypes":null,"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9164,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1740:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9165,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9127,"src":"1758:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1740:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9167,"nodeType":"ExpressionStatement","src":"1740:34:32"},{"expression":{"argumentTypes":null,"id":9170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9168,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"1784:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9169,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"1801:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:32:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9171,"nodeType":"ExpressionStatement","src":"1784:32:32"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9172,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1831:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1831:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1830:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9176,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1859:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1858:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1830:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9189,"nodeType":"IfStatement","src":"1826:164:32","trueBody":{"id":9188,"nodeType":"Block","src":"1882:108:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9182,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1904:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":9183,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1922:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1904:35:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636c61696d696e67537461727454696d65203e20636c61696d696e67456e6454696d65","id":9185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:37:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""},"value":"claimingStartTime > claimingEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""}],"id":9181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1896:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1896:83:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9187,"nodeType":"ExpressionStatement","src":"1896:83:32"}]}},{"expression":{"argumentTypes":null,"id":9195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9190,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"1999:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9193,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"2040:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9191,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2020:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":9105,"src":"2020:19:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1999:57:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9196,"nodeType":"ExpressionStatement","src":"1999:57:32"}]},"documentation":"@dev initialize\n@param _reputationReward the total reputation which will be used to calc the reward\n for the token locking\n@param _claimingStartTime claiming starting period time.\n@param _claimingEndTime the claiming end time.\n claiming is disable after this time.\n@param _blockReference the block nbumber reference which is used to takle the balance from.\n@param _token nectar token address","id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":9132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":9198,"src":"1293:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9125,"name":"_claimingStartTime","nodeType":"VariableDeclaration","scope":9198,"src":"1328:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9127,"name":"_claimingEndTime","nodeType":"VariableDeclaration","scope":9198,"src":"1364:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1364:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9129,"name":"_blockReference","nodeType":"VariableDeclaration","scope":9198,"src":"1398:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1398:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9131,"name":"_token","nodeType":"VariableDeclaration","scope":9198,"src":"1431:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9130,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"1431:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"internal"}],"src":"1283:167:32"},"returnParameters":{"id":9133,"nodeType":"ParameterList","parameters":[],"src":"1472:0:32"},"scope":9249,"src":"1264:799:32","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":9247,"nodeType":"Block","src":"2251:377:32","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9205,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2267:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2288:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2267:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2266:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9209,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2295:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2314:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2295:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2294:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2266:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9214,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2265:52:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9215,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2391:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":9216,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2398:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2391:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2390:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9219,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2419:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":9220,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2425:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2419:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2418:25:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2390:53:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2389:55:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2265:179:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9245,"nodeType":"Block","src":"2491:131:32","statements":[{"expression":{"argumentTypes":null,"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9231,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2505:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9241,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"2592:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9238,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"2570:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9234,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"2536:12:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9235,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"2550:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9232,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2518:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":9098,"src":"2518:17:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:47:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"2518:51:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:69:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"2518:73:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:93:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2505:106:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9244,"nodeType":"ExpressionStatement","src":"2505:106:32"}]},"id":9246,"nodeType":"IfStatement","src":"2261:361:32","trueBody":{"id":9230,"nodeType":"Block","src":"2446:39:32","statements":[{"expression":{"argumentTypes":null,"id":9228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9226,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2460:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":9227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2460:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9229,"nodeType":"ExpressionStatement","src":"2460:14:32"}]}}]},"documentation":"@dev get balanceOf _beneficiary function\n@param _beneficiary addresses","id":9248,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9200,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9248,"src":"2189:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9199,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2188:22:32"},"returnParameters":{"id":9204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9203,"name":"reputation","nodeType":"VariableDeclaration","scope":9248,"src":"2231:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2230:20:32"},"scope":9249,"src":"2170:458:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"504:2127:32"}],"src":"0:2632:32"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.151Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/NectarRepAllocation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/NectarRepAllocation.json new file mode 100644 index 00000000..fe36e3ab --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/NectarRepAllocation.json @@ -0,0 +1 @@ +{"contractName":"NectarRepAllocation","abi":[{"constant":true,"inputs":[],"name":"blockReference","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"claimingEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"claimingStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"reputationReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"contract MiniMeToken","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalTokenSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_reputationReward","type":"uint256"},{"internalType":"uint256","name":"_claimingStartTime","type":"uint256"},{"internalType":"uint256","name":"_claimingEndTime","type":"uint256"},{"internalType":"uint256","name":"_blockReference","type":"uint256"},{"internalType":"contract MiniMeToken","name":"_token","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"reputation","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"reputation\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"blockReference\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"claimingEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"claimingStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_reputationReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_claimingStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_claimingEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_blockReference\",\"type\":\"uint256\"},{\"internalType\":\"contract MiniMeToken\",\"name\":\"_token\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"reputationReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"contract MiniMeToken\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalTokenSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"balanceOf(address)\":{\"details\":\"get balanceOf _beneficiary function\",\"params\":{\"_beneficiary\":\"addresses\"}},\"initialize(uint256,uint256,uint256,uint256,address)\":{\"details\":\"initialize\",\"params\":{\"_blockReference\":\"the block nbumber reference which is used to takle the balance from.\",\"_claimingEndTime\":\"the claiming end time. claiming is disable after this time.\",\"_claimingStartTime\":\"claiming starting period time.\",\"_reputationReward\":\"the total reputation which will be used to calc the reward for the token locking\",\"_token\":\"nectar token address\"}}},\"title\":\"NectarRepAllocation contract This contract should be use to calculate reputation allocation for nextar dao bootstrat this contract can be used as the rep mapping contract for RepitationFromToken contract.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol\":\"NectarRepAllocation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol\":{\"keccak256\":\"0x494c35dc00566ab2b53e06a92e7514656d194a51657d470b09b030eaf3991198\",\"urls\":[\"bzz-raw://8c8811960ab976ded993e87e125d2051b7ccfd3a4483659a5d09d22dab3a2b43\",\"dweb:/ipfs/QmPXJgQw5uCsyep98BJADYwQXcSr4w5B2BxkauVTZv3i5T\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}","sourceMap":"504:2127:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;504:2127:32;;;;;;;","deployedSourceMap":"504:2127:32:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;504:2127:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;609:32;;;:::i;:::-;;;;;;;;;;;;;;;;722:29;;;:::i;2170:458::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2170:458:32;-1:-1:-1;;;;;2170:458:32;;:::i;683:33::-;;;:::i;647:30::-;;;:::i;1264:799::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;1264:799:32;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1264:799:32;;:::i;:::-;;572:31;;;:::i;757:24::-;;;:::i;:::-;;;;-1:-1:-1;;;;;757:24:32;;;;;;;;;;;;;;609:32;;;;:::o;722:29::-;;;;:::o;2170:458::-;2231:18;2267:17;;2288:1;2267:22;;2266:50;;;-1:-1:-1;2295:15:32;;:20;;2266:50;2265:179;;;;;2398:15;;2391:3;:22;;2390:53;;;;2425:17;;2419:3;:23;2390:53;2261:361;;;-1:-1:-1;2473:1:32;2261:361;;;2592:18;;2570:16;;2518:5;;2550:14;;;2518:47;;;-1:-1:-1;;;2518:47:32;;-1:-1:-1;;;;;2518:47:32;;;;;;;;;;;;;;;;;;:93;;2592:18;2518:69;;2570:16;;2518:5;;:17;;:47;;;;;;;;;;;;;;:5;:47;;;5:2:-1;;;;30:1;27;20:12;5:2;2518:47:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2518:47:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2518:47:32;;:69;:51;:69;:::i;:::-;:73;:93;:73;:93;:::i;:::-;2505:106;;2261:361;2170:458;;;:::o;683:33::-;;;;:::o;647:30::-;;;;:::o;1264:799::-;1490:5;;-1:-1:-1;;;;;1490:5:32;:23;1482:63;;;;;-1:-1:-1;;;1482:63:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1563:24:32;;1555:57;;;;;-1:-1:-1;;;1555:57:32;;;;;;;;;;;;-1:-1:-1;;;1555:57:32;;;;;;;;;;;;;;;1622:5;:14;;-1:-1:-1;;;;;;1622:14:32;-1:-1:-1;;;;;1622:14:32;;;;;-1:-1:-1;1646:36:32;;;-1:-1:-1;1692:38:32;;;1740:15;:34;;;-1:-1:-1;1784:32:32;;;1831:22;;;;1830:50;;-1:-1:-1;1859:15:32;;:20;;1830:50;1826:164;;;1922:17;;1904:15;;:35;1896:83;;;;-1:-1:-1;;;1896:83:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2020:5;;:36;;;-1:-1:-1;;;2020:36:32;;;;;;;;;;-1:-1:-1;;;;;2020:5:32;;;;:19;;:36;;;;;;;;;;;;;;;:5;:36;;;5:2:-1;;;;30:1;27;20:12;5:2;2020:36:32;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2020:36:32;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2020:36:32;1999:18;:57;-1:-1:-1;;;;;1264:799:32:o;572:31::-;;;;:::o;757:24::-;;;-1:-1:-1;;;;;757:24:32;;:::o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:1;-1:-1:-1;2159:459:66;;;;;:::o;3073:130::-;3131:7;3157:39;3161:1;3164;3157:39;;;;;;;;;;;;;;;;;3804:7;3904:12;3897:5;3889:28;;;;-1:-1:-1;;;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3889:28:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3927:9;3943:1;3939;:5;;;;;;;3718:338;-1:-1:-1;;;;;3718:338:66:o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\n\n\ncontract MiniMeToken {\n function balanceOfAt(address _owner, uint _blockNumber) public view returns (uint);\n function totalSupplyAt(uint _blockNumber) public view returns(uint);\n}\n\n/**\n * @title NectarRepAllocation contract\n * This contract should be use to calculate reputation allocation for nextar dao bootstrat\n * this contract can be used as the rep mapping contract for RepitationFromToken contract.\n */\n\ncontract NectarRepAllocation {\n using SafeMath for uint256;\n\n uint256 public reputationReward;\n uint256 public claimingStartTime;\n uint256 public claimingEndTime;\n uint256 public totalTokenSupplyAt;\n uint256 public blockReference;\n MiniMeToken public token;\n\n /**\n * @dev initialize\n * @param _reputationReward the total reputation which will be used to calc the reward\n * for the token locking\n * @param _claimingStartTime claiming starting period time.\n * @param _claimingEndTime the claiming end time.\n * claiming is disable after this time.\n * @param _blockReference the block nbumber reference which is used to takle the balance from.\n * @param _token nectar token address\n */\n function initialize(\n uint256 _reputationReward,\n uint256 _claimingStartTime,\n uint256 _claimingEndTime,\n uint256 _blockReference,\n MiniMeToken _token)\n external\n {\n require(token == MiniMeToken(0), \"can be called only one time\");\n require(_token != MiniMeToken(0), \"token cannot be zero\");\n token = _token;\n reputationReward = _reputationReward;\n claimingStartTime = _claimingStartTime;\n claimingEndTime = _claimingEndTime;\n blockReference = _blockReference;\n if ((claimingStartTime != 0) || (claimingEndTime != 0)) {\n require(claimingEndTime > claimingStartTime, \"claimingStartTime > claimingEndTime\");\n }\n totalTokenSupplyAt = token.totalSupplyAt(_blockReference);\n }\n\n /**\n * @dev get balanceOf _beneficiary function\n * @param _beneficiary addresses\n */\n function balanceOf(address _beneficiary) public view returns(uint256 reputation) {\n if (((claimingStartTime != 0) || (claimingEndTime != 0)) &&\n // solhint-disable-next-line not-rely-on-time\n ((now >= claimingEndTime) || (now < claimingStartTime))) {\n reputation = 0;\n } else {\n reputation = token.balanceOfAt(_beneficiary, blockReference).mul(reputationReward).div(totalTokenSupplyAt);\n }\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol","exportedSymbols":{"MiniMeToken":[9106],"NectarRepAllocation":[9249]},"id":9250,"nodeType":"SourceUnit","nodes":[{"id":9088,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:32"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":9089,"nodeType":"ImportDirective","scope":9250,"sourceUnit":20396,"src":"25:59:32","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":9106,"linearizedBaseContracts":[9106],"name":"MiniMeToken","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":9098,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfAt","nodeType":"FunctionDefinition","parameters":{"id":9094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9091,"name":"_owner","nodeType":"VariableDeclaration","scope":9098,"src":"135:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9090,"name":"address","nodeType":"ElementaryTypeName","src":"135:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9093,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9098,"src":"151:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9092,"name":"uint","nodeType":"ElementaryTypeName","src":"151:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"134:35:32"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"name":"","nodeType":"VariableDeclaration","scope":9098,"src":"191:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9095,"name":"uint","nodeType":"ElementaryTypeName","src":"191:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"190:6:32"},"scope":9106,"src":"114:83:32","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":9105,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyAt","nodeType":"FunctionDefinition","parameters":{"id":9101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9100,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9105,"src":"225:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9099,"name":"uint","nodeType":"ElementaryTypeName","src":"225:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"224:19:32"},"returnParameters":{"id":9104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9103,"name":"","nodeType":"VariableDeclaration","scope":9105,"src":"264:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9102,"name":"uint","nodeType":"ElementaryTypeName","src":"264:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"263:6:32"},"scope":9106,"src":"202:68:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"87:185:32"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title NectarRepAllocation contract\nThis contract should be use to calculate reputation allocation for nextar dao bootstrat\nthis contract can be used as the rep mapping contract for RepitationFromToken contract.","fullyImplemented":true,"id":9249,"linearizedBaseContracts":[9249],"name":"NectarRepAllocation","nodeType":"ContractDefinition","nodes":[{"id":9109,"libraryName":{"contractScope":null,"id":9107,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"545:8:32","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"539:27:32","typeName":{"id":9108,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":9111,"name":"reputationReward","nodeType":"VariableDeclaration","scope":9249,"src":"572:31:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9110,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9113,"name":"claimingStartTime","nodeType":"VariableDeclaration","scope":9249,"src":"609:32:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9112,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9115,"name":"claimingEndTime","nodeType":"VariableDeclaration","scope":9249,"src":"647:30:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9114,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9117,"name":"totalTokenSupplyAt","nodeType":"VariableDeclaration","scope":9249,"src":"683:33:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9119,"name":"blockReference","nodeType":"VariableDeclaration","scope":9249,"src":"722:29:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9118,"name":"uint256","nodeType":"ElementaryTypeName","src":"722:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9121,"name":"token","nodeType":"VariableDeclaration","scope":9249,"src":"757:24:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9120,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"757:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"public"},{"body":{"id":9197,"nodeType":"Block","src":"1472:591:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9135,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1490:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:32","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":9136,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1499:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1490:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":9140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1515:29:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":9134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1482:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:63:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9142,"nodeType":"ExpressionStatement","src":"1482:63:32"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9144,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1563:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:32","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":9145,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1573:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1573:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1563:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f6b656e2063616e6e6f74206265207a65726f","id":9149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1589:22:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""},"value":"token cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""}],"id":9143,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1555:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1555:57:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9151,"nodeType":"ExpressionStatement","src":"1555:57:32"},{"expression":{"argumentTypes":null,"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9152,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1622:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9153,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1630:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1622:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9155,"nodeType":"ExpressionStatement","src":"1622:14:32"},{"expression":{"argumentTypes":null,"id":9158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9156,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"1646:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9157,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"1665:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1646:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9159,"nodeType":"ExpressionStatement","src":"1646:36:32"},{"expression":{"argumentTypes":null,"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9160,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1692:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9161,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9125,"src":"1712:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1692:38:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9163,"nodeType":"ExpressionStatement","src":"1692:38:32"},{"expression":{"argumentTypes":null,"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9164,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1740:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9165,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9127,"src":"1758:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1740:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9167,"nodeType":"ExpressionStatement","src":"1740:34:32"},{"expression":{"argumentTypes":null,"id":9170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9168,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"1784:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9169,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"1801:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:32:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9171,"nodeType":"ExpressionStatement","src":"1784:32:32"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9172,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1831:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1831:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1830:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9176,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1859:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1858:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1830:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9189,"nodeType":"IfStatement","src":"1826:164:32","trueBody":{"id":9188,"nodeType":"Block","src":"1882:108:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9182,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1904:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":9183,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1922:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1904:35:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636c61696d696e67537461727454696d65203e20636c61696d696e67456e6454696d65","id":9185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:37:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""},"value":"claimingStartTime > claimingEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""}],"id":9181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1896:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1896:83:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9187,"nodeType":"ExpressionStatement","src":"1896:83:32"}]}},{"expression":{"argumentTypes":null,"id":9195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9190,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"1999:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9193,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"2040:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9191,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2020:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":9105,"src":"2020:19:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1999:57:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9196,"nodeType":"ExpressionStatement","src":"1999:57:32"}]},"documentation":"@dev initialize\n@param _reputationReward the total reputation which will be used to calc the reward\n for the token locking\n@param _claimingStartTime claiming starting period time.\n@param _claimingEndTime the claiming end time.\n claiming is disable after this time.\n@param _blockReference the block nbumber reference which is used to takle the balance from.\n@param _token nectar token address","id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":9132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":9198,"src":"1293:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9125,"name":"_claimingStartTime","nodeType":"VariableDeclaration","scope":9198,"src":"1328:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9127,"name":"_claimingEndTime","nodeType":"VariableDeclaration","scope":9198,"src":"1364:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1364:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9129,"name":"_blockReference","nodeType":"VariableDeclaration","scope":9198,"src":"1398:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1398:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9131,"name":"_token","nodeType":"VariableDeclaration","scope":9198,"src":"1431:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9130,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"1431:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"internal"}],"src":"1283:167:32"},"returnParameters":{"id":9133,"nodeType":"ParameterList","parameters":[],"src":"1472:0:32"},"scope":9249,"src":"1264:799:32","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":9247,"nodeType":"Block","src":"2251:377:32","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9205,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2267:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2288:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2267:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2266:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9209,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2295:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2314:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2295:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2294:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2266:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9214,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2265:52:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9215,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2391:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":9216,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2398:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2391:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2390:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9219,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2419:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":9220,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2425:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2419:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2418:25:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2390:53:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2389:55:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2265:179:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9245,"nodeType":"Block","src":"2491:131:32","statements":[{"expression":{"argumentTypes":null,"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9231,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2505:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9241,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"2592:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9238,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"2570:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9234,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"2536:12:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9235,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"2550:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9232,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2518:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":9098,"src":"2518:17:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:47:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"2518:51:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:69:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"2518:73:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:93:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2505:106:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9244,"nodeType":"ExpressionStatement","src":"2505:106:32"}]},"id":9246,"nodeType":"IfStatement","src":"2261:361:32","trueBody":{"id":9230,"nodeType":"Block","src":"2446:39:32","statements":[{"expression":{"argumentTypes":null,"id":9228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9226,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2460:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":9227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2460:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9229,"nodeType":"ExpressionStatement","src":"2460:14:32"}]}}]},"documentation":"@dev get balanceOf _beneficiary function\n@param _beneficiary addresses","id":9248,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9200,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9248,"src":"2189:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9199,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2188:22:32"},"returnParameters":{"id":9204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9203,"name":"reputation","nodeType":"VariableDeclaration","scope":9248,"src":"2231:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2230:20:32"},"scope":9249,"src":"2170:458:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"504:2127:32"}],"src":"0:2632:32"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/NectarRepAllocation.sol","exportedSymbols":{"MiniMeToken":[9106],"NectarRepAllocation":[9249]},"id":9250,"nodeType":"SourceUnit","nodes":[{"id":9088,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:32"},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":9089,"nodeType":"ImportDirective","scope":9250,"sourceUnit":20396,"src":"25:59:32","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":9106,"linearizedBaseContracts":[9106],"name":"MiniMeToken","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":9098,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfAt","nodeType":"FunctionDefinition","parameters":{"id":9094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9091,"name":"_owner","nodeType":"VariableDeclaration","scope":9098,"src":"135:14:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9090,"name":"address","nodeType":"ElementaryTypeName","src":"135:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9093,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9098,"src":"151:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9092,"name":"uint","nodeType":"ElementaryTypeName","src":"151:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"134:35:32"},"returnParameters":{"id":9097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9096,"name":"","nodeType":"VariableDeclaration","scope":9098,"src":"191:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9095,"name":"uint","nodeType":"ElementaryTypeName","src":"191:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"190:6:32"},"scope":9106,"src":"114:83:32","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":null,"documentation":null,"id":9105,"implemented":false,"kind":"function","modifiers":[],"name":"totalSupplyAt","nodeType":"FunctionDefinition","parameters":{"id":9101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9100,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":9105,"src":"225:17:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9099,"name":"uint","nodeType":"ElementaryTypeName","src":"225:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"224:19:32"},"returnParameters":{"id":9104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9103,"name":"","nodeType":"VariableDeclaration","scope":9105,"src":"264:4:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9102,"name":"uint","nodeType":"ElementaryTypeName","src":"264:4:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"263:6:32"},"scope":9106,"src":"202:68:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"87:185:32"},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title NectarRepAllocation contract\nThis contract should be use to calculate reputation allocation for nextar dao bootstrat\nthis contract can be used as the rep mapping contract for RepitationFromToken contract.","fullyImplemented":true,"id":9249,"linearizedBaseContracts":[9249],"name":"NectarRepAllocation","nodeType":"ContractDefinition","nodes":[{"id":9109,"libraryName":{"contractScope":null,"id":9107,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"545:8:32","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"539:27:32","typeName":{"id":9108,"name":"uint256","nodeType":"ElementaryTypeName","src":"558:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":9111,"name":"reputationReward","nodeType":"VariableDeclaration","scope":9249,"src":"572:31:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9110,"name":"uint256","nodeType":"ElementaryTypeName","src":"572:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9113,"name":"claimingStartTime","nodeType":"VariableDeclaration","scope":9249,"src":"609:32:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9112,"name":"uint256","nodeType":"ElementaryTypeName","src":"609:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9115,"name":"claimingEndTime","nodeType":"VariableDeclaration","scope":9249,"src":"647:30:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9114,"name":"uint256","nodeType":"ElementaryTypeName","src":"647:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9117,"name":"totalTokenSupplyAt","nodeType":"VariableDeclaration","scope":9249,"src":"683:33:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9116,"name":"uint256","nodeType":"ElementaryTypeName","src":"683:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9119,"name":"blockReference","nodeType":"VariableDeclaration","scope":9249,"src":"722:29:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9118,"name":"uint256","nodeType":"ElementaryTypeName","src":"722:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":9121,"name":"token","nodeType":"VariableDeclaration","scope":9249,"src":"757:24:32","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9120,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"757:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"public"},{"body":{"id":9197,"nodeType":"Block","src":"1472:591:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9135,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1490:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1511:1:32","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":9136,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1499:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1499:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1490:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":9140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1515:29:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":9134,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1482:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1482:63:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9142,"nodeType":"ExpressionStatement","src":"1482:63:32"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"id":9148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9144,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1563:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":9146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1585:1:32","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":9145,"name":"MiniMeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9106,"src":"1573:11:32","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_MiniMeToken_$9106_$","typeString":"type(contract MiniMeToken)"}},"id":9147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1573:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1563:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"746f6b656e2063616e6e6f74206265207a65726f","id":9149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1589:22:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""},"value":"token cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cb027ae0c9a143d1391e21ab6a203842014e3ce51361f26c1f89b4f283a025f0","typeString":"literal_string \"token cannot be zero\""}],"id":9143,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1555:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1555:57:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9151,"nodeType":"ExpressionStatement","src":"1555:57:32"},{"expression":{"argumentTypes":null,"id":9154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9152,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"1622:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9153,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9131,"src":"1630:6:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"src":"1622:14:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9155,"nodeType":"ExpressionStatement","src":"1622:14:32"},{"expression":{"argumentTypes":null,"id":9158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9156,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"1646:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9157,"name":"_reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9123,"src":"1665:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1646:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9159,"nodeType":"ExpressionStatement","src":"1646:36:32"},{"expression":{"argumentTypes":null,"id":9162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9160,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1692:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9161,"name":"_claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9125,"src":"1712:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1692:38:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9163,"nodeType":"ExpressionStatement","src":"1692:38:32"},{"expression":{"argumentTypes":null,"id":9166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9164,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1740:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9165,"name":"_claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9127,"src":"1758:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1740:34:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9167,"nodeType":"ExpressionStatement","src":"1740:34:32"},{"expression":{"argumentTypes":null,"id":9170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9168,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"1784:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9169,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"1801:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1784:32:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9171,"nodeType":"ExpressionStatement","src":"1784:32:32"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9172,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1831:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1852:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1831:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1830:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9176,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1859:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9177,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1878:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1859:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1858:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1830:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":9189,"nodeType":"IfStatement","src":"1826:164:32","trueBody":{"id":9188,"nodeType":"Block","src":"1882:108:32","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9182,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"1904:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":9183,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"1922:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1904:35:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"636c61696d696e67537461727454696d65203e20636c61696d696e67456e6454696d65","id":9185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1941:37:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""},"value":"claimingStartTime > claimingEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6a77ef757f6d49a62e14aeb6a29550aea8bda9dc2e3e7ca6da7e1948ea37b1d3","typeString":"literal_string \"claimingStartTime > claimingEndTime\""}],"id":9181,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1896:7:32","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":9186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1896:83:32","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9187,"nodeType":"ExpressionStatement","src":"1896:83:32"}]}},{"expression":{"argumentTypes":null,"id":9195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9190,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"1999:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9193,"name":"_blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9129,"src":"2040:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9191,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2020:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":9105,"src":"2020:19:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":9194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2020:36:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1999:57:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9196,"nodeType":"ExpressionStatement","src":"1999:57:32"}]},"documentation":"@dev initialize\n@param _reputationReward the total reputation which will be used to calc the reward\n for the token locking\n@param _claimingStartTime claiming starting period time.\n@param _claimingEndTime the claiming end time.\n claiming is disable after this time.\n@param _blockReference the block nbumber reference which is used to takle the balance from.\n@param _token nectar token address","id":9198,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":9132,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9123,"name":"_reputationReward","nodeType":"VariableDeclaration","scope":9198,"src":"1293:25:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9122,"name":"uint256","nodeType":"ElementaryTypeName","src":"1293:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9125,"name":"_claimingStartTime","nodeType":"VariableDeclaration","scope":9198,"src":"1328:26:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9124,"name":"uint256","nodeType":"ElementaryTypeName","src":"1328:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9127,"name":"_claimingEndTime","nodeType":"VariableDeclaration","scope":9198,"src":"1364:24:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9126,"name":"uint256","nodeType":"ElementaryTypeName","src":"1364:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9129,"name":"_blockReference","nodeType":"VariableDeclaration","scope":9198,"src":"1398:23:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9128,"name":"uint256","nodeType":"ElementaryTypeName","src":"1398:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9131,"name":"_token","nodeType":"VariableDeclaration","scope":9198,"src":"1431:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"},"typeName":{"contractScope":null,"id":9130,"name":"MiniMeToken","nodeType":"UserDefinedTypeName","referencedDeclaration":9106,"src":"1431:11:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"value":null,"visibility":"internal"}],"src":"1283:167:32"},"returnParameters":{"id":9133,"nodeType":"ParameterList","parameters":[],"src":"1472:0:32"},"scope":9249,"src":"1264:799:32","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":9247,"nodeType":"Block","src":"2251:377:32","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9207,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9205,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2267:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2288:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2267:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9208,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2266:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9209,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2295:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":9210,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2314:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2295:20:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9212,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2294:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2266:50:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9214,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2265:52:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":9223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9215,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2391:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":9216,"name":"claimingEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9115,"src":"2398:15:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2391:22:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9218,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2390:24:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9219,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2419:3:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":9220,"name":"claimingStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9113,"src":"2425:17:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2419:23:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9222,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2418:25:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2390:53:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":9224,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2389:55:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2265:179:32","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":9245,"nodeType":"Block","src":"2491:131:32","statements":[{"expression":{"argumentTypes":null,"id":9243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9231,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2505:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9241,"name":"totalTokenSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9117,"src":"2592:18:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9238,"name":"reputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9111,"src":"2570:16:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9234,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9200,"src":"2536:12:32","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9235,"name":"blockReference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9119,"src":"2550:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9232,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9121,"src":"2518:5:32","typeDescriptions":{"typeIdentifier":"t_contract$_MiniMeToken_$9106","typeString":"contract MiniMeToken"}},"id":9233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":9098,"src":"2518:17:32","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":9236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:47:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"2518:51:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:69:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"div","nodeType":"MemberAccess","referencedDeclaration":20328,"src":"2518:73:32","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":9242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:93:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2505:106:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9244,"nodeType":"ExpressionStatement","src":"2505:106:32"}]},"id":9246,"nodeType":"IfStatement","src":"2261:361:32","trueBody":{"id":9230,"nodeType":"Block","src":"2446:39:32","statements":[{"expression":{"argumentTypes":null,"id":9228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9226,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9203,"src":"2460:10:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"30","id":9227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2473:1:32","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2460:14:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9229,"nodeType":"ExpressionStatement","src":"2460:14:32"}]}}]},"documentation":"@dev get balanceOf _beneficiary function\n@param _beneficiary addresses","id":9248,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":9201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9200,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9248,"src":"2189:20:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9199,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:32","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2188:22:32"},"returnParameters":{"id":9204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9203,"name":"reputation","nodeType":"VariableDeclaration","scope":9248,"src":"2231:18:32","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9202,"name":"uint256","nodeType":"ElementaryTypeName","src":"2231:7:32","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2230:20:32"},"scope":9249,"src":"2170:458:32","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":9250,"src":"504:2127:32"}],"src":"0:2632:32"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.153Z","devdoc":{"methods":{"balanceOf(address)":{"details":"get balanceOf _beneficiary function","params":{"_beneficiary":"addresses"}},"initialize(uint256,uint256,uint256,uint256,address)":{"details":"initialize","params":{"_blockReference":"the block nbumber reference which is used to takle the balance from.","_claimingEndTime":"the claiming end time. claiming is disable after this time.","_claimingStartTime":"claiming starting period time.","_reputationReward":"the total reputation which will be used to calc the reward for the token locking","_token":"nectar token address"}}},"title":"NectarRepAllocation contract This contract should be use to calculate reputation allocation for nextar dao bootstrat this contract can be used as the rep mapping contract for RepitationFromToken contract."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/OrganizationRegister.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/OrganizationRegister.json new file mode 100644 index 00000000..fe402161 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/OrganizationRegister.json @@ -0,0 +1 @@ +{"contractName":"OrganizationRegister","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_registry","type":"address"},{"indexed":true,"internalType":"address","name":"_org","type":"address"}],"name":"OrgAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_registry","type":"address"},{"indexed":true,"internalType":"address","name":"_org","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Promotion","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"organizationsRegistry","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"address","name":"beneficiary","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_record","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addOrPromoteAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_org\",\"type\":\"address\"}],\"name\":\"OrgAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_org\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Promotion\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_record\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"addOrPromoteAddress\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"organizationsRegistry\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"},{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Organizations can use this scheme to open a registry. Other organizations can then add and promote themselves on this registry.\",\"methods\":{\"addOrPromoteAddress(address,address,uint256)\":{\"details\":\"Adding or promoting an address on the registry. An address(record) to add or promote can be organization address or any contract address. Adding a record is done by paying at least the minimum required by the registry params. Promoting a record is done by paying(adding)amount of token to the registry beneficiary.\",\"params\":{\"_amount\":\"amount to pay for adding or promoting\",\"_avatar\":\"The _avatar of the organization which own the registry.\",\"_record\":\"The address to add or promote.\"}},\"getParametersHash(address,uint256,address)\":{\"details\":\"Hash the parameters ,and return the hash value\",\"params\":{\"_beneficiary\":\"- the beneficiary payment address\",\"_fee\":\"- fee needed for register an address.\",\"_token\":\"- the token to pay for register or promotion an address.\"},\"return\":\"bytes32 -the parameters hash\"},\"setParameters(address,uint256,address)\":{\"details\":\"Hash the parameters, save if needed and return the hash value\",\"params\":{\"_beneficiary\":\"- the beneficiary payment address\",\"_fee\":\"- fee needed for register an address.\",\"_token\":\"- the token to pay for register or promotion an address.\"},\"return\":\"bytes32 -the parameters hash\"}},\"title\":\"A universal organization registry.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/OrganizationRegister.sol\":\"OrganizationRegister\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/OrganizationRegister.sol\":{\"keccak256\":\"0x4682bb6e597827bdbc62c3f5b4c1230f22a0c93755356719866e7ab89de66acf\",\"urls\":[\"bzz-raw://1395fd6459659f82fd9f0b72c99bec6fd1d213a186ce68fd71eb4aa0a1e81da9\",\"dweb:/ipfs/QmUjCeG3p8qDXz2BEkrC1k6VyQSytzcGknbdq3HHYU3YRA\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"283:3233:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;283:3233:41;;;;;;;","deployedSourceMap":"283:3233:41:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;283:3233:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;675:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;675:46:41;;:::i;:::-;;;;;;;-1:-1:-1;;;;;675:46:41;;;;;;;;;;;;;;;;;;;;;;2225:775;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2225:775:41;;;;;;;;;;;;;;;;;:::i;:::-;;599:69;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;599:69:41;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1214:435;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1214:435:41;;;;;;;;;;;;;;;;;:::i;3318:196::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3318:196:41;;;;;;;;;;;;;;;;;:::i;675:46::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;675:46:41;;;;;;:::o;2225:775::-;2329:24;;:::i;:::-;2356:10;:48;2367:36;2395:7;2367:27;:36::i;:::-;2356:48;;;;;;;;;;;;;;-1:-1:-1;2356:48:41;;;2329:75;;;;;;;;;;;;;;;-1:-1:-1;;;;;2329:75:41;;;;;;;;;;;;;;;;;;2499:39;;;;;;;;;;;:48;;;;;;;;;2329:75;;-1:-1:-1;2499:52:41;;;2498:81;;-1:-1:-1;2568:10:41;;2557:21;;;2498:81;2490:90;;;;;;2591:79;2630:10;2642:6;:18;;;2662:7;2599:6;:12;;;-1:-1:-1;;;;;2591:38:41;;;:79;;;;;;:::i;:::-;-1:-1:-1;;;;;2684:39:41;;;:21;:39;;;;;;;;;;;:48;;;;;;;;;;2680:124;;2785:7;-1:-1:-1;;;;;2758:35:41;2775:7;-1:-1:-1;;;;;2758:35:41;;;;;;;;;;;2680:124;-1:-1:-1;;;;;2872:39:41;;;:21;:39;;;;;;;;;;;:48;;;;;;;;;;:61;;2925:7;2872:61;:52;:61;:::i;:::-;-1:-1:-1;;;;;2813:39:41;;;:21;:39;;;;;;;;;;;:48;;;;;;;;;;;;;:120;;;;2948:45;;;;;;;2813:48;;:39;;2948:45;;;;;;;;;;;2225:775;;;;:::o;599:69::-;;;;;;;;;;;;;;;;;;;;;;:::o;1214:435::-;1303:7;1322:18;1343:45;1361:6;1369:4;1375:12;1343:17;:45::i;:::-;1440:1;1402:22;;;:10;:22;;;;;;;;:28;;1322:66;;-1:-1:-1;;;;;;1402:28:41;1398:218;;1458:22;;;;:10;:22;;;;;;;;:28;;;:37;;-1:-1:-1;;;;;1458:37:41;;;-1:-1:-1;;;;;;1458:37:41;;;;;;;1509:33;;;1556:34;;;;:49;;;;;;;;;;;;1398:218;1632:10;1214:435;-1:-1:-1;;;;1214:435:41:o;3318:196::-;3461:44;;;-1:-1:-1;;3461:44:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;3461:44:41;;;;;;3451:55;;;;;;3318:196::o;290:322:43:-;365:7;403;-1:-1:-1;;;;;403:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;403:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;403:15:43;392:79;;;-1:-1:-1;;;392:79:43;;447:4;392:79;;;;-1:-1:-1;;;;;392:79:43;;;;;;;;;:46;;;;;;;:79;;;;;403:15;;392:79;;;;;;;:46;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;392:79:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;392:79:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;392:79:43;384:124;;;;;-1:-1:-1;;;384:124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;-1:-1:-1;;;;;536:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;536:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;536:15:43;525:80;;;-1:-1:-1;;;525:80:43;;581:4;525:80;;;;-1:-1:-1;;;;;525:80:43;;;;;;;;;:47;;;;;;;:80;;;;;536:15;;525:80;;;;;;;:47;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;525:80:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;525:80:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;525:80:43;;290:322;-1:-1:-1;;290:322:43:o;1566:597:6:-;1726:23;:10;-1:-1:-1;;;;;1726:21:6;;:23::i;:::-;1718:32;;;;;;1762:12;1776:24;1871:10;-1:-1:-1;;;;;1871:15:6;837:46;;;;;;;;;;;;;;;;;827:57;;;;;;;1887:65;;;-1:-1:-1;;;;;1887:65:6;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1887:65:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1887:65:6;;;179:29:-1;;;;160:49;;1871:82:6;;;;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1871:82:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1761:192:6;;;;2021:7;2013:16;;;;;;2076:18;;:23;;:79;;;2104:11;:18;2126:2;2104:24;:50;;;;;2133:11;2145:2;2133:15;;;;;;;;;;;;-1:-1:-1;;;;;;2133:15:6;:20;;2104:50;2068:88;;;;;;1566:597;;;;;;:::o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;-1:-1:-1;1323:23:71;;;1296:51;-1:-1:-1;;557:797:71:o;283:3233:41:-;;;;;;;;;-1:-1:-1;283:3233:41;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"./UniversalScheme.sol\";\nimport \"../libs/SafeERC20.sol\";\n\n/**\n * @title A universal organization registry.\n * @dev Organizations can use this scheme to open a registry.\n * Other organizations can then add and promote themselves on this registry.\n */\n\ncontract OrganizationRegister is UniversalScheme {\n using SafeMath for uint;\n using SafeERC20 for address;\n\n struct Parameters {\n uint256 fee;\n IERC20 token;\n address beneficiary;\n }\n\n // A mapping from the organization (Avatar) address to the saved data of the organization:\n mapping(address=>mapping(address=>uint)) public organizationsRegistry;\n\n mapping(bytes32=>Parameters) public parameters;\n\n event OrgAdded( address indexed _registry, address indexed _org);\n event Promotion( address indexed _registry, address indexed _org, uint256 _amount);\n\n /**\n * @dev Hash the parameters, save if needed and return the hash value\n * @param _token - the token to pay for register or promotion an address.\n * @param _fee - fee needed for register an address.\n * @param _beneficiary - the beneficiary payment address\n * @return bytes32 -the parameters hash\n */\n function setParameters(IERC20 _token, uint256 _fee, address _beneficiary) public returns(bytes32) {\n bytes32 paramsHash = getParametersHash(_token, _fee, _beneficiary);\n if (parameters[paramsHash].token == ERC20(0)) {\n parameters[paramsHash].token = _token;\n parameters[paramsHash].fee = _fee;\n parameters[paramsHash].beneficiary = _beneficiary;\n }\n return paramsHash;\n }\n\n /**\n * @dev Adding or promoting an address on the registry.\n * An address(record) to add or promote can be organization address or any contract address.\n * Adding a record is done by paying at least the minimum required by the registry params.\n * Promoting a record is done by paying(adding)amount of token to the registry beneficiary.\n * @param _avatar The _avatar of the organization which own the registry.\n * @param _record The address to add or promote.\n * @param _amount amount to pay for adding or promoting\n */\n function addOrPromoteAddress(Avatar _avatar, address _record, uint256 _amount)\n public\n {\n Parameters memory params = parameters[getParametersFromController(_avatar)];\n // Pay promotion, if the org was not listed the minimum is the fee:\n require((organizationsRegistry[address(_avatar)][_record] > 0) || (_amount >= params.fee));\n\n address(params.token).safeTransferFrom(msg.sender, params.beneficiary, _amount);\n if (organizationsRegistry[address(_avatar)][_record] == 0) {\n emit OrgAdded(address(_avatar), _record);\n }\n organizationsRegistry[address(_avatar)][_record] =\n organizationsRegistry[address(_avatar)][_record].add(_amount);\n emit Promotion(address(_avatar), _record, _amount);\n }\n\n /**\n * @dev Hash the parameters ,and return the hash value\n * @param _token - the token to pay for register or promotion an address.\n * @param _fee - fee needed for register an address.\n * @param _beneficiary - the beneficiary payment address\n * @return bytes32 -the parameters hash\n */\n function getParametersHash(IERC20 _token, uint256 _fee, address _beneficiary)\n public pure returns(bytes32)\n {\n return (keccak256(abi.encodePacked(_token, _fee, _beneficiary)));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/OrganizationRegister.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/OrganizationRegister.sol","exportedSymbols":{"OrganizationRegister":[12135]},"id":12136,"nodeType":"SourceUnit","nodes":[{"id":11924,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:41"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":11925,"nodeType":"ImportDirective","scope":12136,"sourceUnit":12635,"src":"25:31:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":11926,"nodeType":"ImportDirective","scope":12136,"sourceUnit":2258,"src":"57:31:41","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":11927,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"316:15:41","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":11928,"nodeType":"InheritanceSpecifier","src":"316:15:41"}],"contractDependencies":[12634,12645],"contractKind":"contract","documentation":"@title A universal organization registry.\n@dev Organizations can use this scheme to open a registry.\nOther organizations can then add and promote themselves on this registry.","fullyImplemented":true,"id":12135,"linearizedBaseContracts":[12135,12634,12645],"name":"OrganizationRegister","nodeType":"ContractDefinition","nodes":[{"id":11931,"libraryName":{"contractScope":null,"id":11929,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"344:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"338:24:41","typeName":{"id":11930,"name":"uint","nodeType":"ElementaryTypeName","src":"357:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":11934,"libraryName":{"contractScope":null,"id":11932,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"373:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"367:28:41","typeName":{"id":11933,"name":"address","nodeType":"ElementaryTypeName","src":"387:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"OrganizationRegister.Parameters","id":11941,"members":[{"constant":false,"id":11936,"name":"fee","nodeType":"VariableDeclaration","scope":11941,"src":"429:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11935,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":11938,"name":"token","nodeType":"VariableDeclaration","scope":11941,"src":"450:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":11937,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"450:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":11940,"name":"beneficiary","nodeType":"VariableDeclaration","scope":11941,"src":"472:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11939,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":12135,"src":"401:97:41","visibility":"public"},{"constant":false,"id":11947,"name":"organizationsRegistry","nodeType":"VariableDeclaration","scope":12135,"src":"599:69:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":11946,"keyType":{"id":11942,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"599:40:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":11945,"keyType":{"id":11943,"name":"address","nodeType":"ElementaryTypeName","src":"624:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"616:22:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":11944,"name":"uint","nodeType":"ElementaryTypeName","src":"633:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"constant":false,"id":11951,"name":"parameters","nodeType":"VariableDeclaration","scope":12135,"src":"675:46:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters)"},"typeName":{"id":11950,"keyType":{"id":11948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"683:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"675:28:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters)"},"valueType":{"contractScope":null,"id":11949,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11941,"src":"692:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage_ptr","typeString":"struct OrganizationRegister.Parameters"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":11957,"name":"OrgAdded","nodeType":"EventDefinition","parameters":{"id":11956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11953,"indexed":true,"name":"_registry","nodeType":"VariableDeclaration","scope":11957,"src":"744:25:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11952,"name":"address","nodeType":"ElementaryTypeName","src":"744:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11955,"indexed":true,"name":"_org","nodeType":"VariableDeclaration","scope":11957,"src":"771:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11954,"name":"address","nodeType":"ElementaryTypeName","src":"771:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"742:50:41"},"src":"728:65:41"},{"anonymous":false,"documentation":null,"id":11965,"name":"Promotion","nodeType":"EventDefinition","parameters":{"id":11964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11959,"indexed":true,"name":"_registry","nodeType":"VariableDeclaration","scope":11965,"src":"815:25:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11958,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11961,"indexed":true,"name":"_org","nodeType":"VariableDeclaration","scope":11965,"src":"842:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11960,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11963,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":11965,"src":"864:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"864:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"813:67:41"},"src":"798:83:41"},{"body":{"id":12017,"nodeType":"Block","src":"1312:337:41","statements":[{"assignments":[11977],"declarations":[{"constant":false,"id":11977,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12017,"src":"1322:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1322:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11983,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11979,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"1361:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":11980,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"1369:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":11981,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11971,"src":"1375:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11978,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12134,"src":"1343:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IERC20_$21017_$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (contract IERC20,uint256,address) pure returns (bytes32)"}},"id":11982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1343:45:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1322:66:41"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":11991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11984,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1402:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":11986,"indexExpression":{"argumentTypes":null,"id":11985,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1413:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1402:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":11938,"src":"1402:28:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1440:1:41","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11988,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20914,"src":"1434:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$20914_$","typeString":"type(contract ERC20)"}},"id":11990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1434:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"src":"1402:40:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12014,"nodeType":"IfStatement","src":"1398:218:41","trueBody":{"id":12013,"nodeType":"Block","src":"1444:172:41","statements":[{"expression":{"argumentTypes":null,"id":11997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11992,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1458:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":11994,"indexExpression":{"argumentTypes":null,"id":11993,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1469:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1458:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":11995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":11938,"src":"1458:28:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11996,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"1489:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"1458:37:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":11998,"nodeType":"ExpressionStatement","src":"1458:37:41"},{"expression":{"argumentTypes":null,"id":12004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11999,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1509:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":12001,"indexExpression":{"argumentTypes":null,"id":12000,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1520:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1509:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":12002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":11936,"src":"1509:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12003,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"1538:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1509:33:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12005,"nodeType":"ExpressionStatement","src":"1509:33:41"},{"expression":{"argumentTypes":null,"id":12011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12006,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1556:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":12008,"indexExpression":{"argumentTypes":null,"id":12007,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1567:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1556:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":12009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":11940,"src":"1556:34:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12010,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11971,"src":"1593:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1556:49:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12012,"nodeType":"ExpressionStatement","src":"1556:49:41"}]}},{"expression":{"argumentTypes":null,"id":12015,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1632:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11975,"id":12016,"nodeType":"Return","src":"1625:17:41"}]},"documentation":"@dev Hash the parameters, save if needed and return the hash value\n@param _token - the token to pay for register or promotion an address.\n@param _fee - fee needed for register an address.\n@param _beneficiary - the beneficiary payment address\n@return bytes32 -the parameters hash","id":12018,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":11972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11967,"name":"_token","nodeType":"VariableDeclaration","scope":12018,"src":"1237:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":11966,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1237:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":11969,"name":"_fee","nodeType":"VariableDeclaration","scope":12018,"src":"1252:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":11971,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":12018,"src":"1266:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11970,"name":"address","nodeType":"ElementaryTypeName","src":"1266:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1236:51:41"},"returnParameters":{"id":11975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11974,"name":"","nodeType":"VariableDeclaration","scope":12018,"src":"1303:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1303:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1302:9:41"},"scope":12135,"src":"1214:435:41","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12111,"nodeType":"Block","src":"2319:681:41","statements":[{"assignments":[12028],"declarations":[{"constant":false,"id":12028,"name":"params","nodeType":"VariableDeclaration","scope":12111,"src":"2329:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters"},"typeName":{"contractScope":null,"id":12027,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11941,"src":"2329:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage_ptr","typeString":"struct OrganizationRegister.Parameters"}},"value":null,"visibility":"internal"}],"id":12034,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12029,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"2356:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":12033,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12031,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2395:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12030,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"2367:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2367:36:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2356:48:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2329:75:41"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12036,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2499:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12040,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12038,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2529:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2521:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2499:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12042,"indexExpression":{"argumentTypes":null,"id":12041,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2539:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2499:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":12043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2550:1:41","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2499:52:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2498:54:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12046,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2557:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12047,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"2568:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters memory"}},"id":12048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":11936,"src":"2568:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2557:21:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2556:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2498:81:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12035,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2490:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2490:90:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12053,"nodeType":"ExpressionStatement","src":"2490:90:41"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2630:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2630:10:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12061,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"2642:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters memory"}},"id":12062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":11940,"src":"2642:18:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12063,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2662:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12055,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"2599:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters memory"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":11938,"src":"2599:12:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":12054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2591:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:21:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"2591:38:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":12064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:79:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12065,"nodeType":"ExpressionStatement","src":"2591:79:41"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12066,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2684:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12070,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12068,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2714:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2706:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12072,"indexExpression":{"argumentTypes":null,"id":12071,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2724:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":12073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2736:1:41","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2684:53:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12083,"nodeType":"IfStatement","src":"2680:124:41","trueBody":{"id":12082,"nodeType":"Block","src":"2739:65:41","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12077,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2775:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2767:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2767:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12079,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2785:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12075,"name":"OrgAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11957,"src":"2758:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2758:35:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12081,"nodeType":"EmitStatement","src":"2753:40:41"}]}},{"expression":{"argumentTypes":null,"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12084,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2813:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12089,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12086,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2843:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2835:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2835:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2813:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12090,"indexExpression":{"argumentTypes":null,"id":12088,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2853:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2813:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12099,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2925:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12091,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2872:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12095,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12093,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2902:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2894:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2872:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12097,"indexExpression":{"argumentTypes":null,"id":12096,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2912:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2872:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"2872:52:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2872:61:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2813:120:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"2813:120:41"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12105,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2966:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2958:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2958:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12107,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2976:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12108,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2985:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12103,"name":"Promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11965,"src":"2948:9:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2948:45:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12110,"nodeType":"EmitStatement","src":"2943:50:41"}]},"documentation":"@dev Adding or promoting an address on the registry.\n An address(record) to add or promote can be organization address or any contract address.\n Adding a record is done by paying at least the minimum required by the registry params.\n Promoting a record is done by paying(adding)amount of token to the registry beneficiary.\n@param _avatar The _avatar of the organization which own the registry.\n@param _record The address to add or promote.\n@param _amount amount to pay for adding or promoting","id":12112,"implemented":true,"kind":"function","modifiers":[],"name":"addOrPromoteAddress","nodeType":"FunctionDefinition","parameters":{"id":12025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12020,"name":"_avatar","nodeType":"VariableDeclaration","scope":12112,"src":"2254:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12019,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2254:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12022,"name":"_record","nodeType":"VariableDeclaration","scope":12112,"src":"2270:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12021,"name":"address","nodeType":"ElementaryTypeName","src":"2270:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12024,"name":"_amount","nodeType":"VariableDeclaration","scope":12112,"src":"2287:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12023,"name":"uint256","nodeType":"ElementaryTypeName","src":"2287:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2253:50:41"},"returnParameters":{"id":12026,"nodeType":"ParameterList","parameters":[],"src":"2319:0:41"},"scope":12135,"src":"2225:775:41","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12133,"nodeType":"Block","src":"3433:81:41","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12126,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"3478:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":12127,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"3486:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12128,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"3492:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":12124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3461:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3461:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3461:44:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12123,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3451:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3451:55:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3450:57:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12122,"id":12132,"nodeType":"Return","src":"3443:64:41"}]},"documentation":"@dev Hash the parameters ,and return the hash value\n@param _token - the token to pay for register or promotion an address.\n@param _fee - fee needed for register an address.\n@param _beneficiary - the beneficiary payment address\n@return bytes32 -the parameters hash","id":12134,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":12119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12114,"name":"_token","nodeType":"VariableDeclaration","scope":12134,"src":"3345:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":12113,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3345:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":12116,"name":"_fee","nodeType":"VariableDeclaration","scope":12134,"src":"3360:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12115,"name":"uint256","nodeType":"ElementaryTypeName","src":"3360:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":12118,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":12134,"src":"3374:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12117,"name":"address","nodeType":"ElementaryTypeName","src":"3374:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3344:51:41"},"returnParameters":{"id":12122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12121,"name":"","nodeType":"VariableDeclaration","scope":12134,"src":"3420:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3420:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3419:9:41"},"scope":12135,"src":"3318:196:41","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":12136,"src":"283:3233:41"}],"src":"0:3517:41"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/OrganizationRegister.sol","exportedSymbols":{"OrganizationRegister":[12135]},"id":12136,"nodeType":"SourceUnit","nodes":[{"id":11924,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:41"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":11925,"nodeType":"ImportDirective","scope":12136,"sourceUnit":12635,"src":"25:31:41","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":11926,"nodeType":"ImportDirective","scope":12136,"sourceUnit":2258,"src":"57:31:41","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":11927,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"316:15:41","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":11928,"nodeType":"InheritanceSpecifier","src":"316:15:41"}],"contractDependencies":[12634,12645],"contractKind":"contract","documentation":"@title A universal organization registry.\n@dev Organizations can use this scheme to open a registry.\nOther organizations can then add and promote themselves on this registry.","fullyImplemented":true,"id":12135,"linearizedBaseContracts":[12135,12634,12645],"name":"OrganizationRegister","nodeType":"ContractDefinition","nodes":[{"id":11931,"libraryName":{"contractScope":null,"id":11929,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"344:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"338:24:41","typeName":{"id":11930,"name":"uint","nodeType":"ElementaryTypeName","src":"357:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":11934,"libraryName":{"contractScope":null,"id":11932,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"373:9:41","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"367:28:41","typeName":{"id":11933,"name":"address","nodeType":"ElementaryTypeName","src":"387:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"canonicalName":"OrganizationRegister.Parameters","id":11941,"members":[{"constant":false,"id":11936,"name":"fee","nodeType":"VariableDeclaration","scope":11941,"src":"429:11:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11935,"name":"uint256","nodeType":"ElementaryTypeName","src":"429:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":11938,"name":"token","nodeType":"VariableDeclaration","scope":11941,"src":"450:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":11937,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"450:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":11940,"name":"beneficiary","nodeType":"VariableDeclaration","scope":11941,"src":"472:19:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11939,"name":"address","nodeType":"ElementaryTypeName","src":"472:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":12135,"src":"401:97:41","visibility":"public"},{"constant":false,"id":11947,"name":"organizationsRegistry","nodeType":"VariableDeclaration","scope":12135,"src":"599:69:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":11946,"keyType":{"id":11942,"name":"address","nodeType":"ElementaryTypeName","src":"607:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"599:40:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueType":{"id":11945,"keyType":{"id":11943,"name":"address","nodeType":"ElementaryTypeName","src":"624:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"616:22:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":11944,"name":"uint","nodeType":"ElementaryTypeName","src":"633:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"value":null,"visibility":"public"},{"constant":false,"id":11951,"name":"parameters","nodeType":"VariableDeclaration","scope":12135,"src":"675:46:41","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters)"},"typeName":{"id":11950,"keyType":{"id":11948,"name":"bytes32","nodeType":"ElementaryTypeName","src":"683:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"675:28:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters)"},"valueType":{"contractScope":null,"id":11949,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11941,"src":"692:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage_ptr","typeString":"struct OrganizationRegister.Parameters"}}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":11957,"name":"OrgAdded","nodeType":"EventDefinition","parameters":{"id":11956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11953,"indexed":true,"name":"_registry","nodeType":"VariableDeclaration","scope":11957,"src":"744:25:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11952,"name":"address","nodeType":"ElementaryTypeName","src":"744:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11955,"indexed":true,"name":"_org","nodeType":"VariableDeclaration","scope":11957,"src":"771:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11954,"name":"address","nodeType":"ElementaryTypeName","src":"771:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"742:50:41"},"src":"728:65:41"},{"anonymous":false,"documentation":null,"id":11965,"name":"Promotion","nodeType":"EventDefinition","parameters":{"id":11964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11959,"indexed":true,"name":"_registry","nodeType":"VariableDeclaration","scope":11965,"src":"815:25:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11958,"name":"address","nodeType":"ElementaryTypeName","src":"815:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11961,"indexed":true,"name":"_org","nodeType":"VariableDeclaration","scope":11965,"src":"842:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11960,"name":"address","nodeType":"ElementaryTypeName","src":"842:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":11963,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":11965,"src":"864:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11962,"name":"uint256","nodeType":"ElementaryTypeName","src":"864:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"813:67:41"},"src":"798:83:41"},{"body":{"id":12017,"nodeType":"Block","src":"1312:337:41","statements":[{"assignments":[11977],"declarations":[{"constant":false,"id":11977,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12017,"src":"1322:18:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11976,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1322:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":11983,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":11979,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"1361:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":11980,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"1369:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":11981,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11971,"src":"1375:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":11978,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12134,"src":"1343:17:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IERC20_$21017_$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (contract IERC20,uint256,address) pure returns (bytes32)"}},"id":11982,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1343:45:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"1322:66:41"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":11991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11984,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1402:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":11986,"indexExpression":{"argumentTypes":null,"id":11985,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1413:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1402:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":11987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":11938,"src":"1402:28:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":11989,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1440:1:41","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":11988,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20914,"src":"1434:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$20914_$","typeString":"type(contract ERC20)"}},"id":11990,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1434:8:41","typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$20914","typeString":"contract ERC20"}},"src":"1402:40:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12014,"nodeType":"IfStatement","src":"1398:218:41","trueBody":{"id":12013,"nodeType":"Block","src":"1444:172:41","statements":[{"expression":{"argumentTypes":null,"id":11997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11992,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1458:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":11994,"indexExpression":{"argumentTypes":null,"id":11993,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1469:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1458:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":11995,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":11938,"src":"1458:28:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":11996,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11967,"src":"1489:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"1458:37:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":11998,"nodeType":"ExpressionStatement","src":"1458:37:41"},{"expression":{"argumentTypes":null,"id":12004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":11999,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1509:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":12001,"indexExpression":{"argumentTypes":null,"id":12000,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1520:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1509:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":12002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":11936,"src":"1509:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12003,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11969,"src":"1538:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1509:33:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12005,"nodeType":"ExpressionStatement","src":"1509:33:41"},{"expression":{"argumentTypes":null,"id":12011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12006,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"1556:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":12008,"indexExpression":{"argumentTypes":null,"id":12007,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1567:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1556:22:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"id":12009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":11940,"src":"1556:34:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12010,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11971,"src":"1593:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1556:49:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12012,"nodeType":"ExpressionStatement","src":"1556:49:41"}]}},{"expression":{"argumentTypes":null,"id":12015,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11977,"src":"1632:10:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":11975,"id":12016,"nodeType":"Return","src":"1625:17:41"}]},"documentation":"@dev Hash the parameters, save if needed and return the hash value\n@param _token - the token to pay for register or promotion an address.\n@param _fee - fee needed for register an address.\n@param _beneficiary - the beneficiary payment address\n@return bytes32 -the parameters hash","id":12018,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":11972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11967,"name":"_token","nodeType":"VariableDeclaration","scope":12018,"src":"1237:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":11966,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1237:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":11969,"name":"_fee","nodeType":"VariableDeclaration","scope":12018,"src":"1252:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":11968,"name":"uint256","nodeType":"ElementaryTypeName","src":"1252:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":11971,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":12018,"src":"1266:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":11970,"name":"address","nodeType":"ElementaryTypeName","src":"1266:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1236:51:41"},"returnParameters":{"id":11975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":11974,"name":"","nodeType":"VariableDeclaration","scope":12018,"src":"1303:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":11973,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1303:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1302:9:41"},"scope":12135,"src":"1214:435:41","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12111,"nodeType":"Block","src":"2319:681:41","statements":[{"assignments":[12028],"declarations":[{"constant":false,"id":12028,"name":"params","nodeType":"VariableDeclaration","scope":12111,"src":"2329:24:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters"},"typeName":{"contractScope":null,"id":12027,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":11941,"src":"2329:10:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage_ptr","typeString":"struct OrganizationRegister.Parameters"}},"value":null,"visibility":"internal"}],"id":12034,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12029,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11951,"src":"2356:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$11941_storage_$","typeString":"mapping(bytes32 => struct OrganizationRegister.Parameters storage ref)"}},"id":12033,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12031,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2395:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12030,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"2367:27:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2367:36:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2356:48:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_storage","typeString":"struct OrganizationRegister.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2329:75:41"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":12051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12036,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2499:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12040,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12038,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2529:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2521:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2521:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2499:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12042,"indexExpression":{"argumentTypes":null,"id":12041,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2539:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2499:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":12043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2550:1:41","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2499:52:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12045,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2498:54:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12046,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2557:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12047,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"2568:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters memory"}},"id":12048,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":11936,"src":"2568:10:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2557:21:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":12050,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2556:23:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2498:81:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12035,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2490:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2490:90:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12053,"nodeType":"ExpressionStatement","src":"2490:90:41"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12059,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2630:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2630:10:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12061,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"2642:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters memory"}},"id":12062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":11940,"src":"2642:18:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12063,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2662:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12055,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12028,"src":"2599:6:41","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$11941_memory_ptr","typeString":"struct OrganizationRegister.Parameters memory"}},"id":12056,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":11938,"src":"2599:12:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":12054,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2591:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:21:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"2591:38:41","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":12064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2591:79:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12065,"nodeType":"ExpressionStatement","src":"2591:79:41"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12066,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2684:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12070,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12068,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2714:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2706:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2706:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12072,"indexExpression":{"argumentTypes":null,"id":12071,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2724:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":12073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2736:1:41","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2684:53:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12083,"nodeType":"IfStatement","src":"2680:124:41","trueBody":{"id":12082,"nodeType":"Block","src":"2739:65:41","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12077,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2775:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12076,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2767:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2767:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12079,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2785:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":12075,"name":"OrgAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11957,"src":"2758:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":12080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2758:35:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12081,"nodeType":"EmitStatement","src":"2753:40:41"}]}},{"expression":{"argumentTypes":null,"id":12101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12084,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2813:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12089,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12086,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2843:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12085,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2835:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2835:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2813:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12090,"indexExpression":{"argumentTypes":null,"id":12088,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2853:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2813:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12099,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2925:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12091,"name":"organizationsRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11947,"src":"2872:21:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":12095,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12093,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2902:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2894:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2872:39:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":12097,"indexExpression":{"argumentTypes":null,"id":12096,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2912:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2872:48:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"2872:52:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":12100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2872:61:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2813:120:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":12102,"nodeType":"ExpressionStatement","src":"2813:120:41"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12105,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12020,"src":"2966:7:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12104,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2958:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2958:16:41","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12107,"name":"_record","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12022,"src":"2976:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12108,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12024,"src":"2985:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":12103,"name":"Promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11965,"src":"2948:9:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":12109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2948:45:41","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12110,"nodeType":"EmitStatement","src":"2943:50:41"}]},"documentation":"@dev Adding or promoting an address on the registry.\n An address(record) to add or promote can be organization address or any contract address.\n Adding a record is done by paying at least the minimum required by the registry params.\n Promoting a record is done by paying(adding)amount of token to the registry beneficiary.\n@param _avatar The _avatar of the organization which own the registry.\n@param _record The address to add or promote.\n@param _amount amount to pay for adding or promoting","id":12112,"implemented":true,"kind":"function","modifiers":[],"name":"addOrPromoteAddress","nodeType":"FunctionDefinition","parameters":{"id":12025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12020,"name":"_avatar","nodeType":"VariableDeclaration","scope":12112,"src":"2254:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12019,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2254:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12022,"name":"_record","nodeType":"VariableDeclaration","scope":12112,"src":"2270:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12021,"name":"address","nodeType":"ElementaryTypeName","src":"2270:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12024,"name":"_amount","nodeType":"VariableDeclaration","scope":12112,"src":"2287:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12023,"name":"uint256","nodeType":"ElementaryTypeName","src":"2287:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2253:50:41"},"returnParameters":{"id":12026,"nodeType":"ParameterList","parameters":[],"src":"2319:0:41"},"scope":12135,"src":"2225:775:41","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12133,"nodeType":"Block","src":"3433:81:41","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12126,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12114,"src":"3478:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":12127,"name":"_fee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12116,"src":"3486:4:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12128,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12118,"src":"3492:12:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":12124,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3461:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12125,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3461:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3461:44:41","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12123,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3451:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3451:55:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12131,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3450:57:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12122,"id":12132,"nodeType":"Return","src":"3443:64:41"}]},"documentation":"@dev Hash the parameters ,and return the hash value\n@param _token - the token to pay for register or promotion an address.\n@param _fee - fee needed for register an address.\n@param _beneficiary - the beneficiary payment address\n@return bytes32 -the parameters hash","id":12134,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":12119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12114,"name":"_token","nodeType":"VariableDeclaration","scope":12134,"src":"3345:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":12113,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"3345:6:41","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":12116,"name":"_fee","nodeType":"VariableDeclaration","scope":12134,"src":"3360:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12115,"name":"uint256","nodeType":"ElementaryTypeName","src":"3360:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":12118,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":12134,"src":"3374:20:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12117,"name":"address","nodeType":"ElementaryTypeName","src":"3374:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"3344:51:41"},"returnParameters":{"id":12122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12121,"name":"","nodeType":"VariableDeclaration","scope":12134,"src":"3420:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12120,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3420:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3419:9:41"},"scope":12135,"src":"3318:196:41","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":12136,"src":"283:3233:41"}],"src":"0:3517:41"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.194Z","devdoc":{"details":"Organizations can use this scheme to open a registry. Other organizations can then add and promote themselves on this registry.","methods":{"addOrPromoteAddress(address,address,uint256)":{"details":"Adding or promoting an address on the registry. An address(record) to add or promote can be organization address or any contract address. Adding a record is done by paying at least the minimum required by the registry params. Promoting a record is done by paying(adding)amount of token to the registry beneficiary.","params":{"_amount":"amount to pay for adding or promoting","_avatar":"The _avatar of the organization which own the registry.","_record":"The address to add or promote."}},"getParametersHash(address,uint256,address)":{"details":"Hash the parameters ,and return the hash value","params":{"_beneficiary":"- the beneficiary payment address","_fee":"- fee needed for register an address.","_token":"- the token to pay for register or promotion an address."},"return":"bytes32 -the parameters hash"},"setParameters(address,uint256,address)":{"details":"Hash the parameters, save if needed and return the hash value","params":{"_beneficiary":"- the beneficiary payment address","_fee":"- fee needed for register an address.","_token":"- the token to pay for register or promotion an address."},"return":"bytes32 -the parameters hash"}},"title":"A universal organization registry."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Ownable.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Ownable.json new file mode 100644 index 00000000..154b3ae9 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Ownable.json @@ -0,0 +1 @@ +{"contractName":"Ownable","abi":[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. * This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.\",\"methods\":{\"constructor\":{\"details\":\"Initializes the contract setting the deployer as the initial owner.\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":\"Ownable\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.0;\n\nimport \"../GSN/Context.sol\";\n/**\n * @dev Contract module which provides a basic access control mechanism, where\n * there is an account (an owner) that can be granted exclusive access to\n * specific functions.\n *\n * This module is used through inheritance. It will make available the modifier\n * `onlyOwner`, which can be applied to your functions to restrict their use to\n * the owner.\n */\ncontract Ownable is Context {\n address private _owner;\n\n event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);\n\n /**\n * @dev Initializes the contract setting the deployer as the initial owner.\n */\n constructor () internal {\n _owner = _msgSender();\n emit OwnershipTransferred(address(0), _owner);\n }\n\n /**\n * @dev Returns the address of the current owner.\n */\n function owner() public view returns (address) {\n return _owner;\n }\n\n /**\n * @dev Throws if called by any account other than the owner.\n */\n modifier onlyOwner() {\n require(isOwner(), \"Ownable: caller is not the owner\");\n _;\n }\n\n /**\n * @dev Returns true if the caller is the current owner.\n */\n function isOwner() public view returns (bool) {\n return _msgSender() == _owner;\n }\n\n /**\n * @dev Leaves the contract without owner. It will not be possible to call\n * `onlyOwner` functions anymore. Can only be called by the current owner.\n *\n * NOTE: Renouncing ownership will leave the contract without an owner,\n * thereby removing any functionality that is only available to the owner.\n */\n function renounceOwnership() public onlyOwner {\n emit OwnershipTransferred(_owner, address(0));\n _owner = address(0);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n * Can only be called by the current owner.\n */\n function transferOwnership(address newOwner) public onlyOwner {\n _transferOwnership(newOwner);\n }\n\n /**\n * @dev Transfers ownership of the contract to a new account (`newOwner`).\n */\n function _transferOwnership(address newOwner) internal {\n require(newOwner != address(0), \"Ownable: new owner is the zero address\");\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":[20509]},"id":20510,"nodeType":"SourceUnit","nodes":[{"id":20397,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:67"},{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","file":"../GSN/Context.sol","id":20398,"nodeType":"ImportDirective","scope":20510,"sourceUnit":20059,"src":"25:28:67","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":20399,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":20058,"src":"435:7:67","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20400,"nodeType":"InheritanceSpecifier","src":"435:7:67"}],"contractDependencies":[20058],"contractKind":"contract","documentation":"@dev Contract module which provides a basic access control mechanism, where\nthere is an account (an owner) that can be granted exclusive access to\nspecific functions.\n * This module is used through inheritance. It will make available the modifier\n`onlyOwner`, which can be applied to your functions to restrict their use to\nthe owner.","fullyImplemented":true,"id":20509,"linearizedBaseContracts":[20509,20058],"name":"Ownable","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":20402,"name":"_owner","nodeType":"VariableDeclaration","scope":20509,"src":"449:22:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20401,"name":"address","nodeType":"ElementaryTypeName","src":"449:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"anonymous":false,"documentation":null,"id":20408,"name":"OwnershipTransferred","nodeType":"EventDefinition","parameters":{"id":20407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20404,"indexed":true,"name":"previousOwner","nodeType":"VariableDeclaration","scope":20408,"src":"505:29:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20403,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20406,"indexed":true,"name":"newOwner","nodeType":"VariableDeclaration","scope":20408,"src":"536:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20405,"name":"address","nodeType":"ElementaryTypeName","src":"536:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"504:57:67"},"src":"478:84:67"},{"body":{"id":20423,"nodeType":"Block","src":"688:93:67","statements":[{"expression":{"argumentTypes":null,"id":20414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20411,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"698:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20412,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"707:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"707:12:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"698:21:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20415,"nodeType":"ExpressionStatement","src":"698:21:67"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"763:1:67","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":20417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"755:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"755:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20420,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"767:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20416,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20408,"src":"734:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"734:40:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20422,"nodeType":"EmitStatement","src":"729:45:67"}]},"documentation":"@dev Initializes the contract setting the deployer as the initial owner.","id":20424,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":20409,"nodeType":"ParameterList","parameters":[],"src":"676:2:67"},"returnParameters":{"id":20410,"nodeType":"ParameterList","parameters":[],"src":"688:0:67"},"scope":20509,"src":"664:117:67","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20431,"nodeType":"Block","src":"904:30:67","statements":[{"expression":{"argumentTypes":null,"id":20429,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"921:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20428,"id":20430,"nodeType":"Return","src":"914:13:67"}]},"documentation":"@dev Returns the address of the current owner.","id":20432,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nodeType":"FunctionDefinition","parameters":{"id":20425,"nodeType":"ParameterList","parameters":[],"src":"871:2:67"},"returnParameters":{"id":20428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20427,"name":"","nodeType":"VariableDeclaration","scope":20432,"src":"895:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20426,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"894:9:67"},"scope":20509,"src":"857:77:67","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":20441,"nodeType":"Block","src":"1043:82:67","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20435,"name":"isOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20453,"src":"1061:7:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":20436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1061:9:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":20437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1072:34:67","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":20434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1053:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1053:54:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20439,"nodeType":"ExpressionStatement","src":"1053:54:67"},{"id":20440,"nodeType":"PlaceholderStatement","src":"1117:1:67"}]},"documentation":"@dev Throws if called by any account other than the owner.","id":20442,"name":"onlyOwner","nodeType":"ModifierDefinition","parameters":{"id":20433,"nodeType":"ParameterList","parameters":[],"src":"1040:2:67"},"src":"1022:103:67","visibility":"internal"},{"body":{"id":20452,"nodeType":"Block","src":"1254:46:67","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20447,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"1271:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1271:12:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":20449,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"1287:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1271:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":20446,"id":20451,"nodeType":"Return","src":"1264:29:67"}]},"documentation":"@dev Returns true if the caller is the current owner.","id":20453,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nodeType":"FunctionDefinition","parameters":{"id":20443,"nodeType":"ParameterList","parameters":[],"src":"1224:2:67"},"returnParameters":{"id":20446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20445,"name":"","nodeType":"VariableDeclaration","scope":20453,"src":"1248:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20444,"name":"bool","nodeType":"ElementaryTypeName","src":"1248:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1247:6:67"},"scope":20509,"src":"1208:92:67","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":20471,"nodeType":"Block","src":"1688:91:67","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20459,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"1724:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1740:1:67","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":20460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1732:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1732:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":20458,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20408,"src":"1703:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:40:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20464,"nodeType":"EmitStatement","src":"1698:45:67"},{"expression":{"argumentTypes":null,"id":20469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20465,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"1753:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1770:1:67","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":20466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1762:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1762:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1753:19:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20470,"nodeType":"ExpressionStatement","src":"1753:19:67"}]},"documentation":"@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * NOTE: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.","id":20472,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":20456,"modifierName":{"argumentTypes":null,"id":20455,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1678:9:67","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1678:9:67"}],"name":"renounceOwnership","nodeType":"FunctionDefinition","parameters":{"id":20454,"nodeType":"ParameterList","parameters":[],"src":"1668:2:67"},"returnParameters":{"id":20457,"nodeType":"ParameterList","parameters":[],"src":"1688:0:67"},"scope":20509,"src":"1642:137:67","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20483,"nodeType":"Block","src":"1990:45:67","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20480,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20474,"src":"2019:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20479,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20508,"src":"2000:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:28:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20482,"nodeType":"ExpressionStatement","src":"2000:28:67"}]},"documentation":"@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.","id":20484,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":20477,"modifierName":{"argumentTypes":null,"id":20476,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1980:9:67","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1980:9:67"}],"name":"transferOwnership","nodeType":"FunctionDefinition","parameters":{"id":20475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20474,"name":"newOwner","nodeType":"VariableDeclaration","scope":20484,"src":"1955:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20473,"name":"address","nodeType":"ElementaryTypeName","src":"1955:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1954:18:67"},"returnParameters":{"id":20478,"nodeType":"ParameterList","parameters":[],"src":"1990:0:67"},"scope":20509,"src":"1928:107:67","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20507,"nodeType":"Block","src":"2191:170:67","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20490,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2209:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:1:67","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":20491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2221:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2221:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2209:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":20495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2233:40:67","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":20489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2201:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2201:73:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20497,"nodeType":"ExpressionStatement","src":"2201:73:67"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20499,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"2310:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20500,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2318:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20498,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20408,"src":"2289:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2289:38:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20502,"nodeType":"EmitStatement","src":"2284:43:67"},{"expression":{"argumentTypes":null,"id":20505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20503,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"2337:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":20504,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2346:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2337:17:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20506,"nodeType":"ExpressionStatement","src":"2337:17:67"}]},"documentation":"@dev Transfers ownership of the contract to a new account (`newOwner`).","id":20508,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nodeType":"FunctionDefinition","parameters":{"id":20487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20486,"name":"newOwner","nodeType":"VariableDeclaration","scope":20508,"src":"2164:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20485,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2163:18:67"},"returnParameters":{"id":20488,"nodeType":"ParameterList","parameters":[],"src":"2191:0:67"},"scope":20509,"src":"2136:225:67","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":20510,"src":"415:1948:67"}],"src":"0:2364:67"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","exportedSymbols":{"Ownable":[20509]},"id":20510,"nodeType":"SourceUnit","nodes":[{"id":20397,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:67"},{"absolutePath":"openzeppelin-solidity/contracts/GSN/Context.sol","file":"../GSN/Context.sol","id":20398,"nodeType":"ImportDirective","scope":20510,"sourceUnit":20059,"src":"25:28:67","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":20399,"name":"Context","nodeType":"UserDefinedTypeName","referencedDeclaration":20058,"src":"435:7:67","typeDescriptions":{"typeIdentifier":"t_contract$_Context_$20058","typeString":"contract Context"}},"id":20400,"nodeType":"InheritanceSpecifier","src":"435:7:67"}],"contractDependencies":[20058],"contractKind":"contract","documentation":"@dev Contract module which provides a basic access control mechanism, where\nthere is an account (an owner) that can be granted exclusive access to\nspecific functions.\n * This module is used through inheritance. It will make available the modifier\n`onlyOwner`, which can be applied to your functions to restrict their use to\nthe owner.","fullyImplemented":true,"id":20509,"linearizedBaseContracts":[20509,20058],"name":"Ownable","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":20402,"name":"_owner","nodeType":"VariableDeclaration","scope":20509,"src":"449:22:67","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20401,"name":"address","nodeType":"ElementaryTypeName","src":"449:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"private"},{"anonymous":false,"documentation":null,"id":20408,"name":"OwnershipTransferred","nodeType":"EventDefinition","parameters":{"id":20407,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20404,"indexed":true,"name":"previousOwner","nodeType":"VariableDeclaration","scope":20408,"src":"505:29:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20403,"name":"address","nodeType":"ElementaryTypeName","src":"505:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20406,"indexed":true,"name":"newOwner","nodeType":"VariableDeclaration","scope":20408,"src":"536:24:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20405,"name":"address","nodeType":"ElementaryTypeName","src":"536:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"504:57:67"},"src":"478:84:67"},{"body":{"id":20423,"nodeType":"Block","src":"688:93:67","statements":[{"expression":{"argumentTypes":null,"id":20414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20411,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"698:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20412,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"707:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"707:12:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"698:21:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20415,"nodeType":"ExpressionStatement","src":"698:21:67"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20418,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"763:1:67","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":20417,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"755:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"755:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":20420,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"767:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20416,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20408,"src":"734:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"734:40:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20422,"nodeType":"EmitStatement","src":"729:45:67"}]},"documentation":"@dev Initializes the contract setting the deployer as the initial owner.","id":20424,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":20409,"nodeType":"ParameterList","parameters":[],"src":"676:2:67"},"returnParameters":{"id":20410,"nodeType":"ParameterList","parameters":[],"src":"688:0:67"},"scope":20509,"src":"664:117:67","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":20431,"nodeType":"Block","src":"904:30:67","statements":[{"expression":{"argumentTypes":null,"id":20429,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"921:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":20428,"id":20430,"nodeType":"Return","src":"914:13:67"}]},"documentation":"@dev Returns the address of the current owner.","id":20432,"implemented":true,"kind":"function","modifiers":[],"name":"owner","nodeType":"FunctionDefinition","parameters":{"id":20425,"nodeType":"ParameterList","parameters":[],"src":"871:2:67"},"returnParameters":{"id":20428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20427,"name":"","nodeType":"VariableDeclaration","scope":20432,"src":"895:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20426,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"894:9:67"},"scope":20509,"src":"857:77:67","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":20441,"nodeType":"Block","src":"1043:82:67","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20435,"name":"isOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20453,"src":"1061:7:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bool_$","typeString":"function () view returns (bool)"}},"id":20436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1061:9:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572","id":20437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1072:34:67","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""},"value":"Ownable: caller is not the owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe","typeString":"literal_string \"Ownable: caller is not the owner\""}],"id":20434,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1053:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1053:54:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20439,"nodeType":"ExpressionStatement","src":"1053:54:67"},{"id":20440,"nodeType":"PlaceholderStatement","src":"1117:1:67"}]},"documentation":"@dev Throws if called by any account other than the owner.","id":20442,"name":"onlyOwner","nodeType":"ModifierDefinition","parameters":{"id":20433,"nodeType":"ParameterList","parameters":[],"src":"1040:2:67"},"src":"1022:103:67","visibility":"internal"},{"body":{"id":20452,"nodeType":"Block","src":"1254:46:67","statements":[{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":20447,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20046,"src":"1271:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_payable_$","typeString":"function () view returns (address payable)"}},"id":20448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1271:12:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":20449,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"1287:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1271:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":20446,"id":20451,"nodeType":"Return","src":"1264:29:67"}]},"documentation":"@dev Returns true if the caller is the current owner.","id":20453,"implemented":true,"kind":"function","modifiers":[],"name":"isOwner","nodeType":"FunctionDefinition","parameters":{"id":20443,"nodeType":"ParameterList","parameters":[],"src":"1224:2:67"},"returnParameters":{"id":20446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20445,"name":"","nodeType":"VariableDeclaration","scope":20453,"src":"1248:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20444,"name":"bool","nodeType":"ElementaryTypeName","src":"1248:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1247:6:67"},"scope":20509,"src":"1208:92:67","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":20471,"nodeType":"Block","src":"1688:91:67","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20459,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"1724:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1740:1:67","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":20460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1732:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1732:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":20458,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20408,"src":"1703:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20463,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1703:40:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20464,"nodeType":"EmitStatement","src":"1698:45:67"},{"expression":{"argumentTypes":null,"id":20469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20465,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"1753:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20467,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1770:1:67","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":20466,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1762:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1762:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"1753:19:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20470,"nodeType":"ExpressionStatement","src":"1753:19:67"}]},"documentation":"@dev Leaves the contract without owner. It will not be possible to call\n`onlyOwner` functions anymore. Can only be called by the current owner.\n * NOTE: Renouncing ownership will leave the contract without an owner,\nthereby removing any functionality that is only available to the owner.","id":20472,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":20456,"modifierName":{"argumentTypes":null,"id":20455,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1678:9:67","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1678:9:67"}],"name":"renounceOwnership","nodeType":"FunctionDefinition","parameters":{"id":20454,"nodeType":"ParameterList","parameters":[],"src":"1668:2:67"},"returnParameters":{"id":20457,"nodeType":"ParameterList","parameters":[],"src":"1688:0:67"},"scope":20509,"src":"1642:137:67","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20483,"nodeType":"Block","src":"1990:45:67","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20480,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20474,"src":"2019:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":20479,"name":"_transferOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20508,"src":"2000:18:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":20481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2000:28:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20482,"nodeType":"ExpressionStatement","src":"2000:28:67"}]},"documentation":"@dev Transfers ownership of the contract to a new account (`newOwner`).\nCan only be called by the current owner.","id":20484,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":20477,"modifierName":{"argumentTypes":null,"id":20476,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1980:9:67","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1980:9:67"}],"name":"transferOwnership","nodeType":"FunctionDefinition","parameters":{"id":20475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20474,"name":"newOwner","nodeType":"VariableDeclaration","scope":20484,"src":"1955:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20473,"name":"address","nodeType":"ElementaryTypeName","src":"1955:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1954:18:67"},"returnParameters":{"id":20478,"nodeType":"ParameterList","parameters":[],"src":"1990:0:67"},"scope":20509,"src":"1928:107:67","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":20507,"nodeType":"Block","src":"2191:170:67","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":20494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20490,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2209:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":20492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2229:1:67","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":20491,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2221:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":20493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2221:10:67","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2209:22:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373","id":20495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2233:40:67","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""},"value":"Ownable: new owner is the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe","typeString":"literal_string \"Ownable: new owner is the zero address\""}],"id":20489,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2201:7:67","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2201:73:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20497,"nodeType":"ExpressionStatement","src":"2201:73:67"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20499,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"2310:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":20500,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2318:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":20498,"name":"OwnershipTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20408,"src":"2289:20:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":20501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2289:38:67","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20502,"nodeType":"EmitStatement","src":"2284:43:67"},{"expression":{"argumentTypes":null,"id":20505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":20503,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20402,"src":"2337:6:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":20504,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20486,"src":"2346:8:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2337:17:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":20506,"nodeType":"ExpressionStatement","src":"2337:17:67"}]},"documentation":"@dev Transfers ownership of the contract to a new account (`newOwner`).","id":20508,"implemented":true,"kind":"function","modifiers":[],"name":"_transferOwnership","nodeType":"FunctionDefinition","parameters":{"id":20487,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20486,"name":"newOwner","nodeType":"VariableDeclaration","scope":20508,"src":"2164:16:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20485,"name":"address","nodeType":"ElementaryTypeName","src":"2164:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2163:18:67"},"returnParameters":{"id":20488,"nodeType":"ParameterList","parameters":[],"src":"2191:0:67"},"scope":20509,"src":"2136:225:67","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":20510,"src":"415:1948:67"}],"src":"0:2364:67"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.269Z","devdoc":{"details":"Contract module which provides a basic access control mechanism, where there is an account (an owner) that can be granted exclusive access to specific functions. * This module is used through inheritance. It will make available the modifier `onlyOwner`, which can be applied to your functions to restrict their use to the owner.","methods":{"constructor":{"details":"Initializes the contract setting the deployer as the initial owner."},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PolkaCurve.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PolkaCurve.json new file mode 100644 index 00000000..a025545f --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PolkaCurve.json @@ -0,0 +1 @@ +{"contractName":"PolkaCurve","abi":[{"constant":true,"inputs":[],"name":"SUM_OF_SQRTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"TOTAL_REPUTATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"calc","outputs":[{"internalType":"uint256","name":"sqrt","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"SUM_OF_SQRTS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"TOTAL_REPUTATION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"calc\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"sqrt\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{},\"title\":\"A Curve contract which implement the function of square root. the result is normalized for the total reputation allocated. \"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/PolkaCurve.sol\":\"PolkaCurve\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol\":{\"keccak256\":\"0x4e67086c005d04579132bf539abcf0f698a9db496a3478ce9cda6c54a379ee4c\",\"urls\":[\"bzz-raw://514910f66b7de63fa2d556211ce91550e0ab3337c8010a5b5a5e2598243a2107\",\"dweb:/ipfs/QmYycJYmPLrh5r3Uv65pACXM3Z28jSSKESFCfFqALdBi3j\"]},\"/Users/oren/daostack/arc/contracts/test/PolkaCurve.sol\":{\"keccak256\":\"0xbf7c7652349c3079aff06c327715c4cbaf1e9c557632b4a67f68791968541878\",\"urls\":[\"bzz-raw://9f03f78ec1c2249cc7da4c101958b0538a6cd285ef783ca556db7029902f453f\",\"dweb:/ipfs/QmfHgFbCcb9nagBRFBehCwn1YzCkqjmnrN2jkczG4R4zXj\"]}},\"version\":1}","sourceMap":"211:488:33:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;211:488:33;;;;;;;","deployedSourceMap":"211:488:33:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;211:488:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;364:333;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;364:333:33;;:::i;:::-;;;;;;;;;;;;;;;;311:46;;;:::i;256:49::-;;;:::i;364:333::-;463:7;454:16;;;503:1;498;490:9;;489:15;536:87;547:4;543:1;:8;536:87;;;574:1;567:8;;611:1;606;602;594:5;:9;;;;;;:13;593:19;;;;;;589:23;;536:87;;;350:7;299:6;641:21;;640:36;680:10;639:51;632:58;;364:333;;;;;:::o;311:46::-;350:7;311:46;:::o;256:49::-;299:6;256:49;:::o","source":"pragma solidity 0.5.13;\n\nimport \"../schemes/CurveInterface.sol\";\n\n/**\n * @title A Curve contract which implement the function of square root.\n * the result is normalized for the total reputation allocated. \n*/\n\ncontract PolkaCurve is CurveInterface {\n\n uint256 public constant TOTAL_REPUTATION = 800000;\n uint256 public constant SUM_OF_SQRTS = 1718050;\n\n function calc(uint256 _value) external pure returns (uint256 sqrt) {\n uint value = _value * 1 ether;\n uint z = (value + 1) / 2;\n sqrt = value;\n while (z < sqrt) {\n sqrt = z;\n z = (value / z + z) / 2;\n }\n sqrt = ((sqrt*TOTAL_REPUTATION)/SUM_OF_SQRTS) * 1000000000;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/PolkaCurve.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/PolkaCurve.sol","exportedSymbols":{"PolkaCurve":[9320]},"id":9321,"nodeType":"SourceUnit","nodes":[{"id":9251,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:33"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","file":"../schemes/CurveInterface.sol","id":9252,"nodeType":"ImportDirective","scope":9321,"sourceUnit":6304,"src":"25:39:33","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9253,"name":"CurveInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":6303,"src":"234:14:33","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"id":9254,"nodeType":"InheritanceSpecifier","src":"234:14:33"}],"contractDependencies":[6303],"contractKind":"contract","documentation":"@title A Curve contract which implement the function of square root.\nthe result is normalized for the total reputation allocated. ","fullyImplemented":true,"id":9320,"linearizedBaseContracts":[9320,6303],"name":"PolkaCurve","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9257,"name":"TOTAL_REPUTATION","nodeType":"VariableDeclaration","scope":9320,"src":"256:49:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9255,"name":"uint256","nodeType":"ElementaryTypeName","src":"256:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"383030303030","id":9256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"299:6:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_800000_by_1","typeString":"int_const 800000"},"value":"800000"},"visibility":"public"},{"constant":true,"id":9260,"name":"SUM_OF_SQRTS","nodeType":"VariableDeclaration","scope":9320,"src":"311:46:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9258,"name":"uint256","nodeType":"ElementaryTypeName","src":"311:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"31373138303530","id":9259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"350:7:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1718050_by_1","typeString":"int_const 1718050"},"value":"1718050"},"visibility":"public"},{"body":{"id":9318,"nodeType":"Block","src":"431:266:33","statements":[{"assignments":[9268],"declarations":[{"constant":false,"id":9268,"name":"value","nodeType":"VariableDeclaration","scope":9318,"src":"441:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9267,"name":"uint","nodeType":"ElementaryTypeName","src":"441:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":9272,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9269,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"454:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"31","id":9270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"463:7:33","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"454:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"441:29:33"},{"assignments":[9274],"declarations":[{"constant":false,"id":9274,"name":"z","nodeType":"VariableDeclaration","scope":9318,"src":"480:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9273,"name":"uint","nodeType":"ElementaryTypeName","src":"480:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":9281,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9275,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"490:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":9276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"498:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"490:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9278,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"489:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":9279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"503:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"489:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"480:24:33"},{"expression":{"argumentTypes":null,"id":9284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9282,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"514:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"521:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"514:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9285,"nodeType":"ExpressionStatement","src":"514:12:33"},{"body":{"id":9304,"nodeType":"Block","src":"553:70:33","statements":[{"expression":{"argumentTypes":null,"id":9291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9289,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"567:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9290,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"574:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"567:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9292,"nodeType":"ExpressionStatement","src":"567:8:33"},{"expression":{"argumentTypes":null,"id":9302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9293,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"589:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9294,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"594:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":9295,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"602:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"594:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":9297,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"606:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"594:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9299,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"593:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":9300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"611:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"593:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"589:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9303,"nodeType":"ExpressionStatement","src":"589:23:33"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9286,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"543:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":9287,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"547:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"543:8:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9305,"nodeType":"WhileStatement","src":"536:87:33"},{"expression":{"argumentTypes":null,"id":9316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9306,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"632:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9307,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"641:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":9308,"name":"TOTAL_REPUTATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9257,"src":"646:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"641:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9310,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"640:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":9311,"name":"SUM_OF_SQRTS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9260,"src":"664:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"640:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"639:38:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"31303030303030303030","id":9314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"680:10:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1000000000"},"src":"639:51:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"632:58:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9317,"nodeType":"ExpressionStatement","src":"632:58:33"}]},"documentation":null,"id":9319,"implemented":true,"kind":"function","modifiers":[],"name":"calc","nodeType":"FunctionDefinition","parameters":{"id":9263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9262,"name":"_value","nodeType":"VariableDeclaration","scope":9319,"src":"378:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9261,"name":"uint256","nodeType":"ElementaryTypeName","src":"378:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"377:16:33"},"returnParameters":{"id":9266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9265,"name":"sqrt","nodeType":"VariableDeclaration","scope":9319,"src":"417:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9264,"name":"uint256","nodeType":"ElementaryTypeName","src":"417:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"416:14:33"},"scope":9320,"src":"364:333:33","stateMutability":"pure","superFunction":6302,"visibility":"external"}],"scope":9321,"src":"211:488:33"}],"src":"0:700:33"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/PolkaCurve.sol","exportedSymbols":{"PolkaCurve":[9320]},"id":9321,"nodeType":"SourceUnit","nodes":[{"id":9251,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:33"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","file":"../schemes/CurveInterface.sol","id":9252,"nodeType":"ImportDirective","scope":9321,"sourceUnit":6304,"src":"25:39:33","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9253,"name":"CurveInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":6303,"src":"234:14:33","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"id":9254,"nodeType":"InheritanceSpecifier","src":"234:14:33"}],"contractDependencies":[6303],"contractKind":"contract","documentation":"@title A Curve contract which implement the function of square root.\nthe result is normalized for the total reputation allocated. ","fullyImplemented":true,"id":9320,"linearizedBaseContracts":[9320,6303],"name":"PolkaCurve","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":9257,"name":"TOTAL_REPUTATION","nodeType":"VariableDeclaration","scope":9320,"src":"256:49:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9255,"name":"uint256","nodeType":"ElementaryTypeName","src":"256:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"383030303030","id":9256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"299:6:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_800000_by_1","typeString":"int_const 800000"},"value":"800000"},"visibility":"public"},{"constant":true,"id":9260,"name":"SUM_OF_SQRTS","nodeType":"VariableDeclaration","scope":9320,"src":"311:46:33","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9258,"name":"uint256","nodeType":"ElementaryTypeName","src":"311:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"31373138303530","id":9259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"350:7:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1718050_by_1","typeString":"int_const 1718050"},"value":"1718050"},"visibility":"public"},{"body":{"id":9318,"nodeType":"Block","src":"431:266:33","statements":[{"assignments":[9268],"declarations":[{"constant":false,"id":9268,"name":"value","nodeType":"VariableDeclaration","scope":9318,"src":"441:10:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9267,"name":"uint","nodeType":"ElementaryTypeName","src":"441:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":9272,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9269,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9262,"src":"454:6:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"31","id":9270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"463:7:33","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1"},"src":"454:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"441:29:33"},{"assignments":[9274],"declarations":[{"constant":false,"id":9274,"name":"z","nodeType":"VariableDeclaration","scope":9318,"src":"480:6:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9273,"name":"uint","nodeType":"ElementaryTypeName","src":"480:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":9281,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9275,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"490:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":9276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"498:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"490:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9278,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"489:11:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":9279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"503:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"489:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"480:24:33"},{"expression":{"argumentTypes":null,"id":9284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9282,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"514:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9283,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"521:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"514:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9285,"nodeType":"ExpressionStatement","src":"514:12:33"},{"body":{"id":9304,"nodeType":"Block","src":"553:70:33","statements":[{"expression":{"argumentTypes":null,"id":9291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9289,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"567:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":9290,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"574:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"567:8:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9292,"nodeType":"ExpressionStatement","src":"567:8:33"},{"expression":{"argumentTypes":null,"id":9302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9293,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"589:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9294,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9268,"src":"594:5:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":9295,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"602:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"594:9:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":9297,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"606:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"594:13:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9299,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"593:15:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":9300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"611:1:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"593:19:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"589:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9303,"nodeType":"ExpressionStatement","src":"589:23:33"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9288,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9286,"name":"z","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9274,"src":"543:1:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":9287,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"547:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"543:8:33","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":9305,"nodeType":"WhileStatement","src":"536:87:33"},{"expression":{"argumentTypes":null,"id":9316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9306,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"632:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":9309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":9307,"name":"sqrt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9265,"src":"641:4:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":9308,"name":"TOTAL_REPUTATION","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9257,"src":"646:16:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"641:21:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9310,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"640:23:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":9311,"name":"SUM_OF_SQRTS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9260,"src":"664:12:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"640:36:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9313,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"639:38:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"hexValue":"31303030303030303030","id":9314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"680:10:33","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1000000000_by_1","typeString":"int_const 1000000000"},"value":"1000000000"},"src":"639:51:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"632:58:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":9317,"nodeType":"ExpressionStatement","src":"632:58:33"}]},"documentation":null,"id":9319,"implemented":true,"kind":"function","modifiers":[],"name":"calc","nodeType":"FunctionDefinition","parameters":{"id":9263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9262,"name":"_value","nodeType":"VariableDeclaration","scope":9319,"src":"378:14:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9261,"name":"uint256","nodeType":"ElementaryTypeName","src":"378:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"377:16:33"},"returnParameters":{"id":9266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9265,"name":"sqrt","nodeType":"VariableDeclaration","scope":9319,"src":"417:12:33","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9264,"name":"uint256","nodeType":"ElementaryTypeName","src":"417:7:33","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"416:14:33"},"scope":9320,"src":"364:333:33","stateMutability":"pure","superFunction":6302,"visibility":"external"}],"scope":9321,"src":"211:488:33"}],"src":"0:700:33"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.155Z","devdoc":{"methods":{},"title":"A Curve contract which implement the function of square root. the result is normalized for the total reputation allocated. "},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PriceOracleInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PriceOracleInterface.json new file mode 100644 index 00000000..430de9e6 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PriceOracleInterface.json @@ -0,0 +1 @@ +{"contractName":"PriceOracleInterface","abi":[{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol\":\"PriceOracleInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol\":{\"keccak256\":\"0x039506b7d17da35e14379bc12cb2896e11f527f89827f2abb5001dd32fff911b\",\"urls\":[\"bzz-raw://0d629d58127bcb1808e61152e3deb8e9381829316be5abc0fac4a363f6f1733f\",\"dweb:/ipfs/QmfRzBypSmVxWCuvPMFduxKv9sqBfJBxB5VXqmUi7Aw1EE\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity 0.5.13;\n\ninterface PriceOracleInterface {\n\n function getPrice(address token) external view returns (uint, uint);\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","exportedSymbols":{"PriceOracleInterface":[7860]},"id":7861,"nodeType":"SourceUnit","nodes":[{"id":7850,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:20"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":7860,"linearizedBaseContracts":[7860],"name":"PriceOracleInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":7859,"implemented":false,"kind":"function","modifiers":[],"name":"getPrice","nodeType":"FunctionDefinition","parameters":{"id":7853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7852,"name":"token","nodeType":"VariableDeclaration","scope":7859,"src":"81:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7851,"name":"address","nodeType":"ElementaryTypeName","src":"81:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"80:15:20"},"returnParameters":{"id":7858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7855,"name":"","nodeType":"VariableDeclaration","scope":7859,"src":"119:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7854,"name":"uint","nodeType":"ElementaryTypeName","src":"119:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7857,"name":"","nodeType":"VariableDeclaration","scope":7859,"src":"125:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7856,"name":"uint","nodeType":"ElementaryTypeName","src":"125:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"118:12:20"},"scope":7860,"src":"63:68:20","stateMutability":"view","superFunction":null,"visibility":"external"}],"scope":7861,"src":"25:109:20"}],"src":"0:135:20"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","exportedSymbols":{"PriceOracleInterface":[7860]},"id":7861,"nodeType":"SourceUnit","nodes":[{"id":7850,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:20"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":7860,"linearizedBaseContracts":[7860],"name":"PriceOracleInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":7859,"implemented":false,"kind":"function","modifiers":[],"name":"getPrice","nodeType":"FunctionDefinition","parameters":{"id":7853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7852,"name":"token","nodeType":"VariableDeclaration","scope":7859,"src":"81:13:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":7851,"name":"address","nodeType":"ElementaryTypeName","src":"81:7:20","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"80:15:20"},"returnParameters":{"id":7858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7855,"name":"","nodeType":"VariableDeclaration","scope":7859,"src":"119:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7854,"name":"uint","nodeType":"ElementaryTypeName","src":"119:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7857,"name":"","nodeType":"VariableDeclaration","scope":7859,"src":"125:4:20","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7856,"name":"uint","nodeType":"ElementaryTypeName","src":"125:4:20","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"118:12:20"},"scope":7860,"src":"63:68:20","stateMutability":"view","superFunction":null,"visibility":"external"}],"scope":7861,"src":"25:109:20"}],"src":"0:135:20"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.131Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PriceOracleMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PriceOracleMock.json new file mode 100644 index 00000000..5b578126 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/PriceOracleMock.json @@ -0,0 +1 @@ +{"contractName":"PriceOracleMock","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenPrices","outputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"setTokenPrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"getPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"name\":\"setTokenPrice\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"tokenPrices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"numerator\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"denominator\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/PriceOracleMock.sol\":\"PriceOracleMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol\":{\"keccak256\":\"0x039506b7d17da35e14379bc12cb2896e11f527f89827f2abb5001dd32fff911b\",\"urls\":[\"bzz-raw://0d629d58127bcb1808e61152e3deb8e9381829316be5abc0fac4a363f6f1733f\",\"dweb:/ipfs/QmfRzBypSmVxWCuvPMFduxKv9sqBfJBxB5VXqmUi7Aw1EE\"]},\"/Users/oren/daostack/arc/contracts/test/PriceOracleMock.sol\":{\"keccak256\":\"0x959de2092ce563567185f9707ee74e79a242bb9d3777ffecc725a7b906b2f7cb\",\"urls\":[\"bzz-raw://e73becec5887d19f79766cee9a3e950d430144e4387f4e115a26574cd95e546e\",\"dweb:/ipfs/QmXp1gtxcUEaecLTcPYM6tDzgTu4ouJ6WaWCh8VtFcmQpW\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]}},\"version\":1}","sourceMap":"137:570:34:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;137:570:34;;788:96:63;867:10;788:96;:::o;137:570:34:-;;;;;;;","deployedSourceMap":"137:570:34:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;137:570:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;306:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;306:45:34;-1:-1:-1;;;;;306:45:34;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;530:175;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;530:175:34;-1:-1:-1;;;;;530:175:34;;:::i;1642:137:67:-;;;:::i;:::-;;857:77;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;358:162:34;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;358:162:34;;;;;;;;;;;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;306:45:34:-;;;;;;;;;;;;;;;;;;;;:::o;530:175::-;584:4;590;606:18;;:::i;:::-;-1:-1:-1;;;;;;;;627:18:34;;;;;:11;:18;;;;;;;;;606:39;;;;;;;;;;;;;;;;;;;;;;530:175::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;358:162:34:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:29:34;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;463:18:34;;;-1:-1:-1;463:18:34;;;:11;:18;;;;;:50;;;;;;;;358:162::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;137:570:34:-;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"../schemes/PriceOracleInterface.sol\";\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\ncontract PriceOracleMock is PriceOracleInterface, Ownable {\n\n struct Price {\n uint256 numerator;\n uint256 denominator;\n }\n\n // user => amount\n mapping (address => Price) public tokenPrices;\n\n function setTokenPrice(address token, uint256 numerator, uint256 denominator) public onlyOwner {\n tokenPrices[token] = Price(numerator, denominator);\n }\n \n function getPrice(address token) public view returns (uint, uint) {\n Price memory price = tokenPrices[token];\n return (price.numerator, price.denominator);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/PriceOracleMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/PriceOracleMock.sol","exportedSymbols":{"PriceOracleMock":[9381]},"id":9382,"nodeType":"SourceUnit","nodes":[{"id":9322,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:34"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","file":"../schemes/PriceOracleInterface.sol","id":9323,"nodeType":"ImportDirective","scope":9382,"sourceUnit":7861,"src":"25:45:34","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":9324,"nodeType":"ImportDirective","scope":9382,"sourceUnit":20510,"src":"71:63:34","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9325,"name":"PriceOracleInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":7860,"src":"165:20:34","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"id":9326,"nodeType":"InheritanceSpecifier","src":"165:20:34"},{"arguments":null,"baseName":{"contractScope":null,"id":9327,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"187:7:34","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":9328,"nodeType":"InheritanceSpecifier","src":"187:7:34"}],"contractDependencies":[7860,20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9381,"linearizedBaseContracts":[9381,20509,20058,7860],"name":"PriceOracleMock","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PriceOracleMock.Price","id":9333,"members":[{"constant":false,"id":9330,"name":"numerator","nodeType":"VariableDeclaration","scope":9333,"src":"225:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9329,"name":"uint256","nodeType":"ElementaryTypeName","src":"225:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9332,"name":"denominator","nodeType":"VariableDeclaration","scope":9333,"src":"252:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9331,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Price","nodeType":"StructDefinition","scope":9381,"src":"202:76:34","visibility":"public"},{"constant":false,"id":9337,"name":"tokenPrices","nodeType":"VariableDeclaration","scope":9381,"src":"306:45:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price)"},"typeName":{"id":9336,"keyType":{"id":9334,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"306:26:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price)"},"valueType":{"contractScope":null,"id":9335,"name":"Price","nodeType":"UserDefinedTypeName","referencedDeclaration":9333,"src":"326:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage_ptr","typeString":"struct PriceOracleMock.Price"}}},"value":null,"visibility":"public"},{"body":{"id":9357,"nodeType":"Block","src":"453:67:34","statements":[{"expression":{"argumentTypes":null,"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9348,"name":"tokenPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"463:11:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price storage ref)"}},"id":9350,"indexExpression":{"argumentTypes":null,"id":9349,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9339,"src":"475:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"463:18:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage","typeString":"struct PriceOracleMock.Price storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9352,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"490:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9353,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9343,"src":"501:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9351,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"484:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Price_$9333_storage_ptr_$","typeString":"type(struct PriceOracleMock.Price storage pointer)"}},"id":9354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:29:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory","typeString":"struct PriceOracleMock.Price memory"}},"src":"463:50:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage","typeString":"struct PriceOracleMock.Price storage ref"}},"id":9356,"nodeType":"ExpressionStatement","src":"463:50:34"}]},"documentation":null,"id":9358,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":9346,"modifierName":{"argumentTypes":null,"id":9345,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"443:9:34","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"443:9:34"}],"name":"setTokenPrice","nodeType":"FunctionDefinition","parameters":{"id":9344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9339,"name":"token","nodeType":"VariableDeclaration","scope":9358,"src":"381:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9338,"name":"address","nodeType":"ElementaryTypeName","src":"381:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9341,"name":"numerator","nodeType":"VariableDeclaration","scope":9358,"src":"396:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9340,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9343,"name":"denominator","nodeType":"VariableDeclaration","scope":9358,"src":"415:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9342,"name":"uint256","nodeType":"ElementaryTypeName","src":"415:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"380:55:34"},"returnParameters":{"id":9347,"nodeType":"ParameterList","parameters":[],"src":"453:0:34"},"scope":9381,"src":"358:162:34","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9379,"nodeType":"Block","src":"596:109:34","statements":[{"assignments":[9368],"declarations":[{"constant":false,"id":9368,"name":"price","nodeType":"VariableDeclaration","scope":9379,"src":"606:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory_ptr","typeString":"struct PriceOracleMock.Price"},"typeName":{"contractScope":null,"id":9367,"name":"Price","nodeType":"UserDefinedTypeName","referencedDeclaration":9333,"src":"606:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage_ptr","typeString":"struct PriceOracleMock.Price"}},"value":null,"visibility":"internal"}],"id":9372,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9369,"name":"tokenPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"627:11:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price storage ref)"}},"id":9371,"indexExpression":{"argumentTypes":null,"id":9370,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9360,"src":"639:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"627:18:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage","typeString":"struct PriceOracleMock.Price storage ref"}},"nodeType":"VariableDeclarationStatement","src":"606:39:34"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9373,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9368,"src":"663:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory_ptr","typeString":"struct PriceOracleMock.Price memory"}},"id":9374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numerator","nodeType":"MemberAccess","referencedDeclaration":9330,"src":"663:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9375,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9368,"src":"680:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory_ptr","typeString":"struct PriceOracleMock.Price memory"}},"id":9376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"denominator","nodeType":"MemberAccess","referencedDeclaration":9332,"src":"680:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9377,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"662:36:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":9366,"id":9378,"nodeType":"Return","src":"655:43:34"}]},"documentation":null,"id":9380,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nodeType":"FunctionDefinition","parameters":{"id":9361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9360,"name":"token","nodeType":"VariableDeclaration","scope":9380,"src":"548:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9359,"name":"address","nodeType":"ElementaryTypeName","src":"548:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"547:15:34"},"returnParameters":{"id":9366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9363,"name":"","nodeType":"VariableDeclaration","scope":9380,"src":"584:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9362,"name":"uint","nodeType":"ElementaryTypeName","src":"584:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9365,"name":"","nodeType":"VariableDeclaration","scope":9380,"src":"590:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9364,"name":"uint","nodeType":"ElementaryTypeName","src":"590:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"583:12:34"},"scope":9381,"src":"530:175:34","stateMutability":"view","superFunction":7859,"visibility":"public"}],"scope":9382,"src":"137:570:34"}],"src":"0:708:34"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/PriceOracleMock.sol","exportedSymbols":{"PriceOracleMock":[9381]},"id":9382,"nodeType":"SourceUnit","nodes":[{"id":9322,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:34"},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/PriceOracleInterface.sol","file":"../schemes/PriceOracleInterface.sol","id":9323,"nodeType":"ImportDirective","scope":9382,"sourceUnit":7861,"src":"25:45:34","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":9324,"nodeType":"ImportDirective","scope":9382,"sourceUnit":20510,"src":"71:63:34","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9325,"name":"PriceOracleInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":7860,"src":"165:20:34","typeDescriptions":{"typeIdentifier":"t_contract$_PriceOracleInterface_$7860","typeString":"contract PriceOracleInterface"}},"id":9326,"nodeType":"InheritanceSpecifier","src":"165:20:34"},{"arguments":null,"baseName":{"contractScope":null,"id":9327,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"187:7:34","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":9328,"nodeType":"InheritanceSpecifier","src":"187:7:34"}],"contractDependencies":[7860,20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9381,"linearizedBaseContracts":[9381,20509,20058,7860],"name":"PriceOracleMock","nodeType":"ContractDefinition","nodes":[{"canonicalName":"PriceOracleMock.Price","id":9333,"members":[{"constant":false,"id":9330,"name":"numerator","nodeType":"VariableDeclaration","scope":9333,"src":"225:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9329,"name":"uint256","nodeType":"ElementaryTypeName","src":"225:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9332,"name":"denominator","nodeType":"VariableDeclaration","scope":9333,"src":"252:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9331,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Price","nodeType":"StructDefinition","scope":9381,"src":"202:76:34","visibility":"public"},{"constant":false,"id":9337,"name":"tokenPrices","nodeType":"VariableDeclaration","scope":9381,"src":"306:45:34","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price)"},"typeName":{"id":9336,"keyType":{"id":9334,"name":"address","nodeType":"ElementaryTypeName","src":"315:7:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"306:26:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price)"},"valueType":{"contractScope":null,"id":9335,"name":"Price","nodeType":"UserDefinedTypeName","referencedDeclaration":9333,"src":"326:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage_ptr","typeString":"struct PriceOracleMock.Price"}}},"value":null,"visibility":"public"},{"body":{"id":9357,"nodeType":"Block","src":"453:67:34","statements":[{"expression":{"argumentTypes":null,"id":9355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9348,"name":"tokenPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"463:11:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price storage ref)"}},"id":9350,"indexExpression":{"argumentTypes":null,"id":9349,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9339,"src":"475:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"463:18:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage","typeString":"struct PriceOracleMock.Price storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9352,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9341,"src":"490:9:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9353,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9343,"src":"501:11:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9351,"name":"Price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9333,"src":"484:5:34","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Price_$9333_storage_ptr_$","typeString":"type(struct PriceOracleMock.Price storage pointer)"}},"id":9354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"484:29:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory","typeString":"struct PriceOracleMock.Price memory"}},"src":"463:50:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage","typeString":"struct PriceOracleMock.Price storage ref"}},"id":9356,"nodeType":"ExpressionStatement","src":"463:50:34"}]},"documentation":null,"id":9358,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":9346,"modifierName":{"argumentTypes":null,"id":9345,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"443:9:34","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"443:9:34"}],"name":"setTokenPrice","nodeType":"FunctionDefinition","parameters":{"id":9344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9339,"name":"token","nodeType":"VariableDeclaration","scope":9358,"src":"381:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9338,"name":"address","nodeType":"ElementaryTypeName","src":"381:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9341,"name":"numerator","nodeType":"VariableDeclaration","scope":9358,"src":"396:17:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9340,"name":"uint256","nodeType":"ElementaryTypeName","src":"396:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9343,"name":"denominator","nodeType":"VariableDeclaration","scope":9358,"src":"415:19:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9342,"name":"uint256","nodeType":"ElementaryTypeName","src":"415:7:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"380:55:34"},"returnParameters":{"id":9347,"nodeType":"ParameterList","parameters":[],"src":"453:0:34"},"scope":9381,"src":"358:162:34","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9379,"nodeType":"Block","src":"596:109:34","statements":[{"assignments":[9368],"declarations":[{"constant":false,"id":9368,"name":"price","nodeType":"VariableDeclaration","scope":9379,"src":"606:18:34","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory_ptr","typeString":"struct PriceOracleMock.Price"},"typeName":{"contractScope":null,"id":9367,"name":"Price","nodeType":"UserDefinedTypeName","referencedDeclaration":9333,"src":"606:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage_ptr","typeString":"struct PriceOracleMock.Price"}},"value":null,"visibility":"internal"}],"id":9372,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":9369,"name":"tokenPrices","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9337,"src":"627:11:34","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Price_$9333_storage_$","typeString":"mapping(address => struct PriceOracleMock.Price storage ref)"}},"id":9371,"indexExpression":{"argumentTypes":null,"id":9370,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9360,"src":"639:5:34","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"627:18:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_storage","typeString":"struct PriceOracleMock.Price storage ref"}},"nodeType":"VariableDeclarationStatement","src":"606:39:34"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9373,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9368,"src":"663:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory_ptr","typeString":"struct PriceOracleMock.Price memory"}},"id":9374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numerator","nodeType":"MemberAccess","referencedDeclaration":9330,"src":"663:15:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9375,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9368,"src":"680:5:34","typeDescriptions":{"typeIdentifier":"t_struct$_Price_$9333_memory_ptr","typeString":"struct PriceOracleMock.Price memory"}},"id":9376,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"denominator","nodeType":"MemberAccess","referencedDeclaration":9332,"src":"680:17:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":9377,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"662:36:34","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"functionReturnParameters":9366,"id":9378,"nodeType":"Return","src":"655:43:34"}]},"documentation":null,"id":9380,"implemented":true,"kind":"function","modifiers":[],"name":"getPrice","nodeType":"FunctionDefinition","parameters":{"id":9361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9360,"name":"token","nodeType":"VariableDeclaration","scope":9380,"src":"548:13:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9359,"name":"address","nodeType":"ElementaryTypeName","src":"548:7:34","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"547:15:34"},"returnParameters":{"id":9366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9363,"name":"","nodeType":"VariableDeclaration","scope":9380,"src":"584:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9362,"name":"uint","nodeType":"ElementaryTypeName","src":"584:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9365,"name":"","nodeType":"VariableDeclaration","scope":9380,"src":"590:4:34","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9364,"name":"uint","nodeType":"ElementaryTypeName","src":"590:4:34","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"583:12:34"},"scope":9381,"src":"530:175:34","stateMutability":"view","superFunction":7859,"visibility":"public"}],"scope":9382,"src":"137:570:34"}],"src":"0:708:34"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.156Z","devdoc":{"methods":{"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ProposalExecuteInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ProposalExecuteInterface.json new file mode 100644 index 00000000..e7e7bf24 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ProposalExecuteInterface.json @@ -0,0 +1 @@ +{"contractName":"ProposalExecuteInterface","abi":[{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_decision","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_decision\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":\"ProposalExecuteInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.11;\n\ninterface ProposalExecuteInterface {\n function executeProposal(bytes32 _proposalId, int _decision) external returns(bool);\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","exportedSymbols":{"ProposalExecuteInterface":[19828]},"id":19829,"nodeType":"SourceUnit","nodes":[{"id":19818,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:60"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":19828,"linearizedBaseContracts":[19828],"name":"ProposalExecuteInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":19827,"implemented":false,"kind":"function","modifiers":[],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":19823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19820,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19827,"src":"92:19:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19822,"name":"_decision","nodeType":"VariableDeclaration","scope":19827,"src":"113:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19821,"name":"int","nodeType":"ElementaryTypeName","src":"113:3:60","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"91:36:60"},"returnParameters":{"id":19826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19825,"name":"","nodeType":"VariableDeclaration","scope":19827,"src":"145:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19824,"name":"bool","nodeType":"ElementaryTypeName","src":"145:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"144:6:60"},"scope":19828,"src":"67:84:60","stateMutability":"nonpayable","superFunction":null,"visibility":"external"}],"scope":19829,"src":"26:127:60"}],"src":"0:154:60"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","exportedSymbols":{"ProposalExecuteInterface":[19828]},"id":19829,"nodeType":"SourceUnit","nodes":[{"id":19818,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:60"},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":19828,"linearizedBaseContracts":[19828],"name":"ProposalExecuteInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":19827,"implemented":false,"kind":"function","modifiers":[],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":19823,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19820,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19827,"src":"92:19:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19819,"name":"bytes32","nodeType":"ElementaryTypeName","src":"92:7:60","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":19822,"name":"_decision","nodeType":"VariableDeclaration","scope":19827,"src":"113:13:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":19821,"name":"int","nodeType":"ElementaryTypeName","src":"113:3:60","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"91:36:60"},"returnParameters":{"id":19826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19825,"name":"","nodeType":"VariableDeclaration","scope":19827,"src":"145:4:60","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19824,"name":"bool","nodeType":"ElementaryTypeName","src":"145:4:60","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"144:6:60"},"scope":19828,"src":"67:84:60","stateMutability":"nonpayable","superFunction":null,"visibility":"external"}],"scope":19829,"src":"26:127:60"}],"src":"0:154:60"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.265Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/QuorumVote.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/QuorumVote.json new file mode 100644 index 00000000..7ca0f6a1 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/QuorumVote.json @@ -0,0 +1 @@ +{"contractName":"QuorumVote","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"_isProxyVote","type":"bool"}],"name":"AVVoteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"}],"name":"CancelProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"}],"name":"CancelVoting","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_decision","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_totalReputation","type":"uint256"}],"name":"ExecuteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":false,"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"indexed":false,"internalType":"address","name":"_proposer","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_paramsHash","type":"bytes32"}],"name":"NewProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_organization","type":"address"},{"indexed":true,"internalType":"address","name":"_voter","type":"address"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_reputation","type":"uint256"}],"name":"VoteProposal","type":"event"},{"constant":true,"inputs":[],"name":"MAX_NUM_OF_CHOICES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"cancelVote","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getAllowedRangeOfChoices","outputs":[{"internalType":"uint256","name":"min","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getNumberOfChoices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_precReq","type":"uint256"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[],"name":"isAbstainAllow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"isVotable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizations","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"uint256","name":"precReq","type":"uint256"},{"internalType":"address","name":"voteOnBehalf","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"bytes32","name":"organizationId","type":"bytes32"},{"internalType":"bool","name":"open","type":"bool"},{"internalType":"address","name":"callbacks","type":"address"},{"internalType":"uint256","name":"numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"paramsHash","type":"bytes32"},{"internalType":"uint256","name":"totalVotes","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"proposalsCnt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_numOfChoices","type":"uint256"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"_organization","type":"address"}],"name":"propose","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_precReq","type":"uint256"},{"internalType":"address","name":"_voteOnBehalf","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"name":"vote","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_voter","type":"address"}],"name":"voteInfo","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"uint256","name":"_choice","type":"uint256"}],"name":"voteStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isProxyVote\",\"type\":\"bool\"}],\"name\":\"AVVoteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"CancelVoting\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_decision\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_totalReputation\",\"type\":\"uint256\"}],\"name\":\"ExecuteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_proposer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"}],\"name\":\"NewProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_reputation\",\"type\":\"uint256\"}],\"name\":\"VoteProposal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_NUM_OF_CHOICES\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"cancelVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAllowedRangeOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getNumberOfChoices\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_precReq\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isAbstainAllow\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"isVotable\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizations\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"precReq\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"voteOnBehalf\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"organizationId\",\"type\":\"bytes32\"},{\"internalType\":\"bool\",\"name\":\"open\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"callbacks\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"totalVotes\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalsCnt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_numOfChoices\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_organization\",\"type\":\"address\"}],\"name\":\"propose\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_precReq\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voteOnBehalf\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"vote\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"voteInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_choice\",\"type\":\"uint256\"}],\"name\":\"voteStatus\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"cancelVote(bytes32)\":{\"details\":\"Cancel the vote of the msg.sender: subtract the reputation amount from the votes and delete the voter from the proposal struct\",\"params\":{\"_proposalId\":\"id of the proposal\"}},\"execute(bytes32)\":{\"details\":\"check if the proposal has been decided, and if so, execute the proposal\",\"params\":{\"_proposalId\":\"the id of the proposal\"}},\"getAllowedRangeOfChoices()\":{\"details\":\"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.\",\"return\":\"min - minimum number of choices max - maximum number of choices\"},\"getNumberOfChoices(bytes32)\":{\"details\":\"getNumberOfChoices returns the number of choices possible in this proposal excluding the abstain vote (0)\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"uint256 that contains number of choices\"},\"getParametersHash(uint256,address)\":{\"details\":\"hashParameters returns a hash of the given parameters\"},\"isAbstainAllow()\":{\"details\":\"isAbstainAllow returns if the voting machine allow abstain (0)\",\"return\":\"bool true or false\"},\"isVotable(bytes32)\":{\"details\":\"isVotable check if the proposal is votable\",\"params\":{\"_proposalId\":\"the ID of the proposal\"},\"return\":\"bool true or false\"},\"propose(uint256,bytes32,address,address)\":{\"details\":\"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.\",\"params\":{\"_numOfChoices\":\"number of voting choices\",\"_organization\":\"address\",\"_paramsHash\":\"defined the parameters of the voting machine used for this proposal\"},\"return\":\"proposal's id.\"},\"setParameters(uint256,address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\"},\"vote(bytes32,uint256,uint256,address)\":{\"details\":\"voting function\",\"params\":{\"_amount\":\"the reputation amount to vote with . if _amount == 0 it will use all voter reputation.\",\"_proposalId\":\"id of the proposal\",\"_vote\":\"a value between 0 to and the proposal number of choices.\",\"_voter\":\"voter address\"},\"return\":\"bool true - the proposal has been executed false - otherwise.\"},\"voteInfo(bytes32,address)\":{\"details\":\"voteInfo returns the vote and the amount of reputation of the user committed to this proposal\",\"params\":{\"_proposalId\":\"the ID of the proposal\",\"_voter\":\"the address of the voter\"},\"return\":\"uint256 vote - the voters vote uint256 reputation - amount of reputation committed by _voter to _proposalId\"},\"voteStatus(bytes32,uint256)\":{\"details\":\"voteStatus returns the reputation voted for a proposal for a specific voting choice.\",\"params\":{\"_choice\":\"the index in the\",\"_proposalId\":\"the ID of the proposal\"},\"return\":\"voted reputation for the given choice\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/QuorumVote.sol\":\"QuorumVote\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol\":{\"keccak256\":\"0x78348cbb6bfe4b1a17ee416413090138e948d931edfaeb073ce9167d9548ddf8\",\"urls\":[\"bzz-raw://6d6b24445c0a9d749b27fd2828752b0c4df9ea0df4d22377f8e06d3a53022de5\",\"dweb:/ipfs/QmcKmuEG6wKpcMfVigDNeqANfbu7y8EgFT6QqSVpQA4Sqi\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/QuorumVote.sol\":{\"keccak256\":\"0x6c7ec7bf2c99874878936992d4900995a5e5bd204b6a03e9cb0575c67e01da23\",\"urls\":[\"bzz-raw://d99ff48496881091eee24151303cad55cafab3c1473f12f5dc829cf1670f7b5b\",\"dweb:/ipfs/QmVruSD7GGpS5nHb83bSgv8xRbUL169g4dmAmESZqqnVsh\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"98:1586:61:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:1586:61;;;;;;;","deployedSourceMap":"98:1586:61:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;98:1586:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1147:46:56;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1147:46:56;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1147:46:56;;;;;;;;;;;;;;;;5871:211;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5871:211:56;;;;;;-1:-1:-1;;;;;5871:211:56;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1457:27;;;:::i;:::-;;;;;;;;;;;;;;;;7434:392;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7434:392:56;;;;;;-1:-1:-1;;;;;7434:392:56;;:::i;7914:173::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7914:173:56;;;;;;-1:-1:-1;;;;;7914:173:56;;:::i;1239:43::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1239:43:56;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1239:43:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3814:608;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;3814:608:56;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3814:608:56;;:::i;:::-;;;;;;;;;;;;;;;;;;7199:131;;;:::i;6905:82::-;;;:::i;2119:1282::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;2119:1282:56;;;;;;;;-1:-1:-1;;;;;2119:1282:56;;;;;;;;;;;;:::i;1404:47::-;;;:::i;4625:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4625:131:56;;:::i;:::-;;5386:139;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5386:139:56;;:::i;6342:150::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6342:150:56;;;;;;;:::i;1351:46::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1351:46:56;;:::i;:::-;;;;-1:-1:-1;;;;;1351:46:56;;;;;;;;;;;;;;6654:120;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6654:120:56;;:::i;286:127:61:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;286:127:61;;:::i;1147:46:56:-;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1147:46:56;;:::o;5871:211::-;5948:4;5954;5970:18;;:::i;:::-;-1:-1:-1;;;5991:22:56;;;;:9;:22;;;;;;;;-1:-1:-1;;;;;5991:37:56;;;;:29;;:37;;;;;;5970:58;;;;;;;;;;;;;;;;;;;;;;5871:211;;;;;:::o;1457:27::-;;;;:::o;7434:392::-;7513:7;7552:3;7540:8;:15;;:31;;;;;7570:1;7559:8;:12;7540:31;7532:40;;;;;;7582:24;7609:42;7627:8;7637:13;7609:17;:42::i;:::-;7692:94;;;;;;;;;;;-1:-1:-1;;;;;7692:94:56;;;;;;;;;;-1:-1:-1;7661:28:56;;;;;;;;;;;:125;;;;;;;;;;;-1:-1:-1;;;;;;7661:125:56;;;;;;;;;;;;-1:-1:-1;7661:28:56;;7434:392;-1:-1:-1;7434:392:56:o;7914:173::-;8038:41;;;;;;;;;;;;;;;;-1:-1:-1;;8038:41:56;;;;;;;26:21:-1;;;22:32;;6:49;;8038:41:56;;;;;;8028:52;;;;;;7914:173::o;1239:43::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1239:43:56;;;;:::o;3814:608::-;3992:4;1661:22;;;:9;:22;;;;;;;:27;;3963:11;;1661:27;;1653:36;;;;;;4017:25;4045:22;;;:9;:22;;;;;4077:24;;:::i;:::-;-1:-1:-1;4115:19:56;;;;4104:10;:31;;;;;;;;;;;4077:58;;;;;;;;;;;;;;;-1:-1:-1;;;;;4077:58:56;;;;;;;;4104:10;4172:33;4168:183;;4243:6;:19;;;-1:-1:-1;;;;;4229:33:56;:10;-1:-1:-1;;;;;4229:33:56;;4221:42;;;;;;-1:-1:-1;4285:6:56;4168:183;;;-1:-1:-1;4330:10:56;4168:183;4367:48;4380:11;4393:5;4400;4407:7;4367:12;:48::i;:::-;4360:55;3814:608;-1:-1:-1;;;;;;;;;3814:608:56:o;7199:131::-;7257:11;1449:2;7199:131;;:::o;6905:82::-;6976:4;6905:82;:::o;2119:1282::-;2245:7;2329:23;;;;;;;;;;:31;2321:44;;;;;;2399:1;2383:13;:17;:56;;;;;1449:2;2404:13;:35;;2383:56;2375:65;;;;;;2537:12;;2514:36;;;2531:4;2514:36;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2514:36:56;;;;;;;2504:47;;;;;;2576:19;;2593:1;2576:19;:16;:19;:::i;:::-;2561:12;:34;2631:24;;:::i;:::-;2665:21;;;;:37;;;2712:19;;;:33;;;2776:10;2755:18;;;;:31;;;2832:43;;;;;-1:-1:-1;2832:43:56;;;;;;;;;;;-1:-1:-1;;2832:43:56;;;;;;;26:21:-1;;;22:32;;6:49;;2832:43:56;;;;;;2822:54;;;;;;;;;2796:80;;2902:4;2886:13;;;:20;;;-1:-1:-1;2916:21:56;;;;;;;;;:32;;;;;;;;;;;;;;-1:-1:-1;;2916:32:56;;;;;;;;;;-1:-1:-1;;;;;;2916:32:56;;-1:-1:-1;;;;;2916:32:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2962:38;;;;;;;;;;2958:292;;-1:-1:-1;;;;;3034:27:56;;3030:210;;3095:23;;3081:38;;;;:13;:38;;;;;:51;;-1:-1:-1;;;;;;3081:51:56;3122:10;3081:51;;;3030:210;;;3185:23;;3171:38;;;;:13;:38;;;;;:54;;-1:-1:-1;;;;;;3171:54:56;-1:-1:-1;;;;;3171:54:56;;;;;3030:210;3302:23;;3288:38;;;;:13;:38;;;;;;;;;;3264:103;;;;;3343:10;3264:103;;;;;;;;;;;;;;;-1:-1:-1;;;;;3288:38:56;;;;3276:10;;3264:103;;;;;;;;;;-1:-1:-1;3384:10:56;2119:1282;-1:-1:-1;;;;;2119:1282:56:o;1404:47::-;1449:2;1404:47;:::o;4625:131::-;1661:22;;;;:9;:22;;;;;;;;:27;;4683:11;;1661:27;;1653:36;;;;;;4706:43;4725:11;4738:10;4706:18;:43::i;:::-;4625:131;;:::o;5386:139::-;5457:7;5483:22;;;:9;:22;;;;;:35;;;;5386:139::o;6342:150::-;6422:7;6448:22;;;:9;:22;;;;;;;;:37;;;:28;;;;:37;;;;;;6342:150::o;1351:46::-;;;;;;;;;;;;-1:-1:-1;;;;;1351:46:56;;:::o;6654:120::-;6716:4;6740:22;;;:9;:22;;;;;;;;:27;;;;;6654:120::o;286:127:61:-;362:4;1661:22:56;;;:9;:22;;;;;;;:27;;341:11:61;;1661:27:56;;1653:36;;;;;;385:21:61;394:11;385:8;:21::i;:::-;378:28;;1699:1:56;286:127:61;;;;:::o;10555:1338:56:-;10660:4;10704:22;;;:9;:22;;;;;10782:21;;;;10773:30;;;10765:39;;;;;;10913:18;;;;10881:85;;;-1:-1:-1;;;10881:85:56;;-1:-1:-1;;;;;10881:85:56;;;;;;;;;;;;;;;-1:-1:-1;;10913:18:56;;;;;;;10881:64;;:85;;;;;;;;;;;;;;;10913:18;10881:85;;;5:2:-1;;;;30:1;27;20:12;5:2;10881:85:56;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10881:85:56;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10881:85:56;;-1:-1:-1;10984:14:56;10976:54;;;;;-1:-1:-1;;;10976:54:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;11062:4;11048:10;:18;;11040:27;;;;;;11091:4;11109:8;11105:55;;-1:-1:-1;11139:10:56;11105:55;-1:-1:-1;;;;;11240:23:56;;;;;;:15;;;:23;;;;;:34;;;:39;11236:109;;11295:39;11314:11;11327:6;11295:18;:39::i;:::-;11416:21;;;;:14;;;:21;;;;;;11408:30;;:3;;:30;:7;:30;:::i;:::-;11384:21;;;;:14;;;:21;;;;;:54;11478:19;;;;11470:28;;:3;;:28;:7;:28;:::i;:::-;11448:19;;;:50;11534:71;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11508:23:56;;;-1:-1:-1;11508:23:56;;;:15;;;:23;;;;;:97;;;;;;;;;;;;;;11678:23;;11664:38;;:13;:38;;;;;;;11638:85;;;;;;;;;;;;;11508:23;;11664:38;;;11651:11;;11638:85;;;;;;;;;11738:51;;;-1:-1:-1;;;;;11767:20:56;;11777:10;11767:20;;11738:51;;;;11753:11;;11738:51;;;;;;;;;;11865:21;11874:11;11865:8;:21::i;:::-;11858:28;10555:1338;-1:-1:-1;;;;;;;;10555:1338:56:o;834:176:66:-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;1002:1;834:176;-1:-1:-1;;;834:176:66:o;8093:487:56:-;8177:25;8205:22;;;:9;:22;;;;;8237:18;;:::i;:::-;-1:-1:-1;;;;;;8258:23:56;;;;;;:15;;;:23;;;;;;;;8237:44;;;;;;;;;;;;;;;;;;;;;;;8321:26;;;:14;;;:26;;;;;;8237:44;;8320:50;;8321:26;8320:50;:32;:50;:::i;:::-;8306:10;;8291:26;;;;:14;;;:26;;;;;;;;:79;;;;8428:16;;;8403:19;;;;8402:43;;;:25;:43;:::i;:::-;8380:19;;;:65;-1:-1:-1;;;;;8462:23:56;;;;;;;:15;;;:23;;;;;;;;8455:30;;;;;;;;8540:23;;8526:38;;:13;:38;;;;;;;8500:73;;8462:23;;8526:38;;8513:11;;8500:73;;;8093:487;;;;:::o;565:1117:61:-;642:4;1661:22:56;;;:9;:22;;;;;;;:27;;621:11:61;;1661:27:56;;1653:36;;;;;;658:25:61;686:22;;;:9;:22;;;;;;;;784:18;;;;752:89;;-1:-1:-1;;;752:89:61;;;;;;;;;;686:22;;658:25;784:18;;;;-1:-1:-1;;;;;784:18:61;;752:76;;:89;;;;;;;;;;;784:18;752:89;;;5:2:-1;;;;30:1;27;20:12;5:2;752:89:61;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;752:89:61;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;752:89:61;880:19;;;;851:15;869:31;;;752:89;869:31;;;;;;:39;752:89;;-1:-1:-1;869:39:61;1005:3;752:89;989:19;988:29;966:8;:19;;;:51;962:692;;;1033:11;;;1086:222;1115:8;:21;;;1108:3;:28;1086:222;;1167:19;;;;:14;;;:19;;;;;;:25;-1:-1:-1;1163:131:61;;;1222:19;;;;:14;;;:19;;;;;;;-1:-1:-1;1237:3:61;-1:-1:-1;1237:3:61;1163:131;1138:5;;1086:222;;;;1321:27;;:::i;:::-;-1:-1:-1;1321:38:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1321:38:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1373:27;1388:11;1373:14;:27::i;:::-;1462:26;;1448:41;;;;:13;:41;;;;;;;;;;1419:96;;;;;;;;;;;;;-1:-1:-1;;;;;1448:41:61;;;;1435:11;;1419:96;;;;;;;;;;;1554:11;:21;;;-1:-1:-1;;;;;1529:63:61;;1593:11;1610:6;1529:89;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1529:89:61;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1529:89:61;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1639:4:61;;-1:-1:-1;1632:11:61;;-1:-1:-1;;;;;;;1632:11:61;962:692;-1:-1:-1;1670:5:61;;565:1117;-1:-1:-1;;;;;565:1117:61:o;1274:134:66:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;8586:279:56:-;8650:25;8678:22;;;:9;:22;;;;;;8710:110;8739:8;:21;;;8732:3;:28;8710:110;;8790:19;;;;:14;;;:19;;;;;8783:26;8762:5;;8710:110;;;-1:-1:-1;;8836:22:56;;;;:9;:22;;;;;;;8829:29;;;;;;;;-1:-1:-1;;;;;;8829:29:56;;;;;;;;;;;;;;;;;;8586:279::o;1732:187:66:-;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o;98:1586:61:-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;98:1586:61;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;98:1586:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity ^0.5.11;\n\nimport \"./AbsoluteVote.sol\";\nimport \"./ProposalExecuteInterface.sol\";\n\n\ncontract QuorumVote is AbsoluteVote {\n /**\n * @dev check if the proposal has been decided, and if so, execute the proposal\n * @param _proposalId the id of the proposal\n */\n function execute(bytes32 _proposalId) external votable(_proposalId) returns(bool) {\n return _execute(_proposalId);\n }\n\n /**\n * @dev check if the proposal has been decided, and if so, execute the proposal\n * @param _proposalId the id of the proposal\n */\n function _execute(bytes32 _proposalId) internal votable(_proposalId) returns(bool) {\n Proposal storage proposal = proposals[_proposalId];\n uint256 totalReputation =\n VotingMachineCallbacksInterface(proposal.callbacks).getTotalReputationSupply(_proposalId);\n uint256 precReq = parameters[proposal.paramsHash].precReq;\n\n // this is the actual voting rule:\n if (proposal.totalVotes > (totalReputation/100)*precReq) {\n uint256 max;\n uint256 maxInd;\n for (uint256 cnt = 0; cnt <= proposal.numOfChoices; cnt++) {\n if (proposal.votes[cnt] > max) {\n max = proposal.votes[cnt];\n maxInd = cnt;\n }\n }\n Proposal memory tmpProposal = proposal;\n deleteProposal(_proposalId);\n emit ExecuteProposal(_proposalId, organizations[tmpProposal.organizationId], maxInd, totalReputation);\n ProposalExecuteInterface(tmpProposal.callbacks).executeProposal(_proposalId, int(maxInd));\n return true;\n }\n return false;\n }\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","exportedSymbols":{"QuorumVote":[19967]},"id":19968,"nodeType":"SourceUnit","nodes":[{"id":19830,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:61"},{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","file":"./AbsoluteVote.sol","id":19831,"nodeType":"ImportDirective","scope":19968,"sourceUnit":16619,"src":"26:28:61","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"./ProposalExecuteInterface.sol","id":19832,"nodeType":"ImportDirective","scope":19968,"sourceUnit":19829,"src":"55:40:61","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":19833,"name":"AbsoluteVote","nodeType":"UserDefinedTypeName","referencedDeclaration":16618,"src":"121:12:61","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"id":19834,"nodeType":"InheritanceSpecifier","src":"121:12:61"}],"contractDependencies":[16618,19816],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":19967,"linearizedBaseContracts":[19967,16618,19816],"name":"QuorumVote","nodeType":"ContractDefinition","nodes":[{"body":{"id":19848,"nodeType":"Block","src":"368:45:61","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19845,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19836,"src":"394:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19844,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[19966],"referencedDeclaration":19966,"src":"385:8:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"385:21:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19843,"id":19847,"nodeType":"Return","src":"378:28:61"}]},"documentation":"@dev check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal","id":19849,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":19839,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19836,"src":"341:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19840,"modifierName":{"argumentTypes":null,"id":19838,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"333:7:61","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"333:20:61"}],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":19837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19836,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19849,"src":"303:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"303:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"302:21:61"},"returnParameters":{"id":19843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19842,"name":"","nodeType":"VariableDeclaration","scope":19849,"src":"362:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19841,"name":"bool","nodeType":"ElementaryTypeName","src":"362:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"361:6:61"},"scope":19967,"src":"286:127:61","stateMutability":"nonpayable","superFunction":16140,"visibility":"external"},{"body":{"id":19965,"nodeType":"Block","src":"648:1034:61","statements":[{"assignments":[19860],"declarations":[{"constant":false,"id":19860,"name":"proposal","nodeType":"VariableDeclaration","scope":19965,"src":"658:25:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":19859,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"658:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":19864,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19861,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"686:9:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":19863,"indexExpression":{"argumentTypes":null,"id":19862,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"696:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"686:22:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"658:50:61"},{"assignments":[19866],"declarations":[{"constant":false,"id":19866,"name":"totalReputation","nodeType":"VariableDeclaration","scope":19965,"src":"718:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19865,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19874,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19872,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"829:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19868,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"784:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"784:18:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19867,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"752:31:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":19870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"752:51:61","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":19871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalReputationSupply","nodeType":"MemberAccess","referencedDeclaration":20012,"src":"752:76:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":19873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"752:89:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"718:123:61"},{"assignments":[19876],"declarations":[{"constant":false,"id":19876,"name":"precReq","nodeType":"VariableDeclaration","scope":19965,"src":"851:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19875,"name":"uint256","nodeType":"ElementaryTypeName","src":"851:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19882,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19877,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"869:10:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":19880,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19878,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"880:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"880:19:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"869:31:61","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":19881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"precReq","nodeType":"MemberAccess","referencedDeclaration":15835,"src":"869:39:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"851:57:61"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19883,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"966:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"966:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19885,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"989:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":19886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1005:3:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"989:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19888,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"988:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":19889,"name":"precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19876,"src":"1010:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"988:29:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"966:51:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19962,"nodeType":"IfStatement","src":"962:692:61","trueBody":{"id":19961,"nodeType":"Block","src":"1019:635:61","statements":[{"assignments":[19893],"declarations":[{"constant":false,"id":19893,"name":"max","nodeType":"VariableDeclaration","scope":19961,"src":"1033:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19892,"name":"uint256","nodeType":"ElementaryTypeName","src":"1033:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19894,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1033:11:61"},{"assignments":[19896],"declarations":[{"constant":false,"id":19896,"name":"maxInd","nodeType":"VariableDeclaration","scope":19961,"src":"1058:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1058:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19897,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1058:14:61"},{"body":{"id":19928,"nodeType":"Block","src":"1145:163:61","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19909,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1167:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"1167:14:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19912,"indexExpression":{"argumentTypes":null,"id":19911,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1182:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1167:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":19913,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19893,"src":"1189:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1167:25:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19927,"nodeType":"IfStatement","src":"1163:131:61","trueBody":{"id":19926,"nodeType":"Block","src":"1194:100:61","statements":[{"expression":{"argumentTypes":null,"id":19920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19915,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19893,"src":"1216:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19916,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1222:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"1222:14:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19919,"indexExpression":{"argumentTypes":null,"id":19918,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1237:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1222:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1216:25:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19921,"nodeType":"ExpressionStatement","src":"1216:25:61"},{"expression":{"argumentTypes":null,"id":19924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19922,"name":"maxInd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19896,"src":"1263:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19923,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1272:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1263:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19925,"nodeType":"ExpressionStatement","src":"1263:12:61"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19902,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1108:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19903,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1115:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"1115:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1108:28:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19929,"initializationExpression":{"assignments":[19899],"declarations":[{"constant":false,"id":19899,"name":"cnt","nodeType":"VariableDeclaration","scope":19929,"src":"1091:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19898,"name":"uint256","nodeType":"ElementaryTypeName","src":"1091:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19901,"initialValue":{"argumentTypes":null,"hexValue":"30","id":19900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1105:1:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1091:15:61"},"loopExpression":{"expression":{"argumentTypes":null,"id":19907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1138:5:61","subExpression":{"argumentTypes":null,"id":19906,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1138:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19908,"nodeType":"ExpressionStatement","src":"1138:5:61"},"nodeType":"ForStatement","src":"1086:222:61"},{"assignments":[19931],"declarations":[{"constant":false,"id":19931,"name":"tmpProposal","nodeType":"VariableDeclaration","scope":19961,"src":"1321:27:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":19930,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"1321:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":19933,"initialValue":{"argumentTypes":null,"id":19932,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1351:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1321:38:61"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19935,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"1388:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19934,"name":"deleteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"1373:14:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":19936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1373:27:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19937,"nodeType":"ExpressionStatement","src":"1373:27:61"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19939,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"1435:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19940,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"1448:13:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19943,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19941,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19931,"src":"1462:11:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":19942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"1462:26:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1448:41:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19944,"name":"maxInd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19896,"src":"1491:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19945,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"1499:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19938,"name":"ExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"1419:15:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":19946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:96:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19947,"nodeType":"EmitStatement","src":"1414:101:61"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19953,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"1593:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19955,"name":"maxInd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19896,"src":"1610:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:3:61","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":19956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1606:11:61","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19949,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19931,"src":"1554:11:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":19950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"1554:21:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19948,"name":"ProposalExecuteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"1529:24:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ProposalExecuteInterface_$19828_$","typeString":"type(contract ProposalExecuteInterface)"}},"id":19951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1529:47:61","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":19952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeProposal","nodeType":"MemberAccess","referencedDeclaration":19827,"src":"1529:63:61","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_int256_$returns$_t_bool_$","typeString":"function (bytes32,int256) external returns (bool)"}},"id":19957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1529:89:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19958,"nodeType":"ExpressionStatement","src":"1529:89:61"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":19959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19858,"id":19960,"nodeType":"Return","src":"1632:11:61"}]}},{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1670:5:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19858,"id":19964,"nodeType":"Return","src":"1663:12:61"}]},"documentation":"@dev check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal","id":19966,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":19854,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"621:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19855,"modifierName":{"argumentTypes":null,"id":19853,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"613:7:61","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"613:20:61"}],"name":"_execute","nodeType":"FunctionDefinition","parameters":{"id":19852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19851,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19966,"src":"583:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"582:21:61"},"returnParameters":{"id":19858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19857,"name":"","nodeType":"VariableDeclaration","scope":19966,"src":"642:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19856,"name":"bool","nodeType":"ElementaryTypeName","src":"642:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"641:6:61"},"scope":19967,"src":"565:1117:61","stateMutability":"nonpayable","superFunction":16480,"visibility":"internal"}],"scope":19968,"src":"98:1586:61"}],"src":"0:1685:61"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/QuorumVote.sol","exportedSymbols":{"QuorumVote":[19967]},"id":19968,"nodeType":"SourceUnit","nodes":[{"id":19830,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:61"},{"absolutePath":"@daostack/infra/contracts/votingMachines/AbsoluteVote.sol","file":"./AbsoluteVote.sol","id":19831,"nodeType":"ImportDirective","scope":19968,"sourceUnit":16619,"src":"26:28:61","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"./ProposalExecuteInterface.sol","id":19832,"nodeType":"ImportDirective","scope":19968,"sourceUnit":19829,"src":"55:40:61","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":19833,"name":"AbsoluteVote","nodeType":"UserDefinedTypeName","referencedDeclaration":16618,"src":"121:12:61","typeDescriptions":{"typeIdentifier":"t_contract$_AbsoluteVote_$16618","typeString":"contract AbsoluteVote"}},"id":19834,"nodeType":"InheritanceSpecifier","src":"121:12:61"}],"contractDependencies":[16618,19816],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":19967,"linearizedBaseContracts":[19967,16618,19816],"name":"QuorumVote","nodeType":"ContractDefinition","nodes":[{"body":{"id":19848,"nodeType":"Block","src":"368:45:61","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19845,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19836,"src":"394:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19844,"name":"_execute","nodeType":"Identifier","overloadedDeclarations":[19966],"referencedDeclaration":19966,"src":"385:8:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) returns (bool)"}},"id":19846,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"385:21:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":19843,"id":19847,"nodeType":"Return","src":"378:28:61"}]},"documentation":"@dev check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal","id":19849,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":19839,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19836,"src":"341:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19840,"modifierName":{"argumentTypes":null,"id":19838,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"333:7:61","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"333:20:61"}],"name":"execute","nodeType":"FunctionDefinition","parameters":{"id":19837,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19836,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19849,"src":"303:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19835,"name":"bytes32","nodeType":"ElementaryTypeName","src":"303:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"302:21:61"},"returnParameters":{"id":19843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19842,"name":"","nodeType":"VariableDeclaration","scope":19849,"src":"362:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19841,"name":"bool","nodeType":"ElementaryTypeName","src":"362:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"361:6:61"},"scope":19967,"src":"286:127:61","stateMutability":"nonpayable","superFunction":16140,"visibility":"external"},{"body":{"id":19965,"nodeType":"Block","src":"648:1034:61","statements":[{"assignments":[19860],"declarations":[{"constant":false,"id":19860,"name":"proposal","nodeType":"VariableDeclaration","scope":19965,"src":"658:25:61","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":19859,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"658:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":19864,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19861,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15878,"src":"686:9:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$15864_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Proposal storage ref)"}},"id":19863,"indexExpression":{"argumentTypes":null,"id":19862,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"696:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"686:22:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage","typeString":"struct AbsoluteVote.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"658:50:61"},{"assignments":[19866],"declarations":[{"constant":false,"id":19866,"name":"totalReputation","nodeType":"VariableDeclaration","scope":19965,"src":"718:23:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19865,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19874,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19872,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"829:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19868,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"784:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19869,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"784:18:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19867,"name":"VotingMachineCallbacksInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20031,"src":"752:31:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_VotingMachineCallbacksInterface_$20031_$","typeString":"type(contract VotingMachineCallbacksInterface)"}},"id":19870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"752:51:61","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":19871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getTotalReputationSupply","nodeType":"MemberAccess","referencedDeclaration":20012,"src":"752:76:61","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":19873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"752:89:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"718:123:61"},{"assignments":[19876],"declarations":[{"constant":false,"id":19876,"name":"precReq","nodeType":"VariableDeclaration","scope":19965,"src":"851:15:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19875,"name":"uint256","nodeType":"ElementaryTypeName","src":"851:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19882,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19877,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15874,"src":"869:10:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$15838_storage_$","typeString":"mapping(bytes32 => struct AbsoluteVote.Parameters storage ref)"}},"id":19880,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19878,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"880:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19879,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"paramsHash","nodeType":"MemberAccess","referencedDeclaration":15853,"src":"880:19:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"869:31:61","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$15838_storage","typeString":"struct AbsoluteVote.Parameters storage ref"}},"id":19881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"precReq","nodeType":"MemberAccess","referencedDeclaration":15835,"src":"869:39:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"851:57:61"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19883,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"966:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19884,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"totalVotes","nodeType":"MemberAccess","referencedDeclaration":15855,"src":"966:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19885,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"989:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"313030","id":19886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1005:3:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"src":"989:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":19888,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"988:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":19889,"name":"precReq","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19876,"src":"1010:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"988:29:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"966:51:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19962,"nodeType":"IfStatement","src":"962:692:61","trueBody":{"id":19961,"nodeType":"Block","src":"1019:635:61","statements":[{"assignments":[19893],"declarations":[{"constant":false,"id":19893,"name":"max","nodeType":"VariableDeclaration","scope":19961,"src":"1033:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19892,"name":"uint256","nodeType":"ElementaryTypeName","src":"1033:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19894,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1033:11:61"},{"assignments":[19896],"declarations":[{"constant":false,"id":19896,"name":"maxInd","nodeType":"VariableDeclaration","scope":19961,"src":"1058:14:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19895,"name":"uint256","nodeType":"ElementaryTypeName","src":"1058:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19897,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"1058:14:61"},{"body":{"id":19928,"nodeType":"Block","src":"1145:163:61","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19909,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1167:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19910,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"1167:14:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19912,"indexExpression":{"argumentTypes":null,"id":19911,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1182:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1167:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":19913,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19893,"src":"1189:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1167:25:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":19927,"nodeType":"IfStatement","src":"1163:131:61","trueBody":{"id":19926,"nodeType":"Block","src":"1194:100:61","statements":[{"expression":{"argumentTypes":null,"id":19920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19915,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19893,"src":"1216:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19916,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1222:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"votes","nodeType":"MemberAccess","referencedDeclaration":15859,"src":"1222:14:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_uint256_$","typeString":"mapping(uint256 => uint256)"}},"id":19919,"indexExpression":{"argumentTypes":null,"id":19918,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1237:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1222:19:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1216:25:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19921,"nodeType":"ExpressionStatement","src":"1216:25:61"},{"expression":{"argumentTypes":null,"id":19924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":19922,"name":"maxInd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19896,"src":"1263:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":19923,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1272:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1263:12:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19925,"nodeType":"ExpressionStatement","src":"1263:12:61"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":19905,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":19902,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1108:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19903,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1115:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"id":19904,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"numOfChoices","nodeType":"MemberAccess","referencedDeclaration":15851,"src":"1115:21:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1108:28:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19929,"initializationExpression":{"assignments":[19899],"declarations":[{"constant":false,"id":19899,"name":"cnt","nodeType":"VariableDeclaration","scope":19929,"src":"1091:11:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19898,"name":"uint256","nodeType":"ElementaryTypeName","src":"1091:7:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":19901,"initialValue":{"argumentTypes":null,"hexValue":"30","id":19900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1105:1:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1091:15:61"},"loopExpression":{"expression":{"argumentTypes":null,"id":19907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1138:5:61","subExpression":{"argumentTypes":null,"id":19906,"name":"cnt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19899,"src":"1138:3:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":19908,"nodeType":"ExpressionStatement","src":"1138:5:61"},"nodeType":"ForStatement","src":"1086:222:61"},{"assignments":[19931],"declarations":[{"constant":false,"id":19931,"name":"tmpProposal","nodeType":"VariableDeclaration","scope":19961,"src":"1321:27:61","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal"},"typeName":{"contractScope":null,"id":19930,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":15864,"src":"1321:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal"}},"value":null,"visibility":"internal"}],"id":19933,"initialValue":{"argumentTypes":null,"id":19932,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19860,"src":"1351:8:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_storage_ptr","typeString":"struct AbsoluteVote.Proposal storage pointer"}},"nodeType":"VariableDeclarationStatement","src":"1321:38:61"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19935,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"1388:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":19934,"name":"deleteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":16388,"src":"1373:14:61","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":19936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1373:27:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19937,"nodeType":"ExpressionStatement","src":"1373:27:61"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19939,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"1435:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":19940,"name":"organizations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15882,"src":"1448:13:61","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":19943,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19941,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19931,"src":"1462:11:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":19942,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"organizationId","nodeType":"MemberAccess","referencedDeclaration":15845,"src":"1462:26:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1448:41:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":19944,"name":"maxInd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19896,"src":"1491:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":19945,"name":"totalReputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19866,"src":"1499:15:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19938,"name":"ExecuteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19723,"src":"1419:15:61","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (bytes32,address,uint256,uint256)"}},"id":19946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1419:96:61","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":19947,"nodeType":"EmitStatement","src":"1414:101:61"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19953,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"1593:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":19955,"name":"maxInd","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19896,"src":"1610:6:61","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":19954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:3:61","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":"int"},"id":19956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1606:11:61","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":19949,"name":"tmpProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19931,"src":"1554:11:61","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$15864_memory_ptr","typeString":"struct AbsoluteVote.Proposal memory"}},"id":19950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"callbacks","nodeType":"MemberAccess","referencedDeclaration":15849,"src":"1554:21:61","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":19948,"name":"ProposalExecuteInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19828,"src":"1529:24:61","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ProposalExecuteInterface_$19828_$","typeString":"type(contract ProposalExecuteInterface)"}},"id":19951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1529:47:61","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":19952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"executeProposal","nodeType":"MemberAccess","referencedDeclaration":19827,"src":"1529:63:61","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_int256_$returns$_t_bool_$","typeString":"function (bytes32,int256) external returns (bool)"}},"id":19957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1529:89:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":19958,"nodeType":"ExpressionStatement","src":"1529:89:61"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":19959,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1639:4:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":19858,"id":19960,"nodeType":"Return","src":"1632:11:61"}]}},{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":19963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1670:5:61","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":19858,"id":19964,"nodeType":"Return","src":"1663:12:61"}]},"documentation":"@dev check if the proposal has been decided, and if so, execute the proposal\n@param _proposalId the id of the proposal","id":19966,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":19854,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19851,"src":"621:11:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":19855,"modifierName":{"argumentTypes":null,"id":19853,"name":"votable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15900,"src":"613:7:61","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"613:20:61"}],"name":"_execute","nodeType":"FunctionDefinition","parameters":{"id":19852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19851,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19966,"src":"583:19:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"583:7:61","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"582:21:61"},"returnParameters":{"id":19858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19857,"name":"","nodeType":"VariableDeclaration","scope":19966,"src":"642:4:61","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19856,"name":"bool","nodeType":"ElementaryTypeName","src":"642:4:61","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"641:6:61"},"scope":19967,"src":"565:1117:61","stateMutability":"nonpayable","superFunction":16480,"visibility":"internal"}],"scope":19968,"src":"98:1586:61"}],"src":"0:1685:61"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.265Z","devdoc":{"methods":{"cancelVote(bytes32)":{"details":"Cancel the vote of the msg.sender: subtract the reputation amount from the votes and delete the voter from the proposal struct","params":{"_proposalId":"id of the proposal"}},"execute(bytes32)":{"details":"check if the proposal has been decided, and if so, execute the proposal","params":{"_proposalId":"the id of the proposal"}},"getAllowedRangeOfChoices()":{"details":"getAllowedRangeOfChoices returns the allowed range of choices for a voting machine.","return":"min - minimum number of choices max - maximum number of choices"},"getNumberOfChoices(bytes32)":{"details":"getNumberOfChoices returns the number of choices possible in this proposal excluding the abstain vote (0)","params":{"_proposalId":"the ID of the proposal"},"return":"uint256 that contains number of choices"},"getParametersHash(uint256,address)":{"details":"hashParameters returns a hash of the given parameters"},"isAbstainAllow()":{"details":"isAbstainAllow returns if the voting machine allow abstain (0)","return":"bool true or false"},"isVotable(bytes32)":{"details":"isVotable check if the proposal is votable","params":{"_proposalId":"the ID of the proposal"},"return":"bool true or false"},"propose(uint256,bytes32,address,address)":{"details":"register a new proposal with the given parameters. Every proposal has a unique ID which is being generated by calculating keccak256 of a incremented counter.","params":{"_numOfChoices":"number of voting choices","_organization":"address","_paramsHash":"defined the parameters of the voting machine used for this proposal"},"return":"proposal's id."},"setParameters(uint256,address)":{"details":"hash the parameters, save them if necessary, and return the hash value"},"vote(bytes32,uint256,uint256,address)":{"details":"voting function","params":{"_amount":"the reputation amount to vote with . if _amount == 0 it will use all voter reputation.","_proposalId":"id of the proposal","_vote":"a value between 0 to and the proposal number of choices.","_voter":"voter address"},"return":"bool true - the proposal has been executed false - otherwise."},"voteInfo(bytes32,address)":{"details":"voteInfo returns the vote and the amount of reputation of the user committed to this proposal","params":{"_proposalId":"the ID of the proposal","_voter":"the address of the voter"},"return":"uint256 vote - the voters vote uint256 reputation - amount of reputation committed by _voter to _proposalId"},"voteStatus(bytes32,uint256)":{"details":"voteStatus returns the reputation voted for a proposal for a specific voting choice.","params":{"_choice":"the index in the","_proposalId":"the ID of the proposal"},"return":"voted reputation for the given choice"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RealMath.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RealMath.json new file mode 100644 index 00000000..7714ffd7 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RealMath.json @@ -0,0 +1 @@ +{"contractName":"RealMath","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"RealMath: fixed-point math library, based on fractional and integer parts. Using uint256 as real216x40, which isn't in Solidity yet. Internally uses the wider uint256 for some math. * Note that for addition, subtraction, and mod (%), you should just use the built-in Solidity operators. Functions for these operations are not provided. \"}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/libs/RealMath.sol\":\"RealMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]}},\"version\":1}","sourceMap":"391:2427:52:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","deployedSourceMap":"391:2427:52:-;;;;;;;;","source":"pragma solidity ^0.5.11;\n\n/**\n * RealMath: fixed-point math library, based on fractional and integer parts.\n * Using uint256 as real216x40, which isn't in Solidity yet.\n * Internally uses the wider uint256 for some math.\n *\n * Note that for addition, subtraction, and mod (%), you should just use the\n * built-in Solidity operators. Functions for these operations are not provided.\n *\n */\n\n\nlibrary RealMath {\n\n /**\n * How many total bits are there?\n */\n uint256 constant private REAL_BITS = 256;\n\n /**\n * How many fractional bits are there?\n */\n uint256 constant private REAL_FBITS = 40;\n\n /**\n * What's the first non-fractional bit\n */\n uint256 constant private REAL_ONE = uint256(1) << REAL_FBITS;\n\n /**\n * Raise a real number to any positive integer power\n */\n function pow(uint256 realBase, uint256 exponent) internal pure returns (uint256) {\n\n uint256 tempRealBase = realBase;\n uint256 tempExponent = exponent;\n\n // Start with the 0th power\n uint256 realResult = REAL_ONE;\n while (tempExponent != 0) {\n // While there are still bits set\n if ((tempExponent & 0x1) == 0x1) {\n // If the low bit is set, multiply in the (many-times-squared) base\n realResult = mul(realResult, tempRealBase);\n }\n // Shift off the low bit\n tempExponent = tempExponent >> 1;\n if (tempExponent != 0) {\n // Do the squaring\n tempRealBase = mul(tempRealBase, tempRealBase);\n }\n }\n\n // Return the final result.\n return realResult;\n }\n\n /**\n * Create a real from a rational fraction.\n */\n function fraction(uint216 numerator, uint216 denominator) internal pure returns (uint256) {\n return div(uint256(numerator) * REAL_ONE, uint256(denominator) * REAL_ONE);\n }\n\n /**\n * Multiply one real by another. Truncates overflows.\n */\n function mul(uint256 realA, uint256 realB) private pure returns (uint256) {\n // When multiplying fixed point in x.y and z.w formats we get (x+z).(y+w) format.\n // So we just have to clip off the extra REAL_FBITS fractional bits.\n uint256 res = realA * realB;\n require(res/realA == realB, \"RealMath mul overflow\");\n return (res >> REAL_FBITS);\n }\n\n /**\n * Divide one real by another real. Truncates overflows.\n */\n function div(uint256 realNumerator, uint256 realDenominator) private pure returns (uint256) {\n // We use the reverse of the multiplication trick: convert numerator from\n // x.y to (x+z).(y+w) fixed point, then divide by denom in z.w fixed point.\n return uint256((uint256(realNumerator) * REAL_ONE) / uint256(realDenominator));\n }\n\n}\n","sourcePath":"@daostack/infra/contracts/libs/RealMath.sol","ast":{"absolutePath":"@daostack/infra/contracts/libs/RealMath.sol","exportedSymbols":{"RealMath":[15236]},"id":15237,"nodeType":"SourceUnit","nodes":[{"id":15084,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:52"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"RealMath: fixed-point math library, based on fractional and integer parts.\nUsing uint256 as real216x40, which isn't in Solidity yet.\nInternally uses the wider uint256 for some math.\n * Note that for addition, subtraction, and mod (%), you should just use the\nbuilt-in Solidity operators. Functions for these operations are not provided.\n ","fullyImplemented":true,"id":15236,"linearizedBaseContracts":[15236],"name":"RealMath","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":15087,"name":"REAL_BITS","nodeType":"VariableDeclaration","scope":15236,"src":"469:40:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15085,"name":"uint256","nodeType":"ElementaryTypeName","src":"469:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"323536","id":15086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"506:3:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"private"},{"constant":true,"id":15090,"name":"REAL_FBITS","nodeType":"VariableDeclaration","scope":15236,"src":"575:40:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15088,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3430","id":15089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"613:2:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"visibility":"private"},{"constant":true,"id":15097,"name":"REAL_ONE","nodeType":"VariableDeclaration","scope":15236,"src":"681:60:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15091,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":15093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"725:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":15092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"717:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"717:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"argumentTypes":null,"id":15095,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15090,"src":"731:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"717:24:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":15158,"nodeType":"Block","src":"902:764:52","statements":[{"assignments":[15107],"declarations":[{"constant":false,"id":15107,"name":"tempRealBase","nodeType":"VariableDeclaration","scope":15158,"src":"913:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15106,"name":"uint256","nodeType":"ElementaryTypeName","src":"913:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15109,"initialValue":{"argumentTypes":null,"id":15108,"name":"realBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"936:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"913:31:52"},{"assignments":[15111],"declarations":[{"constant":false,"id":15111,"name":"tempExponent","nodeType":"VariableDeclaration","scope":15158,"src":"954:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15110,"name":"uint256","nodeType":"ElementaryTypeName","src":"954:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15113,"initialValue":{"argumentTypes":null,"id":15112,"name":"exponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"977:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"954:31:52"},{"assignments":[15115],"declarations":[{"constant":false,"id":15115,"name":"realResult","nodeType":"VariableDeclaration","scope":15158,"src":"1032:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15114,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15117,"initialValue":{"argumentTypes":null,"id":15116,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"1053:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1032:29:52"},{"body":{"id":15154,"nodeType":"Block","src":"1097:499:52","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15121,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1162:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"hexValue":"307831","id":15122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1177:3:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"1162:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15124,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1161:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"307831","id":15125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:3:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"1161:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":15135,"nodeType":"IfStatement","src":"1157:192:52","trueBody":{"id":15134,"nodeType":"Block","src":"1190:159:52","statements":[{"expression":{"argumentTypes":null,"id":15132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15127,"name":"realResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"1292:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15129,"name":"realResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"1309:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15130,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1321:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15128,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15212,"src":"1305:3:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1305:29:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1292:42:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15133,"nodeType":"ExpressionStatement","src":"1292:42:52"}]}},{"expression":{"argumentTypes":null,"id":15140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15136,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1403:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15137,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1418:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"argumentTypes":null,"hexValue":"31","id":15138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1434:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1418:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1403:32:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15141,"nodeType":"ExpressionStatement","src":"1403:32:52"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15142,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1453:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1469:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1453:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":15153,"nodeType":"IfStatement","src":"1449:137:52","trueBody":{"id":15152,"nodeType":"Block","src":"1472:114:52","statements":[{"expression":{"argumentTypes":null,"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15145,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1525:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15147,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1544:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15148,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1558:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15146,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15212,"src":"1540:3:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1540:31:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1525:46:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15151,"nodeType":"ExpressionStatement","src":"1525:46:52"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15118,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1078:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1094:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1078:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15155,"nodeType":"WhileStatement","src":"1071:525:52"},{"expression":{"argumentTypes":null,"id":15156,"name":"realResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"1649:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15105,"id":15157,"nodeType":"Return","src":"1642:17:52"}]},"documentation":"Raise a real number to any positive integer power","id":15159,"implemented":true,"kind":"function","modifiers":[],"name":"pow","nodeType":"FunctionDefinition","parameters":{"id":15102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15099,"name":"realBase","nodeType":"VariableDeclaration","scope":15159,"src":"834:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15098,"name":"uint256","nodeType":"ElementaryTypeName","src":"834:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15101,"name":"exponent","nodeType":"VariableDeclaration","scope":15159,"src":"852:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15100,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"833:36:52"},"returnParameters":{"id":15105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15104,"name":"","nodeType":"VariableDeclaration","scope":15159,"src":"893:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15103,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"892:9:52"},"scope":15236,"src":"821:845:52","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":15181,"nodeType":"Block","src":"1825:91:52","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15170,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15161,"src":"1854:9:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":15169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1846:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15172,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"1867:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1846:29:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15175,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15163,"src":"1885:11:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":15174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1877:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1877:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15177,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"1900:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1877:31:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15168,"name":"div","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15235,"src":"1842:3:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1842:67:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15167,"id":15180,"nodeType":"Return","src":"1835:74:52"}]},"documentation":"Create a real from a rational fraction.","id":15182,"implemented":true,"kind":"function","modifiers":[],"name":"fraction","nodeType":"FunctionDefinition","parameters":{"id":15164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15161,"name":"numerator","nodeType":"VariableDeclaration","scope":15182,"src":"1753:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":15160,"name":"uint216","nodeType":"ElementaryTypeName","src":"1753:7:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":15163,"name":"denominator","nodeType":"VariableDeclaration","scope":15182,"src":"1772:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":15162,"name":"uint216","nodeType":"ElementaryTypeName","src":"1772:7:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"1752:40:52"},"returnParameters":{"id":15167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15166,"name":"","nodeType":"VariableDeclaration","scope":15182,"src":"1816:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1816:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1815:9:52"},"scope":15236,"src":"1735:181:52","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":15211,"nodeType":"Block","src":"2070:309:52","statements":[{"assignments":[15192],"declarations":[{"constant":false,"id":15192,"name":"res","nodeType":"VariableDeclaration","scope":15211,"src":"2247:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15191,"name":"uint256","nodeType":"ElementaryTypeName","src":"2247:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15196,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15193,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15184,"src":"2261:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15194,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"2269:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2261:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2247:27:52"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15198,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"2292:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":15199,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15184,"src":"2296:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2292:9:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":15201,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"2305:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2292:18:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5265616c4d617468206d756c206f766572666c6f77","id":15203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2312:23:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""},"value":"RealMath mul overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""}],"id":15197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2284:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2284:52:52","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15205,"nodeType":"ExpressionStatement","src":"2284:52:52"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15206,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"2354:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"argumentTypes":null,"id":15207,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15090,"src":"2361:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2354:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2353:19:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15190,"id":15210,"nodeType":"Return","src":"2346:26:52"}]},"documentation":"Multiply one real by another. Truncates overflows.","id":15212,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":15187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15184,"name":"realA","nodeType":"VariableDeclaration","scope":15212,"src":"2009:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15183,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15186,"name":"realB","nodeType":"VariableDeclaration","scope":15212,"src":"2024:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2024:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2008:30:52"},"returnParameters":{"id":15190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15189,"name":"","nodeType":"VariableDeclaration","scope":15212,"src":"2061:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15188,"name":"uint256","nodeType":"ElementaryTypeName","src":"2061:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2060:9:52"},"scope":15236,"src":"1996:383:52","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":15234,"nodeType":"Block","src":"2554:261:52","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15223,"name":"realNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15214,"src":"2754:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2746:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:22:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15225,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"2771:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2746:33:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15227,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2745:35:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15229,"name":"realDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15216,"src":"2791:15:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2783:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2783:24:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2745:62:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2737:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2737:71:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15220,"id":15233,"nodeType":"Return","src":"2730:78:52"}]},"documentation":"Divide one real by another real. Truncates overflows.","id":15235,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":15217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15214,"name":"realNumerator","nodeType":"VariableDeclaration","scope":15235,"src":"2475:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2475:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15216,"name":"realDenominator","nodeType":"VariableDeclaration","scope":15235,"src":"2498:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15215,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2474:48:52"},"returnParameters":{"id":15220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15219,"name":"","nodeType":"VariableDeclaration","scope":15235,"src":"2545:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2545:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2544:9:52"},"scope":15236,"src":"2462:353:52","stateMutability":"pure","superFunction":null,"visibility":"private"}],"scope":15237,"src":"391:2427:52"}],"src":"0:2819:52"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/libs/RealMath.sol","exportedSymbols":{"RealMath":[15236]},"id":15237,"nodeType":"SourceUnit","nodes":[{"id":15084,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:52"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"RealMath: fixed-point math library, based on fractional and integer parts.\nUsing uint256 as real216x40, which isn't in Solidity yet.\nInternally uses the wider uint256 for some math.\n * Note that for addition, subtraction, and mod (%), you should just use the\nbuilt-in Solidity operators. Functions for these operations are not provided.\n ","fullyImplemented":true,"id":15236,"linearizedBaseContracts":[15236],"name":"RealMath","nodeType":"ContractDefinition","nodes":[{"constant":true,"id":15087,"name":"REAL_BITS","nodeType":"VariableDeclaration","scope":15236,"src":"469:40:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15085,"name":"uint256","nodeType":"ElementaryTypeName","src":"469:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"323536","id":15086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"506:3:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_256_by_1","typeString":"int_const 256"},"value":"256"},"visibility":"private"},{"constant":true,"id":15090,"name":"REAL_FBITS","nodeType":"VariableDeclaration","scope":15236,"src":"575:40:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15088,"name":"uint256","nodeType":"ElementaryTypeName","src":"575:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"hexValue":"3430","id":15089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"613:2:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_40_by_1","typeString":"int_const 40"},"value":"40"},"visibility":"private"},{"constant":true,"id":15097,"name":"REAL_ONE","nodeType":"VariableDeclaration","scope":15236,"src":"681:60:52","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15091,"name":"uint256","nodeType":"ElementaryTypeName","src":"681:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":15093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"725:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":15092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"717:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15094,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"717:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"argumentTypes":null,"id":15095,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15090,"src":"731:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"717:24:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"body":{"id":15158,"nodeType":"Block","src":"902:764:52","statements":[{"assignments":[15107],"declarations":[{"constant":false,"id":15107,"name":"tempRealBase","nodeType":"VariableDeclaration","scope":15158,"src":"913:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15106,"name":"uint256","nodeType":"ElementaryTypeName","src":"913:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15109,"initialValue":{"argumentTypes":null,"id":15108,"name":"realBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15099,"src":"936:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"913:31:52"},{"assignments":[15111],"declarations":[{"constant":false,"id":15111,"name":"tempExponent","nodeType":"VariableDeclaration","scope":15158,"src":"954:20:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15110,"name":"uint256","nodeType":"ElementaryTypeName","src":"954:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15113,"initialValue":{"argumentTypes":null,"id":15112,"name":"exponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15101,"src":"977:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"954:31:52"},{"assignments":[15115],"declarations":[{"constant":false,"id":15115,"name":"realResult","nodeType":"VariableDeclaration","scope":15158,"src":"1032:18:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15114,"name":"uint256","nodeType":"ElementaryTypeName","src":"1032:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15117,"initialValue":{"argumentTypes":null,"id":15116,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"1053:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1032:29:52"},{"body":{"id":15154,"nodeType":"Block","src":"1097:499:52","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15121,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1162:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"argumentTypes":null,"hexValue":"307831","id":15122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1177:3:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"1162:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15124,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1161:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"307831","id":15125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1185:3:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"0x1"},"src":"1161:27:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":15135,"nodeType":"IfStatement","src":"1157:192:52","trueBody":{"id":15134,"nodeType":"Block","src":"1190:159:52","statements":[{"expression":{"argumentTypes":null,"id":15132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15127,"name":"realResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"1292:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15129,"name":"realResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"1309:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15130,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1321:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15128,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15212,"src":"1305:3:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1305:29:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1292:42:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15133,"nodeType":"ExpressionStatement","src":"1292:42:52"}]}},{"expression":{"argumentTypes":null,"id":15140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15136,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1403:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15139,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15137,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1418:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"argumentTypes":null,"hexValue":"31","id":15138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1434:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"1418:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1403:32:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15141,"nodeType":"ExpressionStatement","src":"1403:32:52"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15142,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1453:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1469:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1453:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":15153,"nodeType":"IfStatement","src":"1449:137:52","trueBody":{"id":15152,"nodeType":"Block","src":"1472:114:52","statements":[{"expression":{"argumentTypes":null,"id":15150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":15145,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1525:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15147,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1544:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":15148,"name":"tempRealBase","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15107,"src":"1558:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15146,"name":"mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15212,"src":"1540:3:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1540:31:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1525:46:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":15151,"nodeType":"ExpressionStatement","src":"1525:46:52"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15118,"name":"tempExponent","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15111,"src":"1078:12:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1094:1:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1078:17:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":15155,"nodeType":"WhileStatement","src":"1071:525:52"},{"expression":{"argumentTypes":null,"id":15156,"name":"realResult","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15115,"src":"1649:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15105,"id":15157,"nodeType":"Return","src":"1642:17:52"}]},"documentation":"Raise a real number to any positive integer power","id":15159,"implemented":true,"kind":"function","modifiers":[],"name":"pow","nodeType":"FunctionDefinition","parameters":{"id":15102,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15099,"name":"realBase","nodeType":"VariableDeclaration","scope":15159,"src":"834:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15098,"name":"uint256","nodeType":"ElementaryTypeName","src":"834:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15101,"name":"exponent","nodeType":"VariableDeclaration","scope":15159,"src":"852:16:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15100,"name":"uint256","nodeType":"ElementaryTypeName","src":"852:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"833:36:52"},"returnParameters":{"id":15105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15104,"name":"","nodeType":"VariableDeclaration","scope":15159,"src":"893:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15103,"name":"uint256","nodeType":"ElementaryTypeName","src":"893:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"892:9:52"},"scope":15236,"src":"821:845:52","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":15181,"nodeType":"Block","src":"1825:91:52","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15170,"name":"numerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15161,"src":"1854:9:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":15169,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1846:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1846:18:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15172,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"1867:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1846:29:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15175,"name":"denominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15163,"src":"1885:11:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"id":15174,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1877:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15176,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1877:20:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15177,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"1900:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1877:31:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15168,"name":"div","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15235,"src":"1842:3:52","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":15179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1842:67:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15167,"id":15180,"nodeType":"Return","src":"1835:74:52"}]},"documentation":"Create a real from a rational fraction.","id":15182,"implemented":true,"kind":"function","modifiers":[],"name":"fraction","nodeType":"FunctionDefinition","parameters":{"id":15164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15161,"name":"numerator","nodeType":"VariableDeclaration","scope":15182,"src":"1753:17:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":15160,"name":"uint216","nodeType":"ElementaryTypeName","src":"1753:7:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":15163,"name":"denominator","nodeType":"VariableDeclaration","scope":15182,"src":"1772:19:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":15162,"name":"uint216","nodeType":"ElementaryTypeName","src":"1772:7:52","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"1752:40:52"},"returnParameters":{"id":15167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15166,"name":"","nodeType":"VariableDeclaration","scope":15182,"src":"1816:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15165,"name":"uint256","nodeType":"ElementaryTypeName","src":"1816:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1815:9:52"},"scope":15236,"src":"1735:181:52","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":15211,"nodeType":"Block","src":"2070:309:52","statements":[{"assignments":[15192],"declarations":[{"constant":false,"id":15192,"name":"res","nodeType":"VariableDeclaration","scope":15211,"src":"2247:11:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15191,"name":"uint256","nodeType":"ElementaryTypeName","src":"2247:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":15196,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15193,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15184,"src":"2261:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15194,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"2269:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2261:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2247:27:52"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15198,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"2292:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":15199,"name":"realA","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15184,"src":"2296:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2292:9:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":15201,"name":"realB","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15186,"src":"2305:5:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2292:18:52","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5265616c4d617468206d756c206f766572666c6f77","id":15203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2312:23:52","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""},"value":"RealMath mul overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7305e46197b3e43959603203ec7fb5dbdc96c4eb4ab7e9ec4fe7745c697000cb","typeString":"literal_string \"RealMath mul overflow\""}],"id":15197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2284:7:52","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":15204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2284:52:52","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15205,"nodeType":"ExpressionStatement","src":"2284:52:52"},{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":15206,"name":"res","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15192,"src":"2354:3:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"argumentTypes":null,"id":15207,"name":"REAL_FBITS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15090,"src":"2361:10:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2354:17:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15209,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2353:19:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15190,"id":15210,"nodeType":"Return","src":"2346:26:52"}]},"documentation":"Multiply one real by another. Truncates overflows.","id":15212,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":15187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15184,"name":"realA","nodeType":"VariableDeclaration","scope":15212,"src":"2009:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15183,"name":"uint256","nodeType":"ElementaryTypeName","src":"2009:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15186,"name":"realB","nodeType":"VariableDeclaration","scope":15212,"src":"2024:13:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2024:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2008:30:52"},"returnParameters":{"id":15190,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15189,"name":"","nodeType":"VariableDeclaration","scope":15212,"src":"2061:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15188,"name":"uint256","nodeType":"ElementaryTypeName","src":"2061:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2060:9:52"},"scope":15236,"src":"1996:383:52","stateMutability":"pure","superFunction":null,"visibility":"private"},{"body":{"id":15234,"nodeType":"Block","src":"2554:261:52","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15223,"name":"realNumerator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15214,"src":"2754:13:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15222,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2746:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2746:22:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":15225,"name":"REAL_ONE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15097,"src":"2771:8:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2746:33:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":15227,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2745:35:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15229,"name":"realDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15216,"src":"2791:15:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2783:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2783:24:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2745:62:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15221,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2737:7:52","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":"uint256"},"id":15232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2737:71:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":15220,"id":15233,"nodeType":"Return","src":"2730:78:52"}]},"documentation":"Divide one real by another real. Truncates overflows.","id":15235,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":15217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15214,"name":"realNumerator","nodeType":"VariableDeclaration","scope":15235,"src":"2475:21:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15213,"name":"uint256","nodeType":"ElementaryTypeName","src":"2475:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":15216,"name":"realDenominator","nodeType":"VariableDeclaration","scope":15235,"src":"2498:23:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15215,"name":"uint256","nodeType":"ElementaryTypeName","src":"2498:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2474:48:52"},"returnParameters":{"id":15220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15219,"name":"","nodeType":"VariableDeclaration","scope":15235,"src":"2545:7:52","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15218,"name":"uint256","nodeType":"ElementaryTypeName","src":"2545:7:52","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2544:9:52"},"scope":15236,"src":"2462:353:52","stateMutability":"pure","superFunction":null,"visibility":"private"}],"scope":15237,"src":"391:2427:52"}],"src":"0:2819:52"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.235Z","devdoc":{"methods":{}},"userdoc":{"methods":{},"notice":"RealMath: fixed-point math library, based on fractional and integer parts. Using uint256 as real216x40, which isn't in Solidity yet. Internally uses the wider uint256 for some math. * Note that for addition, subtraction, and mod (%), you should just use the built-in Solidity operators. Functions for these operations are not provided. "}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RealMathTester.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RealMathTester.json new file mode 100644 index 00000000..1df43a97 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RealMathTester.json @@ -0,0 +1 @@ +{"contractName":"RealMathTester","abi":[{"constant":true,"inputs":[{"internalType":"uint216","name":"num","type":"uint216"},{"internalType":"uint216","name":"den","type":"uint216"},{"internalType":"uint256","name":"exp","type":"uint256"}],"name":"power","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"uint216","name":"num","type":"uint216"},{"internalType":"uint216","name":"den","type":"uint216"}],"name":"fraction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.11+commit.c082d0b4\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"uint216\",\"name\":\"num\",\"type\":\"uint216\"},{\"internalType\":\"uint216\",\"name\":\"den\",\"type\":\"uint216\"},{\"internalType\":\"uint256\",\"name\":\"exp\",\"type\":\"uint256\"}],\"name\":\"power\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint216\",\"name\":\"num\",\"type\":\"uint216\"},{\"internalType\":\"uint216\",\"name\":\"den\",\"type\":\"uint216\"}],\"name\":\"fraction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol\":\"RealMathTester\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol\":{\"keccak256\":\"0x5d6621bc8bfd477bb0048f0677ff310fcf77a06bf28cdae856623492e88c6f58\",\"urls\":[\"bzz-raw://53ae87e2e49af6d15e3eec1d9c6758091b591a13aab19e8734dd9dd35624a17a\",\"dweb:/ipfs/QmRVyyzQJbBYJytMTndDUuDJP431JcpjMeM1zciSMie8JM\"]}},\"version\":1}","sourceMap":"59:352:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:352:7;;;;;;;","deployedSourceMap":"59:352:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;59:352:7;;;;;;;;;;;;;;;;;;;;;;;;154:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;154:135:7;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;295:114;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;295:114:7;;;;;;;;;;:::i;154:135::-;228:7;254:28;278:3;255:17;-1:-1:-1;;;;;255:12:7;;268:3;255:17;:12;:17;:::i;:::-;254:23;:28;:23;:28;:::i;:::-;247:35;154:135;-1:-1:-1;;;;154:135:7:o;295:114::-;359:7;385:17;-1:-1:-1;;;;;385:12:7;;398:3;385:17;:12;:17;:::i;:::-;378:24;295:114;-1:-1:-1;;;295:114:7:o;1735:181:2:-;1816:7;1842:67;-1:-1:-1;;;;;1846:18:2;;;717:24;1846:29;;;;1877:20;;:31;1842:3;:67::i;821:845::-;893:7;936:8;977;717:24;1071:525;1078:17;;1071:525;;1162:12;1177:3;1162:18;1185:3;1161:27;1157:192;;;1305:29;1309:10;1321:12;1305:3;:29::i;:::-;1292:42;;1157:192;1434:1;1418:17;;;;;1453;;1449:137;;1540:31;1544:12;1558;1540:3;:31::i;:::-;1525:46;;1449:137;1071:525;;;1649:10;821:845;-1:-1:-1;;;;;821:845:2:o;2462:353::-;2545:7;2791:15;717:24;2746:33;;2791:15;2745:62;;;;;;2462:353;-1:-1:-1;;;2462:353:2:o;1996:383::-;2061:7;2261:13;;;2269:5;2261;:13;:5;2292:9;;;;;:18;2284:52;;;;;-1:-1:-1;;;2284:52:2;;;;;;;;;;;;-1:-1:-1;;;2284:52:2;;;;;;;;;;;;;;;613:2;2354:17;;1996:383;-1:-1:-1;;;1996:383:2:o","source":"pragma solidity ^0.5.11;\n\nimport \"../libs/RealMath.sol\";\n\n\ncontract RealMathTester {\n using RealMath for uint216;\n using RealMath for uint256;\n\n function power(uint216 num, uint216 den, uint256 exp) public pure returns(uint256) {\n return (num.fraction(den)).pow(exp);\n }\n\n function fraction(uint216 num, uint216 den) public pure returns(uint256) {\n return num.fraction(den);\n }\n}\n","sourcePath":"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol","ast":{"absolutePath":"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol","exportedSymbols":{"RealMathTester":[1293]},"id":1294,"nodeType":"SourceUnit","nodes":[{"id":1249,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:7"},{"absolutePath":"/Users/oren/daostack/infra/contracts/libs/RealMath.sol","file":"../libs/RealMath.sol","id":1250,"nodeType":"ImportDirective","scope":1294,"sourceUnit":644,"src":"26:30:7","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":1293,"linearizedBaseContracts":[1293],"name":"RealMathTester","nodeType":"ContractDefinition","nodes":[{"id":1253,"libraryName":{"contractScope":null,"id":1251,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":643,"src":"95:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$643","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"89:27:7","typeName":{"id":1252,"name":"uint216","nodeType":"ElementaryTypeName","src":"108:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}},{"id":1256,"libraryName":{"contractScope":null,"id":1254,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":643,"src":"127:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$643","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"121:27:7","typeName":{"id":1255,"name":"uint256","nodeType":"ElementaryTypeName","src":"140:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"body":{"id":1276,"nodeType":"Block","src":"237:52:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1273,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"278:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1269,"name":"den","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"268:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"id":1267,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"255:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":1268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":589,"src":"255:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"255:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1271,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"254:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pow","nodeType":"MemberAccess","referencedDeclaration":566,"src":"254:23:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"254:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1266,"id":1275,"nodeType":"Return","src":"247:35:7"}]},"documentation":null,"id":1277,"implemented":true,"kind":"function","modifiers":[],"name":"power","nodeType":"FunctionDefinition","parameters":{"id":1263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"name":"num","nodeType":"VariableDeclaration","scope":1277,"src":"169:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1257,"name":"uint216","nodeType":"ElementaryTypeName","src":"169:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":1260,"name":"den","nodeType":"VariableDeclaration","scope":1277,"src":"182:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1259,"name":"uint216","nodeType":"ElementaryTypeName","src":"182:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":1262,"name":"exp","nodeType":"VariableDeclaration","scope":1277,"src":"195:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1261,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"168:39:7"},"returnParameters":{"id":1266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1265,"name":"","nodeType":"VariableDeclaration","scope":1277,"src":"228:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1264,"name":"uint256","nodeType":"ElementaryTypeName","src":"228:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"227:9:7"},"scope":1293,"src":"154:135:7","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":1291,"nodeType":"Block","src":"368:41:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1288,"name":"den","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"398:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"id":1286,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"385:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":589,"src":"385:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"385:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1285,"id":1290,"nodeType":"Return","src":"378:24:7"}]},"documentation":null,"id":1292,"implemented":true,"kind":"function","modifiers":[],"name":"fraction","nodeType":"FunctionDefinition","parameters":{"id":1282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"name":"num","nodeType":"VariableDeclaration","scope":1292,"src":"313:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1278,"name":"uint216","nodeType":"ElementaryTypeName","src":"313:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":1281,"name":"den","nodeType":"VariableDeclaration","scope":1292,"src":"326:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1280,"name":"uint216","nodeType":"ElementaryTypeName","src":"326:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"312:26:7"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"name":"","nodeType":"VariableDeclaration","scope":1292,"src":"359:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1283,"name":"uint256","nodeType":"ElementaryTypeName","src":"359:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"358:9:7"},"scope":1293,"src":"295:114:7","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":1294,"src":"59:352:7"}],"src":"0:412:7"},"legacyAST":{"absolutePath":"/Users/oren/daostack/infra/contracts/test/RealMathTester.sol","exportedSymbols":{"RealMathTester":[1293]},"id":1294,"nodeType":"SourceUnit","nodes":[{"id":1249,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:7"},{"absolutePath":"/Users/oren/daostack/infra/contracts/libs/RealMath.sol","file":"../libs/RealMath.sol","id":1250,"nodeType":"ImportDirective","scope":1294,"sourceUnit":644,"src":"26:30:7","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":1293,"linearizedBaseContracts":[1293],"name":"RealMathTester","nodeType":"ContractDefinition","nodes":[{"id":1253,"libraryName":{"contractScope":null,"id":1251,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":643,"src":"95:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$643","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"89:27:7","typeName":{"id":1252,"name":"uint216","nodeType":"ElementaryTypeName","src":"108:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}},{"id":1256,"libraryName":{"contractScope":null,"id":1254,"name":"RealMath","nodeType":"UserDefinedTypeName","referencedDeclaration":643,"src":"127:8:7","typeDescriptions":{"typeIdentifier":"t_contract$_RealMath_$643","typeString":"library RealMath"}},"nodeType":"UsingForDirective","src":"121:27:7","typeName":{"id":1255,"name":"uint256","nodeType":"ElementaryTypeName","src":"140:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"body":{"id":1276,"nodeType":"Block","src":"237:52:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1273,"name":"exp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1262,"src":"278:3:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1269,"name":"den","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1260,"src":"268:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"id":1267,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1258,"src":"255:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":1268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":589,"src":"255:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":1270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"255:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1271,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"254:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"pow","nodeType":"MemberAccess","referencedDeclaration":566,"src":"254:23:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":1274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"254:28:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1266,"id":1275,"nodeType":"Return","src":"247:35:7"}]},"documentation":null,"id":1277,"implemented":true,"kind":"function","modifiers":[],"name":"power","nodeType":"FunctionDefinition","parameters":{"id":1263,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1258,"name":"num","nodeType":"VariableDeclaration","scope":1277,"src":"169:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1257,"name":"uint216","nodeType":"ElementaryTypeName","src":"169:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":1260,"name":"den","nodeType":"VariableDeclaration","scope":1277,"src":"182:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1259,"name":"uint216","nodeType":"ElementaryTypeName","src":"182:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":1262,"name":"exp","nodeType":"VariableDeclaration","scope":1277,"src":"195:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1261,"name":"uint256","nodeType":"ElementaryTypeName","src":"195:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"168:39:7"},"returnParameters":{"id":1266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1265,"name":"","nodeType":"VariableDeclaration","scope":1277,"src":"228:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1264,"name":"uint256","nodeType":"ElementaryTypeName","src":"228:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"227:9:7"},"scope":1293,"src":"154:135:7","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":1291,"nodeType":"Block","src":"368:41:7","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1288,"name":"den","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"398:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint216","typeString":"uint216"}],"expression":{"argumentTypes":null,"id":1286,"name":"num","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"385:3:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"id":1287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"fraction","nodeType":"MemberAccess","referencedDeclaration":589,"src":"385:12:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint216_$_t_uint216_$returns$_t_uint256_$bound_to$_t_uint216_$","typeString":"function (uint216,uint216) pure returns (uint256)"}},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"385:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1285,"id":1290,"nodeType":"Return","src":"378:24:7"}]},"documentation":null,"id":1292,"implemented":true,"kind":"function","modifiers":[],"name":"fraction","nodeType":"FunctionDefinition","parameters":{"id":1282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"name":"num","nodeType":"VariableDeclaration","scope":1292,"src":"313:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1278,"name":"uint216","nodeType":"ElementaryTypeName","src":"313:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"},{"constant":false,"id":1281,"name":"den","nodeType":"VariableDeclaration","scope":1292,"src":"326:11:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"},"typeName":{"id":1280,"name":"uint216","nodeType":"ElementaryTypeName","src":"326:7:7","typeDescriptions":{"typeIdentifier":"t_uint216","typeString":"uint216"}},"value":null,"visibility":"internal"}],"src":"312:26:7"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"name":"","nodeType":"VariableDeclaration","scope":1292,"src":"359:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1283,"name":"uint256","nodeType":"ElementaryTypeName","src":"359:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"358:9:7"},"scope":1293,"src":"295:114:7","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":1294,"src":"59:352:7"}],"src":"0:412:7"},"compiler":{"name":"solc","version":"0.5.11+commit.c082d0b4.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.14","updatedAt":"2019-10-22T12:36:36.338Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Redeemer.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Redeemer.json new file mode 100644 index 00000000..f6d7f2aa --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Redeemer.json @@ -0,0 +1 @@ +{"contractName":"Redeemer","abi":[{"constant":false,"inputs":[{"internalType":"contract ContributionReward","name":"_contributionReward","type":"address"},{"internalType":"contract GenesisProtocol","name":"_genesisProtocol","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256[3]","name":"gpRewards","type":"uint256[3]"},{"internalType":"uint256[2]","name":"gpDaoBountyReward","type":"uint256[2]"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint256","name":"winningVote","type":"uint256"},{"internalType":"int256","name":"crReputationReward","type":"int256"},{"internalType":"uint256","name":"crNativeTokenReward","type":"uint256"},{"internalType":"uint256","name":"crEthReward","type":"uint256"},{"internalType":"uint256","name":"crExternalTokenReward","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract ContributionRewardExt","name":"_contributionRewardExt","type":"address"},{"internalType":"contract GenesisProtocol","name":"_genesisProtocol","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"redeemFromCRExt","outputs":[{"internalType":"uint256[3]","name":"gpRewards","type":"uint256[3]"},{"internalType":"uint256[2]","name":"gpDaoBountyReward","type":"uint256[2]"},{"internalType":"bool","name":"executed","type":"bool"},{"internalType":"uint256","name":"winningVote","type":"uint256"},{"internalType":"int256","name":"crReputationReward","type":"int256"},{"internalType":"uint256","name":"crNativeTokenReward","type":"uint256"},{"internalType":"uint256","name":"crEthReward","type":"uint256"},{"internalType":"uint256","name":"crExternalTokenReward","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"contract ContributionReward\",\"name\":\"_contributionReward\",\"type\":\"address\"},{\"internalType\":\"contract GenesisProtocol\",\"name\":\"_genesisProtocol\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"gpRewards\",\"type\":\"uint256[3]\"},{\"internalType\":\"uint256[2]\",\"name\":\"gpDaoBountyReward\",\"type\":\"uint256[2]\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"winningVote\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"crReputationReward\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"crNativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crEthReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crExternalTokenReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract ContributionRewardExt\",\"name\":\"_contributionRewardExt\",\"type\":\"address\"},{\"internalType\":\"contract GenesisProtocol\",\"name\":\"_genesisProtocol\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"redeemFromCRExt\",\"outputs\":[{\"internalType\":\"uint256[3]\",\"name\":\"gpRewards\",\"type\":\"uint256[3]\"},{\"internalType\":\"uint256[2]\",\"name\":\"gpDaoBountyReward\",\"type\":\"uint256[2]\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"winningVote\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"crReputationReward\",\"type\":\"int256\"},{\"internalType\":\"uint256\",\"name\":\"crNativeTokenReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crEthReward\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"crExternalTokenReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"redeem(address,address,bytes32,address,address)\":{\"details\":\"helper to redeem rewards for a proposal It calls execute on the proposal if it is not yet executed. It tries to redeem reputation and stake from the GenesisProtocol. It tries to redeem proposal rewards from the contribution rewards scheme. This function does not emit events. A client should listen to GenesisProtocol and ContributionReward redemption events to monitor redemption operations.\",\"params\":{\"_avatar\":\"address of the controller\",\"_beneficiary\":\"beneficiary\",\"_contributionReward\":\"contributionReward\",\"_genesisProtocol\":\"genesisProtocol\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"gpRewards array gpRewards[0] - stakerTokenAmount gpRewards[1] - voterReputationAmount gpRewards[2] - proposerReputationAmountgpDaoBountyReward array gpDaoBountyReward[0] - staker dao bounty reward - will be zero for the case there is not enough tokens in avatar for the reward. gpDaoBountyReward[1] - staker potential dao bounty reward.executed bool true or falsewinningVote 1 - executed or closed and the winning vote is YES 2 - executed or closed and the winning vote is NOint256 crReputationReward Reputation - from ContributionRewardint256 crNativeTokenReward NativeTokenReward - from ContributionRewardint256 crEthReward Ether - from ContributionRewardint256 crExternalTokenReward ExternalToken - from ContributionReward\"},\"redeemFromCRExt(address,address,bytes32,address)\":{\"details\":\"helper to redeem rewards for a proposal It calls execute on the proposal if it is not yet executed. It tries to redeem reputation and stake from the GenesisProtocol. It tries to redeem proposal rewards from the contribution rewards scheme. This function does not emit events. A client should listen to GenesisProtocol and ContributionReward redemption events to monitor redemption operations.\",\"params\":{\"_beneficiary\":\"beneficiary\",\"_contributionRewardExt\":\"contributionRewardExt\",\"_genesisProtocol\":\"genesisProtocol\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"gpRewards array gpRewards[0] - stakerTokenAmount gpRewards[1] - voterReputationAmount gpRewards[2] - proposerReputationAmountgpDaoBountyReward array gpDaoBountyReward[0] - staker dao bounty reward - will be zero for the case there is not enough tokens in avatar for the reward. gpDaoBountyReward[1] - staker potential dao bounty reward.executed bool true or falsewinningVote 1 - executed or closed and the winning vote is YES 2 - executed or closed and the winning vote is NOint256 crReputationReward Reputation - from ContributionRewardint256 crNativeTokenReward NativeTokenReward - from ContributionRewardint256 crEthReward Ether - from ContributionRewardint256 crExternalTokenReward ExternalToken - from ContributionReward\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/utils/Redeemer.sol\":\"Redeemer\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol\":{\"keccak256\":\"0x271a840a4b3f4f1edd032d6954e2db0f59a4336abd3ed29cc72dd99b56b35e1a\",\"urls\":[\"bzz-raw://6954d78cf36f562668500408d210610239d03c76e70947c0e24d8abc9f3b3c8a\",\"dweb:/ipfs/QmNqAyf47Z7CM28xWbkPZAQV5XyasUsnkW71idmi1D8wmp\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol\":{\"keccak256\":\"0x7284ec6ef657f09af4f909362e1598e089fb10d2d33ab944526f669e6f9607bb\",\"urls\":[\"bzz-raw://c973f9e5259da1936c23b52af570c287c2ae7ea70649e109cd9c80dbf23b0781\",\"dweb:/ipfs/QmV1QwnpMmp2t7dPEbSWNUBjjM2Luw6ss4YAhb8cvsWzRn\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/utils/Redeemer.sol\":{\"keccak256\":\"0xee1a8dc8fb70c90cc1949ebca8c554ec6dbf35db2c4f28a5d014b42d3ce0880b\",\"urls\":[\"bzz-raw://577a423cd0148be0eb21daf9abbd4c752afd9c9ad381f89e955d97af899478f5\",\"dweb:/ipfs/QmXvF5KLW5xwf1RnuAzPV6yfP9ahn1A9dP2yMxonrmyRJf\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"263:10041:48:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;263:10041:48;;;;;;;","deployedSourceMap":"263:10041:48:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;263:10041:48;;;;;;;;;;;;;;;;;;;;;;;;4890:1191;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;4890:1191:48;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;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;4890:1191:48;;;;;;;;;;;;;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;4890:1191:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2026:1161;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;2026:1161:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4890:1191::-;5155:24;;:::i;:::-;5197:32;;:::i;:::-;5247:13;5278:19;5315:25;5358:27;5403:19;5440:29;5485:27;5610:66;5632:16;5650:11;5663:12;5610:21;:66::i;:::-;5522:154;;-1:-1:-1;5522:154:48;;-1:-1:-1;5522:154:48;-1:-1:-1;5522:154:48;-1:-1:-1;5522:154:48;-1:-1:-1;5686:389:48;;;;5800:22;-1:-1:-1;;;;;5800:57:48;;5858:11;5800:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5800:70:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5800:70:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5800:70:48;5796:269;;;5986:64;6014:22;6038:11;5986:27;:64::i;:::-;5890:160;;-1:-1:-1;5890:160:48;;-1:-1:-1;5890:160:48;-1:-1:-1;5890:160:48;-1:-1:-1;5796:269:48;4890:1191;;;;;;;;;;;;;;:::o;2026:1161::-;2280:24;;:::i;:::-;2318:32;;:::i;:::-;2364:13;2391:19;2424:25;2463:27;2504:19;2537:29;2582:27;2707:66;2729:16;2747:11;2760:12;2707:21;:66::i;:::-;2619:154;;-1:-1:-1;2619:154:48;;-1:-1:-1;2619:154:48;-1:-1:-1;2619:154:48;-1:-1:-1;2619:154:48;-1:-1:-1;2783:398:48;;;;2972:1;2894:19;-1:-1:-1;;;;;2894:44:48;;2939:11;2960:7;2894:75;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2894:75:48;-1:-1:-1;;;;;2894:75:48;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2894:75:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2894:75:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2894:75:48;:79;2890:281;;;3089:67;3114:19;3135:11;3148:7;3089:24;:67::i;:::-;2993:163;;-1:-1:-1;2993:163:48;;-1:-1:-1;2993:163:48;-1:-1:-1;2993:163:48;-1:-1:-1;2890:281:48;2026:1161;;;;;;;;;;;;;;;:::o;6087:1457::-;6291:24;;:::i;:::-;6329:32;;:::i;:::-;6375:13;6402:19;6435:27;6474:36;6513:16;-1:-1:-1;;;;;6513:22:48;;6536:11;6513:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6513:35:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6513:35:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6513:35:48;;-1:-1:-1;6574:41:48;6564:6;:51;;;;;;;;;6563:125;;;-1:-1:-1;6642:45:48;6632:6;:55;;;;;;;;;6563:125;:194;;;-1:-1:-1;6714:42:48;6704:6;:52;;;;;;;;;6563:194;:273;;;-1:-1:-1;6783:52:48;6773:6;:62;;;;;;;;;6563:273;6559:352;;;6863:16;-1:-1:-1;;;;;6863:24:48;;6888:11;6863:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6863:37:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6863:37:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6863:37:48;;-1:-1:-1;6559:352:48;6929:16;-1:-1:-1;;;;;6929:22:48;;6952:11;6929:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6929:35:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6929:35:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6929:35:48;;-1:-1:-1;6989:43:48;6979:6;:53;;;;;;;;;6978:132;;;-1:-1:-1;7060:49:48;7050:6;:59;;;;;;;;;6978:132;6974:564;;;7138:16;-1:-1:-1;;;;;7138:23:48;;7162:11;7175:12;7138:50;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7138:50:48;-1:-1:-1;;;;;7138:50:48;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7138:50:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7138:50:48;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;13:2;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7138:50:48;-1:-1:-1;7216:43:48;7206:6;:53;;;;;;;;;7202:214;;;7342:59;;;-1:-1:-1;;;7342:59:48;;;;;;;;-1:-1:-1;;;;;7342:59:48;;;;;;;;;:32;;;;;;:59;;;;;;;;;;;-1:-1:-1;7342:32:48;:59;;;5:2:-1;;;;30:1;27;20:12;5:2;7342:59:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7342:59:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7342:59:48;;;;;;;7302:20;;;7279:122;;;;;;7202:214;7443:16;-1:-1:-1;;;;;7443:28:48;;7472:11;7443:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7443:41:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7443:41:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7443:41:48;;-1:-1:-1;7523:4:48;;-1:-1:-1;6974:564:48;6087:1457;;;;;;;;;;:::o;9091:1211::-;9220:17;9239:19;9260:11;9273:21;9310:27;;:::i;:::-;9365:4;9347:22;;;:15;9392;;;:22;;;;9458:56;;;-1:-1:-1;;;9458:56:48;;;;;;;;;;9360:1;;-1:-1:-1;;;;;9458:43:48;;;;;:56;;;;;9347:15;9458:56;;;;;:43;:56;;;5:2:-1;;;;30:1;27;20:12;5:2;9458:56:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9458:56:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9458:56:48;9554:66;;;-1:-1:-1;;;9554:66:48;;;;;;;;;;9458:56;;-1:-1:-1;9524:27:48;;-1:-1:-1;;;;;9554:53:48;;;;;:66;;;;;9458:56;;9554:66;;;;;;;:53;:66;;;5:2:-1;;;;30:1;27;20:12;5:2;9554:66:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9554:66:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9554:66:48;9661:60;;;-1:-1:-1;;;9661:60:48;;;;;;;;;;9554:66;;-1:-1:-1;9630:28:48;;-1:-1:-1;;;;;9661:47:48;;;;;:60;;;;;9554:66;;9661:60;;;;;;;:47;:60;;;5:2:-1;;;;30:1;27;20:12;5:2;9661:60:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9661:60:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9661:60:48;;-1:-1:-1;9736:14:48;;;9735:82;;;9807:9;9764:22;-1:-1:-1;;;;;9764:29:48;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9764:31:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9764:31:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9764:31:48;-1:-1:-1;;;;;9756:48:48;;:60;9735:82;9731:189;;;9851:5;9833:15;;;:23;9731:189;;;9905:4;9887:15;;;:22;9731:189;9934:24;;;9933:146;;;10059:19;9983:20;-1:-1:-1;;;;;9976:38:48;;10023:22;-1:-1:-1;;;;;10023:29:48;;:31;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10023:31:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10023:31:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10023:31:48;9976:80;;;-1:-1:-1;;;;;;9976:80:48;;;;;;;-1:-1:-1;;;;;9976:80:48;;;;;;;;;;;;;10023:31;;9976:80;;;;;;;;;;;5:2:-1;;;;30:1;27;20:12;5:2;9976:80:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9976:80:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9976:80:48;:102;9933:146;9929:253;;;10113:5;10095:15;;;:23;9929:253;;;10167:4;10149:15;;;:22;9929:253;10239:56;;-1:-1:-1;;;10239:56:48;;;;;;;;-1:-1:-1;;;;;10239:29:48;;;;;10269:11;;10282:12;;10239:56;;;10282:12;10239:56;;;10282:12;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10239:56:48;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10239:56:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10239:56:48;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;10239:56:48;;;;;;;;;;;;;;;;;;;-1:-1:-1;10239:56:48;;-1:-1:-1;10239:56:48;-1:-1:-1;9091:1211:48;-1:-1:-1;;;;;;;9091:1211:48:o;7550:1535::-;7686:17;7705:19;7726:11;7739:21;7776:27;;:::i;:::-;7831:4;7813:22;;;:15;7858;;;:22;;;;7927:69;;;-1:-1:-1;;;7927:69:48;;;;;;;;-1:-1:-1;;;;;7927:69:48;;;;;;;7994:1;7927:69;;;;;;7826:1;;7927:35;;;;;;:69;;;;;;;;;;;:35;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;7927:69:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7927:69:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7927:69:48;8026:71;;;-1:-1:-1;;;8026:71:48;;;;;;;;-1:-1:-1;;;;;8026:71:48;;;;;;;;;7927:69;;-1:-1:-1;8006:17:48;;8026:40;;;;;;:71;;;;;7927:69;;8026:71;;;;;;;;:40;:71;;;5:2:-1;;;;30:1;27;20:12;5:2;8026:71:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8026:71:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8026:71:48;8137:81;;;-1:-1:-1;;;8137:81:48;;;;;;;;-1:-1:-1;;;;;8137:81:48;;;;;;;;;8026:71;;-1:-1:-1;8107:27:48;;8137:50;;;;;;:81;;;;;8026:71;;8137:81;;;;;;;;:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;8137:81:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8137:81:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8137:81:48;8259:75;;;-1:-1:-1;;;8259:75:48;;;;;;;;-1:-1:-1;;;;;8259:75:48;;;;;;;;;8137:81;;-1:-1:-1;8228:28:48;;8259:44;;;;;;:75;;;;;8137:81;;8259:75;;;;;;;;:44;:75;;;5:2:-1;;;;30:1;27;20:12;5:2;8259:75:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8259:75:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8259:75:48;;-1:-1:-1;8356:27:48;:12;8373:9;8356:27;:16;:27;:::i;:::-;8344:39;-1:-1:-1;8398:14:48;;;8397:58;;;8445:9;8426:7;-1:-1:-1;;;;;8418:24:48;;:36;8397:58;8393:165;;;8489:5;8471:15;;;:23;8393:165;;;8543:4;8525:15;;;:22;8393:165;8582:69;;;-1:-1:-1;;;8582:69:48;;;;;;;;-1:-1:-1;;;;;8582:69:48;;;;;;;8649:1;8582:69;;;;;;:35;;;;;;:69;;;;;;;;;;;;;;;:35;:69;;;5:2:-1;;;;30:1;27;20:12;5:2;8582:69:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8582:69:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8582:69:48;;-1:-1:-1;8683:37:48;8582:69;8700:19;8683:37;:16;:37;:::i;:::-;8661:59;-1:-1:-1;8735:24:48;;;8734:122;;;8836:19;8784:20;-1:-1:-1;;;;;8777:38:48;;8824:7;8777:56;;;;;;;;;;;;;-1:-1:-1;;;;;8777:56:48;-1:-1:-1;;;;;8777:56:48;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8777:56:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8777:56:48;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8777:56:48;:78;8734:122;8730:229;;;8890:5;8872:15;;;:23;8730:229;;;8944:4;8926:15;;;:22;8730:229;9016:62;;-1:-1:-1;;;9016:62:48;;;;;;;;-1:-1:-1;;;;;9016:62:48;;;;;;;:26;;;;;9043:11;;9056:7;;9065:12;;9016:62;;9065:12;9016:62;;;9065:12;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9016:62:48;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9016:62:48;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9016:62:48;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;9016:62:48;;;;;;;;;;;;;;;;;;;-1:-1:-1;9016:62:48;;-1:-1:-1;9016:62:48;-1:-1:-1;7550:1535:48;-1:-1:-1;;;;;;;;;7550:1535:48:o;2159:459:66:-;2217:7;2458:6;2454:45;;-1:-1:-1;2487:1:66;2480:8;;2454:45;2521:5;;;2525:1;2521;:5;:1;2544:5;;;;;:10;2536:56;;;;-1:-1:-1;;;2536:56:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2610:1;-1:-1:-1;2159:459:66;;;;;:::o;263:10041:48:-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;263:10041:48;;;-1:-1:-1;;263:10041:48:o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;263:10041:48;;;-1:-1:-1;;263:10041:48:o;:::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;263:10041:48;;;-1:-1:-1;;263:10041:48:o","source":"pragma solidity 0.5.13;\n\nimport \"../universalSchemes/ContributionReward.sol\";\nimport \"../schemes/ContributionRewardExt.sol\";\nimport \"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\n\n\ncontract Redeemer {\n using SafeMath for uint;\n\n /**\n * @dev helper to redeem rewards for a proposal\n * It calls execute on the proposal if it is not yet executed.\n * It tries to redeem reputation and stake from the GenesisProtocol.\n * It tries to redeem proposal rewards from the contribution rewards scheme.\n * This function does not emit events.\n * A client should listen to GenesisProtocol and ContributionReward redemption events\n * to monitor redemption operations.\n * @param _contributionReward contributionReward\n * @param _genesisProtocol genesisProtocol\n * @param _proposalId the ID of the voting in the voting machine\n * @param _avatar address of the controller\n * @param _beneficiary beneficiary\n * @return gpRewards array\n * gpRewards[0] - stakerTokenAmount\n * gpRewards[1] - voterReputationAmount\n * gpRewards[2] - proposerReputationAmount\n * @return gpDaoBountyReward array\n * gpDaoBountyReward[0] - staker dao bounty reward -\n * will be zero for the case there is not enough tokens in avatar for the reward.\n * gpDaoBountyReward[1] - staker potential dao bounty reward.\n * @return executed bool true or false\n * @return winningVote\n * 1 - executed or closed and the winning vote is YES\n * 2 - executed or closed and the winning vote is NO\n * @return int256 crReputationReward Reputation - from ContributionReward\n * @return int256 crNativeTokenReward NativeTokenReward - from ContributionReward\n * @return int256 crEthReward Ether - from ContributionReward\n * @return int256 crExternalTokenReward ExternalToken - from ContributionReward\n */\n function redeem(ContributionReward _contributionReward,\n GenesisProtocol _genesisProtocol,\n bytes32 _proposalId,\n Avatar _avatar,\n address _beneficiary)\n external\n returns(uint[3] memory gpRewards,\n uint[2] memory gpDaoBountyReward,\n bool executed,\n uint256 winningVote,\n int256 crReputationReward,\n uint256 crNativeTokenReward,\n uint256 crEthReward,\n uint256 crExternalTokenReward)\n {\n bool callContributionReward;\n (gpRewards, gpDaoBountyReward, executed, winningVote, callContributionReward) =\n genesisProtocolRedeem(_genesisProtocol, _proposalId, _beneficiary);\n if (callContributionReward) {\n //redeem from contributionReward only if it executed\n if (_contributionReward.getProposalExecutionTime(_proposalId, address(_avatar)) > 0) {\n (crReputationReward, crNativeTokenReward, crEthReward, crExternalTokenReward) =\n contributionRewardRedeem(_contributionReward, _proposalId, _avatar);\n }\n }\n }\n\n /**\n * @dev helper to redeem rewards for a proposal\n * It calls execute on the proposal if it is not yet executed.\n * It tries to redeem reputation and stake from the GenesisProtocol.\n * It tries to redeem proposal rewards from the contribution rewards scheme.\n * This function does not emit events.\n * A client should listen to GenesisProtocol and ContributionReward redemption events\n * to monitor redemption operations.\n * @param _contributionRewardExt contributionRewardExt\n * @param _genesisProtocol genesisProtocol\n * @param _proposalId the ID of the voting in the voting machine\n * @param _beneficiary beneficiary\n * @return gpRewards array\n * gpRewards[0] - stakerTokenAmount\n * gpRewards[1] - voterReputationAmount\n * gpRewards[2] - proposerReputationAmount\n * @return gpDaoBountyReward array\n * gpDaoBountyReward[0] - staker dao bounty reward -\n * will be zero for the case there is not enough tokens in avatar for the reward.\n * gpDaoBountyReward[1] - staker potential dao bounty reward.\n * @return executed bool true or false\n * @return winningVote\n * 1 - executed or closed and the winning vote is YES\n * 2 - executed or closed and the winning vote is NO\n * @return int256 crReputationReward Reputation - from ContributionReward\n * @return int256 crNativeTokenReward NativeTokenReward - from ContributionReward\n * @return int256 crEthReward Ether - from ContributionReward\n * @return int256 crExternalTokenReward ExternalToken - from ContributionReward\n */\n function redeemFromCRExt(ContributionRewardExt _contributionRewardExt,\n GenesisProtocol _genesisProtocol,\n bytes32 _proposalId,\n address _beneficiary)\n external\n returns(uint[3] memory gpRewards,\n uint[2] memory gpDaoBountyReward,\n bool executed,\n uint256 winningVote,\n int256 crReputationReward,\n uint256 crNativeTokenReward,\n uint256 crEthReward,\n uint256 crExternalTokenReward)\n {\n bool callContributionReward;\n (gpRewards, gpDaoBountyReward, executed, winningVote, callContributionReward) =\n genesisProtocolRedeem(_genesisProtocol, _proposalId, _beneficiary);\n if (callContributionReward) {\n //redeem from contributionReward only if it executed\n if (_contributionRewardExt.getProposalAcceptedByVotingMachine(_proposalId)) {\n (crReputationReward, crNativeTokenReward, crEthReward, crExternalTokenReward) =\n contributionRewardExtRedeem(_contributionRewardExt, _proposalId);\n }\n }\n }\n\n function genesisProtocolRedeem(GenesisProtocol _genesisProtocol,\n bytes32 _proposalId,\n address _beneficiary)\n private\n returns(uint[3] memory gpRewards,\n uint[2] memory gpDaoBountyReward,\n bool executed,\n uint256 winningVote,\n bool callContributionReward) {\n GenesisProtocol.ProposalState pState = _genesisProtocol.state(_proposalId);\n\n if ((pState == GenesisProtocolLogic.ProposalState.Queued)||\n (pState == GenesisProtocolLogic.ProposalState.PreBoosted)||\n (pState == GenesisProtocolLogic.ProposalState.Boosted)||\n (pState == GenesisProtocolLogic.ProposalState.QuietEndingPeriod)) {\n executed = _genesisProtocol.execute(_proposalId);\n }\n pState = _genesisProtocol.state(_proposalId);\n if ((pState == GenesisProtocolLogic.ProposalState.Executed) ||\n (pState == GenesisProtocolLogic.ProposalState.ExpiredInQueue)) {\n gpRewards = _genesisProtocol.redeem(_proposalId, _beneficiary);\n if (pState == GenesisProtocolLogic.ProposalState.Executed) {\n (gpDaoBountyReward[0], gpDaoBountyReward[1]) =\n _genesisProtocol.redeemDaoBounty(_proposalId, _beneficiary);\n }\n winningVote = _genesisProtocol.winningVote(_proposalId);\n callContributionReward = true;\n }\n }\n\n function contributionRewardRedeem(ContributionReward _contributionReward, bytes32 _proposalId, Avatar _avatar)\n private\n returns (int256 reputation, uint256 nativeToken, uint256 eth, uint256 externalToken)\n {\n bool[4] memory whatToRedeem;\n whatToRedeem[0] = true; //reputation\n whatToRedeem[1] = true; //nativeToken\n uint256 periodsToPay = _contributionReward.getPeriodsToPay(_proposalId, address(_avatar), 2);\n uint256 ethReward = _contributionReward.getProposalEthReward(_proposalId, address(_avatar));\n uint256 externalTokenReward = _contributionReward.getProposalExternalTokenReward(_proposalId, address(_avatar));\n address externalTokenAddress = _contributionReward.getProposalExternalToken(_proposalId, address(_avatar));\n ethReward = periodsToPay.mul(ethReward);\n if ((ethReward == 0) || (address(_avatar).balance < ethReward)) {\n whatToRedeem[2] = false;\n } else {\n whatToRedeem[2] = true;\n }\n periodsToPay = _contributionReward.getPeriodsToPay(_proposalId, address(_avatar), 3);\n externalTokenReward = periodsToPay.mul(externalTokenReward);\n if ((externalTokenReward == 0) ||\n (IERC20(externalTokenAddress).balanceOf(address(_avatar)) < externalTokenReward)) {\n whatToRedeem[3] = false;\n } else {\n whatToRedeem[3] = true;\n }\n (reputation, nativeToken, eth, externalToken) = _contributionReward.redeem(_proposalId, _avatar, whatToRedeem);\n }\n\n function contributionRewardExtRedeem(ContributionRewardExt _contributionRewardExt, bytes32 _proposalId)\n private\n returns (int256 reputation, uint256 nativeToken, uint256 eth, uint256 externalToken)\n {\n bool[4] memory whatToRedeem;\n whatToRedeem[0] = true; //reputation\n whatToRedeem[1] = true; //nativeToken\n uint256 ethReward = _contributionRewardExt.getProposalEthReward(_proposalId);\n uint256 externalTokenReward = _contributionRewardExt.getProposalExternalTokenReward(_proposalId);\n address externalTokenAddress = _contributionRewardExt.getProposalExternalToken(_proposalId);\n if ((ethReward == 0) || (address(_contributionRewardExt.avatar()).balance < ethReward)) {\n whatToRedeem[2] = false;\n } else {\n whatToRedeem[2] = true;\n }\n if ((externalTokenReward == 0) ||\n (IERC20(externalTokenAddress).balanceOf(address(_contributionRewardExt.avatar())) < externalTokenReward)) {\n whatToRedeem[3] = false;\n } else {\n whatToRedeem[3] = true;\n }\n (reputation, nativeToken, eth, externalToken) = _contributionRewardExt.redeem(_proposalId, whatToRedeem);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/utils/Redeemer.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/Redeemer.sol","exportedSymbols":{"Redeemer":[14234]},"id":14235,"nodeType":"SourceUnit","nodes":[{"id":13649,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:48"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol","file":"../universalSchemes/ContributionReward.sol","id":13650,"nodeType":"ImportDirective","scope":14235,"sourceUnit":10910,"src":"25:52:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","file":"../schemes/ContributionRewardExt.sol","id":13651,"nodeType":"ImportDirective","scope":14235,"sourceUnit":6294,"src":"78:46:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","id":13652,"nodeType":"ImportDirective","scope":14235,"sourceUnit":17112,"src":"125:70:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":13653,"nodeType":"ImportDirective","scope":14235,"sourceUnit":21018,"src":"196:64:48","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":14234,"linearizedBaseContracts":[14234],"name":"Redeemer","nodeType":"ContractDefinition","nodes":[{"id":13656,"libraryName":{"contractScope":null,"id":13654,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"293:8:48","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"287:24:48","typeName":{"id":13655,"name":"uint","nodeType":"ElementaryTypeName","src":"306:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"body":{"id":13731,"nodeType":"Block","src":"2572:615:48","statements":[{"assignments":[13690],"declarations":[{"constant":false,"id":13690,"name":"callContributionReward","nodeType":"VariableDeclaration","scope":13731,"src":"2582:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13689,"name":"bool","nodeType":"ElementaryTypeName","src":"2582:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":13691,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2582:27:48"},{"expression":{"argumentTypes":null,"id":13703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13692,"name":"gpRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13671,"src":"2620:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},{"argumentTypes":null,"id":13693,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13675,"src":"2631:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"argumentTypes":null,"id":13694,"name":"executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13677,"src":"2650:8:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":13695,"name":"winningVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13679,"src":"2660:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13696,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"2673:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13697,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2619:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13699,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13660,"src":"2729:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},{"argumentTypes":null,"id":13700,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13662,"src":"2747:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13701,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13666,"src":"2760:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13698,"name":"genesisProtocolRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13931,"src":"2707:21:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_GenesisProtocol_$17111_$_t_bytes32_$_t_address_$returns$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"function (contract GenesisProtocol,bytes32,address) returns (uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"id":13702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2707:66:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"src":"2619:154:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13704,"nodeType":"ExpressionStatement","src":"2619:154:48"},{"condition":{"argumentTypes":null,"id":13705,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"2787:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13730,"nodeType":"IfStatement","src":"2783:398:48","trueBody":{"id":13729,"nodeType":"Block","src":"2811:370:48","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13708,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13662,"src":"2939:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13710,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13664,"src":"2960:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2952:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13706,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"2894:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExecutionTime","nodeType":"MemberAccess","referencedDeclaration":10752,"src":"2894:44:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view external returns (uint256)"}},"id":13712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:75:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":13713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2972:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2894:79:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13728,"nodeType":"IfStatement","src":"2890:281:48","trueBody":{"id":13727,"nodeType":"Block","src":"2975:196:48","statements":[{"expression":{"argumentTypes":null,"id":13725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13715,"name":"crReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13681,"src":"2994:18:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":13716,"name":"crNativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13683,"src":"3014:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13717,"name":"crEthReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13685,"src":"3035:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13718,"name":"crExternalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13687,"src":"3048:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13719,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2993:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13721,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"3114:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},{"argumentTypes":null,"id":13722,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13662,"src":"3135:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13723,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13664,"src":"3148:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13720,"name":"contributionRewardRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"3089:24:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ContributionReward_$10909_$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (contract ContributionReward,bytes32,contract Avatar) returns (int256,uint256,uint256,uint256)"}},"id":13724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:67:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"2993:163:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13726,"nodeType":"ExpressionStatement","src":"2993:163:48"}]}}]}}]},"documentation":"@dev helper to redeem rewards for a proposal\nIt calls execute on the proposal if it is not yet executed.\nIt tries to redeem reputation and stake from the GenesisProtocol.\nIt tries to redeem proposal rewards from the contribution rewards scheme.\nThis function does not emit events.\nA client should listen to GenesisProtocol and ContributionReward redemption events\nto monitor redemption operations.\n@param _contributionReward contributionReward\n@param _genesisProtocol genesisProtocol\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _beneficiary beneficiary\n@return gpRewards array\n gpRewards[0] - stakerTokenAmount\n gpRewards[1] - voterReputationAmount\n gpRewards[2] - proposerReputationAmount\n@return gpDaoBountyReward array\n gpDaoBountyReward[0] - staker dao bounty reward -\n will be zero for the case there is not enough tokens in avatar for the reward.\n gpDaoBountyReward[1] - staker potential dao bounty reward.\n@return executed bool true or false\n@return winningVote\n 1 - executed or closed and the winning vote is YES\n 2 - executed or closed and the winning vote is NO\n@return int256 crReputationReward Reputation - from ContributionReward\n@return int256 crNativeTokenReward NativeTokenReward - from ContributionReward\n@return int256 crEthReward Ether - from ContributionReward\n@return int256 crExternalTokenReward ExternalToken - from ContributionReward","id":13732,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":13667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13658,"name":"_contributionReward","nodeType":"VariableDeclaration","scope":13732,"src":"2042:38:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"},"typeName":{"contractScope":null,"id":13657,"name":"ContributionReward","nodeType":"UserDefinedTypeName","referencedDeclaration":10909,"src":"2042:18:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"value":null,"visibility":"internal"},{"constant":false,"id":13660,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":13732,"src":"2102:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":13659,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"2102:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"},{"constant":false,"id":13662,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13732,"src":"2156:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2156:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13664,"name":"_avatar","nodeType":"VariableDeclaration","scope":13732,"src":"2197:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13663,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2197:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13666,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":13732,"src":"2233:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13665,"name":"address","nodeType":"ElementaryTypeName","src":"2233:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2041:213:48"},"returnParameters":{"id":13688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13671,"name":"gpRewards","nodeType":"VariableDeclaration","scope":13732,"src":"2280:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":13668,"name":"uint","nodeType":"ElementaryTypeName","src":"2280:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13670,"length":{"argumentTypes":null,"hexValue":"33","id":13669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"2280:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13675,"name":"gpDaoBountyReward","nodeType":"VariableDeclaration","scope":13732,"src":"2318:32:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":13672,"name":"uint","nodeType":"ElementaryTypeName","src":"2318:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13674,"length":{"argumentTypes":null,"hexValue":"32","id":13673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2323:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"2318:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13677,"name":"executed","nodeType":"VariableDeclaration","scope":13732,"src":"2364:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13676,"name":"bool","nodeType":"ElementaryTypeName","src":"2364:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":13679,"name":"winningVote","nodeType":"VariableDeclaration","scope":13732,"src":"2391:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13678,"name":"uint256","nodeType":"ElementaryTypeName","src":"2391:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13681,"name":"crReputationReward","nodeType":"VariableDeclaration","scope":13732,"src":"2424:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13680,"name":"int256","nodeType":"ElementaryTypeName","src":"2424:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13683,"name":"crNativeTokenReward","nodeType":"VariableDeclaration","scope":13732,"src":"2463:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13682,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13685,"name":"crEthReward","nodeType":"VariableDeclaration","scope":13732,"src":"2504:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13684,"name":"uint256","nodeType":"ElementaryTypeName","src":"2504:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13687,"name":"crExternalTokenReward","nodeType":"VariableDeclaration","scope":13732,"src":"2537:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13686,"name":"uint256","nodeType":"ElementaryTypeName","src":"2537:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2279:288:48"},"scope":14234,"src":"2026:1161:48","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":13799,"nodeType":"Block","src":"5475:606:48","statements":[{"assignments":[13764],"declarations":[{"constant":false,"id":13764,"name":"callContributionReward","nodeType":"VariableDeclaration","scope":13799,"src":"5485:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13763,"name":"bool","nodeType":"ElementaryTypeName","src":"5485:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":13765,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5485:27:48"},{"expression":{"argumentTypes":null,"id":13777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13766,"name":"gpRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13745,"src":"5523:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},{"argumentTypes":null,"id":13767,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13749,"src":"5534:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"argumentTypes":null,"id":13768,"name":"executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13751,"src":"5553:8:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":13769,"name":"winningVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13753,"src":"5563:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13770,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"5576:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13771,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5522:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13773,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13736,"src":"5632:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},{"argumentTypes":null,"id":13774,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13738,"src":"5650:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13775,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13740,"src":"5663:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13772,"name":"genesisProtocolRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13931,"src":"5610:21:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_GenesisProtocol_$17111_$_t_bytes32_$_t_address_$returns$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"function (contract GenesisProtocol,bytes32,address) returns (uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"id":13776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5610:66:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"src":"5522:154:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13778,"nodeType":"ExpressionStatement","src":"5522:154:48"},{"condition":{"argumentTypes":null,"id":13779,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"5690:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13798,"nodeType":"IfStatement","src":"5686:389:48","trueBody":{"id":13797,"nodeType":"Block","src":"5714:361:48","statements":[{"condition":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13782,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13738,"src":"5858:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13780,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"5800:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":13781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalAcceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":6292,"src":"5800:57:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":13783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5800:70:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13796,"nodeType":"IfStatement","src":"5796:269:48","trueBody":{"id":13795,"nodeType":"Block","src":"5872:193:48","statements":[{"expression":{"argumentTypes":null,"id":13793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13784,"name":"crReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13755,"src":"5891:18:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":13785,"name":"crNativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13757,"src":"5911:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13786,"name":"crEthReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13759,"src":"5932:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13787,"name":"crExternalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13761,"src":"5945:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13788,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5890:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13790,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"6014:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},{"argumentTypes":null,"id":13791,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13738,"src":"6038:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13789,"name":"contributionRewardExtRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14233,"src":"5986:27:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ContributionRewardExt_$6293_$_t_bytes32_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (contract ContributionRewardExt,bytes32) returns (int256,uint256,uint256,uint256)"}},"id":13792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5986:64:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"5890:160:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13794,"nodeType":"ExpressionStatement","src":"5890:160:48"}]}}]}}]},"documentation":"@dev helper to redeem rewards for a proposal\nIt calls execute on the proposal if it is not yet executed.\nIt tries to redeem reputation and stake from the GenesisProtocol.\nIt tries to redeem proposal rewards from the contribution rewards scheme.\nThis function does not emit events.\nA client should listen to GenesisProtocol and ContributionReward redemption events\nto monitor redemption operations.\n@param _contributionRewardExt contributionRewardExt\n@param _genesisProtocol genesisProtocol\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary beneficiary\n@return gpRewards array\n gpRewards[0] - stakerTokenAmount\n gpRewards[1] - voterReputationAmount\n gpRewards[2] - proposerReputationAmount\n@return gpDaoBountyReward array\n gpDaoBountyReward[0] - staker dao bounty reward -\n will be zero for the case there is not enough tokens in avatar for the reward.\n gpDaoBountyReward[1] - staker potential dao bounty reward.\n@return executed bool true or false\n@return winningVote\n 1 - executed or closed and the winning vote is YES\n 2 - executed or closed and the winning vote is NO\n@return int256 crReputationReward Reputation - from ContributionReward\n@return int256 crNativeTokenReward NativeTokenReward - from ContributionReward\n@return int256 crEthReward Ether - from ContributionReward\n@return int256 crExternalTokenReward ExternalToken - from ContributionReward","id":13800,"implemented":true,"kind":"function","modifiers":[],"name":"redeemFromCRExt","nodeType":"FunctionDefinition","parameters":{"id":13741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13734,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":13800,"src":"4915:44:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"},"typeName":{"contractScope":null,"id":13733,"name":"ContributionRewardExt","nodeType":"UserDefinedTypeName","referencedDeclaration":6293,"src":"4915:21:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"value":null,"visibility":"internal"},{"constant":false,"id":13736,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":13800,"src":"4989:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":13735,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"4989:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"},{"constant":false,"id":13738,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13800,"src":"5051:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5051:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13740,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":13800,"src":"5100:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13739,"name":"address","nodeType":"ElementaryTypeName","src":"5100:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"4914:207:48"},"returnParameters":{"id":13762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13745,"name":"gpRewards","nodeType":"VariableDeclaration","scope":13800,"src":"5155:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":13742,"name":"uint","nodeType":"ElementaryTypeName","src":"5155:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13744,"length":{"argumentTypes":null,"hexValue":"33","id":13743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5160:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"5155:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13749,"name":"gpDaoBountyReward","nodeType":"VariableDeclaration","scope":13800,"src":"5197:32:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":13746,"name":"uint","nodeType":"ElementaryTypeName","src":"5197:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13748,"length":{"argumentTypes":null,"hexValue":"32","id":13747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5202:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"5197:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13751,"name":"executed","nodeType":"VariableDeclaration","scope":13800,"src":"5247:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13750,"name":"bool","nodeType":"ElementaryTypeName","src":"5247:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":13753,"name":"winningVote","nodeType":"VariableDeclaration","scope":13800,"src":"5278:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13752,"name":"uint256","nodeType":"ElementaryTypeName","src":"5278:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13755,"name":"crReputationReward","nodeType":"VariableDeclaration","scope":13800,"src":"5315:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13754,"name":"int256","nodeType":"ElementaryTypeName","src":"5315:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13757,"name":"crNativeTokenReward","nodeType":"VariableDeclaration","scope":13800,"src":"5358:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13756,"name":"uint256","nodeType":"ElementaryTypeName","src":"5358:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13759,"name":"crEthReward","nodeType":"VariableDeclaration","scope":13800,"src":"5403:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13758,"name":"uint256","nodeType":"ElementaryTypeName","src":"5403:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13761,"name":"crExternalTokenReward","nodeType":"VariableDeclaration","scope":13800,"src":"5440:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13760,"name":"uint256","nodeType":"ElementaryTypeName","src":"5440:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5154:316:48"},"scope":14234,"src":"4890:1191:48","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":13930,"nodeType":"Block","src":"6464:1080:48","statements":[{"assignments":[13826],"declarations":[{"constant":false,"id":13826,"name":"pState","nodeType":"VariableDeclaration","scope":13930,"src":"6474:36:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":13825,"name":"GenesisProtocol.ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"6474:29:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"id":13831,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13829,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"6536:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13827,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"6513:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17078,"src":"6513:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_enum$_ProposalState_$17147_$","typeString":"function (bytes32) view external returns (enum GenesisProtocolLogic.ProposalState)"}},"id":13830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6513:35:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"6474:74:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13832,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6564:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13833,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6574:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6574:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6574:41:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6564:51:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13837,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6563:53:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13838,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6632:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13839,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6642:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6642:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6642:45:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6632:55:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13843,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6631:57:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6563:125:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13845,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6704:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13846,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6714:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6714:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6714:42:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6704:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13850,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6703:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6563:194:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13852,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6773:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13853,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6783:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6783:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6783:52:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6773:62:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6772:64:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6563:273:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13867,"nodeType":"IfStatement","src":"6559:352:48","trueBody":{"id":13866,"nodeType":"Block","src":"6838:73:48","statements":[{"expression":{"argumentTypes":null,"id":13864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13859,"name":"executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13817,"src":"6852:8:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13862,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"6888:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13860,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"6863:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":16872,"src":"6863:24:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":13863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6863:37:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6852:48:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13865,"nodeType":"ExpressionStatement","src":"6852:48:48"}]}},{"expression":{"argumentTypes":null,"id":13873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13868,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6920:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13871,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"6952:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13869,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"6929:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17078,"src":"6929:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_enum$_ProposalState_$17147_$","typeString":"function (bytes32) view external returns (enum GenesisProtocolLogic.ProposalState)"}},"id":13872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6929:35:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6920:44:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":13874,"nodeType":"ExpressionStatement","src":"6920:44:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13875,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6979:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13876,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6989:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6989:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6989:43:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6979:53:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13880,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6978:55:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13881,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"7050:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13882,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"7060:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"7060:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7060:49:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"7050:59:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7049:61:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6978:132:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13929,"nodeType":"IfStatement","src":"6974:564:48","trueBody":{"id":13928,"nodeType":"Block","src":"7112:426:48","statements":[{"expression":{"argumentTypes":null,"id":13894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13888,"name":"gpRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13811,"src":"7126:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13891,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"7162:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13892,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13806,"src":"7175:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":13889,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"7138:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":18315,"src":"7138:23:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_array$_t_uint256_$3_memory_ptr_$","typeString":"function (bytes32,address) external returns (uint256[3] memory)"}},"id":13893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7138:50:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"src":"7126:62:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":13895,"nodeType":"ExpressionStatement","src":"7126:62:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13896,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"7206:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13897,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"7216:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"7216:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7216:43:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"7206:53:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13916,"nodeType":"IfStatement","src":"7202:214:48","trueBody":{"id":13915,"nodeType":"Block","src":"7261:155:48","statements":[{"expression":{"argumentTypes":null,"id":13913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13901,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"7280:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":13903,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":13902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7298:1:48","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":"7280:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13904,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"7302:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":13906,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":13905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:1:48","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":"7302:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13907,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7279:44:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13910,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"7375:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13911,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13806,"src":"7388:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":13908,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"7342:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemDaoBounty","nodeType":"MemberAccess","referencedDeclaration":18453,"src":"7342:32:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,address) external returns (uint256,uint256)"}},"id":13912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7342:59:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"7279:122:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13914,"nodeType":"ExpressionStatement","src":"7279:122:48"}]}},{"expression":{"argumentTypes":null,"id":13922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13917,"name":"winningVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13819,"src":"7429:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13920,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"7472:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13918,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"7443:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17065,"src":"7443:28:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":13921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7443:41:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7429:55:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13923,"nodeType":"ExpressionStatement","src":"7429:55:48"},{"expression":{"argumentTypes":null,"id":13926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13924,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13821,"src":"7498:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7523:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7498:29:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13927,"nodeType":"ExpressionStatement","src":"7498:29:48"}]}}]},"documentation":null,"id":13931,"implemented":true,"kind":"function","modifiers":[],"name":"genesisProtocolRedeem","nodeType":"FunctionDefinition","parameters":{"id":13807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13802,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":13931,"src":"6118:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":13801,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"6118:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"},{"constant":false,"id":13804,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13931,"src":"6188:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6188:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13806,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":13931,"src":"6245:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13805,"name":"address","nodeType":"ElementaryTypeName","src":"6245:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6117:149:48"},"returnParameters":{"id":13822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13811,"name":"gpRewards","nodeType":"VariableDeclaration","scope":13931,"src":"6291:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":13808,"name":"uint","nodeType":"ElementaryTypeName","src":"6291:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13810,"length":{"argumentTypes":null,"hexValue":"33","id":13809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6296:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"6291:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13815,"name":"gpDaoBountyReward","nodeType":"VariableDeclaration","scope":13931,"src":"6329:32:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":13812,"name":"uint","nodeType":"ElementaryTypeName","src":"6329:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13814,"length":{"argumentTypes":null,"hexValue":"32","id":13813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6334:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"6329:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13817,"name":"executed","nodeType":"VariableDeclaration","scope":13931,"src":"6375:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13816,"name":"bool","nodeType":"ElementaryTypeName","src":"6375:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":13819,"name":"winningVote","nodeType":"VariableDeclaration","scope":13931,"src":"6402:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13818,"name":"uint256","nodeType":"ElementaryTypeName","src":"6402:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13821,"name":"callContributionReward","nodeType":"VariableDeclaration","scope":13931,"src":"6435:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13820,"name":"bool","nodeType":"ElementaryTypeName","src":"6435:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6290:173:48"},"scope":14234,"src":"6087:1457:48","stateMutability":"nonpayable","superFunction":null,"visibility":"private"},{"body":{"id":14103,"nodeType":"Block","src":"7766:1319:48","statements":[{"assignments":[13952],"declarations":[{"constant":false,"id":13952,"name":"whatToRedeem","nodeType":"VariableDeclaration","scope":14103,"src":"7776:27:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":13950,"name":"bool","nodeType":"ElementaryTypeName","src":"7776:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13951,"length":{"argumentTypes":null,"hexValue":"34","id":13949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7781:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"7776:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"id":13953,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"7776:27:48"},{"expression":{"argumentTypes":null,"id":13958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13954,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"7813:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":13956,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":13955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7826:1:48","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":"7813:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7831:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7813:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13959,"nodeType":"ExpressionStatement","src":"7813:22:48"},{"expression":{"argumentTypes":null,"id":13964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13960,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"7858:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":13962,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":13961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7871:1:48","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":"7858:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7876:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7858:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13965,"nodeType":"ExpressionStatement","src":"7858:22:48"},{"assignments":[13967],"declarations":[{"constant":false,"id":13967,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":14103,"src":"7904:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13966,"name":"uint256","nodeType":"ElementaryTypeName","src":"7904:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13976,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13970,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"7963:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13972,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"7984:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7976:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7976:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"32","id":13974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7994:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"argumentTypes":null,"id":13968,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"7927:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPeriodsToPay","nodeType":"MemberAccess","referencedDeclaration":10661,"src":"7927:35:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view external returns (uint256)"}},"id":13975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7927:69:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7904:92:48"},{"assignments":[13978],"declarations":[{"constant":false,"id":13978,"name":"ethReward","nodeType":"VariableDeclaration","scope":14103,"src":"8006:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13977,"name":"uint256","nodeType":"ElementaryTypeName","src":"8006:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13986,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13981,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8067:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13983,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8088:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8080:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8080:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13979,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8026:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalEthReward","nodeType":"MemberAccess","referencedDeclaration":10699,"src":"8026:40:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view external returns (uint256)"}},"id":13985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8026:71:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8006:91:48"},{"assignments":[13988],"declarations":[{"constant":false,"id":13988,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":14103,"src":"8107:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13987,"name":"uint256","nodeType":"ElementaryTypeName","src":"8107:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13996,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13991,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8188:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13993,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8209:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8201:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8201:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13989,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8137:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalTokenReward","nodeType":"MemberAccess","referencedDeclaration":10716,"src":"8137:50:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view external returns (uint256)"}},"id":13995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8137:81:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8107:111:48"},{"assignments":[13998],"declarations":[{"constant":false,"id":13998,"name":"externalTokenAddress","nodeType":"VariableDeclaration","scope":14103,"src":"8228:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13997,"name":"address","nodeType":"ElementaryTypeName","src":"8228:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":14006,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14001,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8304:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14003,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8325:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8317:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8317:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13999,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8259:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":14000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalToken","nodeType":"MemberAccess","referencedDeclaration":10735,"src":"8259:44:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,address) view external returns (address)"}},"id":14005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8259:75:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8228:106:48"},{"expression":{"argumentTypes":null,"id":14012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14007,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8344:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14010,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8373:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":14008,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"8356:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"8356:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8356:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8344:39:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14013,"nodeType":"ExpressionStatement","src":"8344:39:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14014,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8398:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8411:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8398:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8397:16:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14019,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8426:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8418:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8418:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":14021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8418:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14022,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8445:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8418:36:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8417:38:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8397:58:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14039,"nodeType":"Block","src":"8511:47:48","statements":[{"expression":{"argumentTypes":null,"id":14037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14033,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8525:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14035,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8538:1:48","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":"8525:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8543:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8525:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14038,"nodeType":"ExpressionStatement","src":"8525:22:48"}]},"id":14040,"nodeType":"IfStatement","src":"8393:165:48","trueBody":{"id":14032,"nodeType":"Block","src":"8457:48:48","statements":[{"expression":{"argumentTypes":null,"id":14030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14026,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8471:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14028,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8484:1:48","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":"8471:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8489:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8471:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14031,"nodeType":"ExpressionStatement","src":"8471:23:48"}]}},{"expression":{"argumentTypes":null,"id":14050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14041,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"8567:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14044,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8618:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14046,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8639:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8631:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8631:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"33","id":14048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8649:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"argumentTypes":null,"id":14042,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8582:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":14043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPeriodsToPay","nodeType":"MemberAccess","referencedDeclaration":10661,"src":"8582:35:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view external returns (uint256)"}},"id":14049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8582:69:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8567:84:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14051,"nodeType":"ExpressionStatement","src":"8567:84:48"},{"expression":{"argumentTypes":null,"id":14057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14052,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8661:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14055,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8700:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":14053,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"8683:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"8683:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8683:37:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8661:59:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14058,"nodeType":"ExpressionStatement","src":"8661:59:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14059,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8735:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8758:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8735:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8734:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14068,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8824:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8816:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8816:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14064,"name":"externalTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"8784:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14063,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"8777:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":14065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8777:28:48","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"8777:38:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8777:56:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14071,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8836:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8777:78:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8776:80:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8734:122:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14088,"nodeType":"Block","src":"8912:47:48","statements":[{"expression":{"argumentTypes":null,"id":14086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14082,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8926:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14084,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8939:1:48","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":"8926:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8944:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8926:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14087,"nodeType":"ExpressionStatement","src":"8926:22:48"}]},"id":14089,"nodeType":"IfStatement","src":"8730:229:48","trueBody":{"id":14081,"nodeType":"Block","src":"8858:48:48","statements":[{"expression":{"argumentTypes":null,"id":14079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14075,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8872:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14077,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8885:1:48","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":"8872:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8890:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8872:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14080,"nodeType":"ExpressionStatement","src":"8872:23:48"}]}},{"expression":{"argumentTypes":null,"id":14101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":14090,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13940,"src":"8969:10:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":14091,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13942,"src":"8981:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14092,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13944,"src":"8994:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14093,"name":"externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13946,"src":"8999:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14094,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8968:45:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14097,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"9043:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":14098,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"9056:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":14099,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"9065:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}],"expression":{"argumentTypes":null,"id":14095,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"9016:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":14096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":10565,"src":"9016:26:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$_t_array$_t_bool_$4_memory_ptr_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,contract Avatar,bool[4] memory) external returns (int256,uint256,uint256,uint256)"}},"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9016:62:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"8968:110:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14102,"nodeType":"ExpressionStatement","src":"8968:110:48"}]},"documentation":null,"id":14104,"implemented":true,"kind":"function","modifiers":[],"name":"contributionRewardRedeem","nodeType":"FunctionDefinition","parameters":{"id":13938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13933,"name":"_contributionReward","nodeType":"VariableDeclaration","scope":14104,"src":"7584:38:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"},"typeName":{"contractScope":null,"id":13932,"name":"ContributionReward","nodeType":"UserDefinedTypeName","referencedDeclaration":10909,"src":"7584:18:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"value":null,"visibility":"internal"},{"constant":false,"id":13935,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14104,"src":"7624:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13934,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7624:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13937,"name":"_avatar","nodeType":"VariableDeclaration","scope":14104,"src":"7645:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13936,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"7645:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"7583:77:48"},"returnParameters":{"id":13947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13940,"name":"reputation","nodeType":"VariableDeclaration","scope":14104,"src":"7686:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13939,"name":"int256","nodeType":"ElementaryTypeName","src":"7686:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13942,"name":"nativeToken","nodeType":"VariableDeclaration","scope":14104,"src":"7705:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13941,"name":"uint256","nodeType":"ElementaryTypeName","src":"7705:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13944,"name":"eth","nodeType":"VariableDeclaration","scope":14104,"src":"7726:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13943,"name":"uint256","nodeType":"ElementaryTypeName","src":"7726:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13946,"name":"externalToken","nodeType":"VariableDeclaration","scope":14104,"src":"7739:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13945,"name":"uint256","nodeType":"ElementaryTypeName","src":"7739:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7685:76:48"},"scope":14234,"src":"7550:1535:48","stateMutability":"nonpayable","superFunction":null,"visibility":"private"},{"body":{"id":14232,"nodeType":"Block","src":"9300:1002:48","statements":[{"assignments":[14123],"declarations":[{"constant":false,"id":14123,"name":"whatToRedeem","nodeType":"VariableDeclaration","scope":14232,"src":"9310:27:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":14121,"name":"bool","nodeType":"ElementaryTypeName","src":"9310:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14122,"length":{"argumentTypes":null,"hexValue":"34","id":14120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9315:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"9310:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"id":14124,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"9310:27:48"},{"expression":{"argumentTypes":null,"id":14129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14125,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9347:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14127,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9360:1:48","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":"9347:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9365:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9347:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14130,"nodeType":"ExpressionStatement","src":"9347:22:48"},{"expression":{"argumentTypes":null,"id":14135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14131,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9392:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14133,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":14132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9405:1:48","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":"9392:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9410:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9392:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14136,"nodeType":"ExpressionStatement","src":"9392:22:48"},{"assignments":[14138],"declarations":[{"constant":false,"id":14138,"name":"ethReward","nodeType":"VariableDeclaration","scope":14232,"src":"9438:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14137,"name":"uint256","nodeType":"ElementaryTypeName","src":"9438:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14143,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14141,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"9502:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":14139,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9458:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalEthReward","nodeType":"MemberAccess","referencedDeclaration":6225,"src":"9458:43:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":14142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9458:56:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9438:76:48"},{"assignments":[14145],"declarations":[{"constant":false,"id":14145,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":14232,"src":"9524:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14144,"name":"uint256","nodeType":"ElementaryTypeName","src":"9524:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14150,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14148,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"9608:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":14146,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9554:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalTokenReward","nodeType":"MemberAccess","referencedDeclaration":6238,"src":"9554:53:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9554:66:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9524:96:48"},{"assignments":[14152],"declarations":[{"constant":false,"id":14152,"name":"externalTokenAddress","nodeType":"VariableDeclaration","scope":14232,"src":"9630:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14151,"name":"address","nodeType":"ElementaryTypeName","src":"9630:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":14157,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14155,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"9709:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":14153,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9661:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalToken","nodeType":"MemberAccess","referencedDeclaration":6253,"src":"9661:47:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":14156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9661:60:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9630:91:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14158,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14138,"src":"9736:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9749:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9736:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14161,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9735:16:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14163,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9764:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"9764:29:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":14165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:31:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9756:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9756:40:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":14167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9756:48:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14168,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14138,"src":"9807:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9756:60:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14170,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9755:62:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9735:82:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14185,"nodeType":"Block","src":"9873:47:48","statements":[{"expression":{"argumentTypes":null,"id":14183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14179,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9887:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14181,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9900:1:48","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":"9887:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9905:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9887:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14184,"nodeType":"ExpressionStatement","src":"9887:22:48"}]},"id":14186,"nodeType":"IfStatement","src":"9731:189:48","trueBody":{"id":14178,"nodeType":"Block","src":"9819:48:48","statements":[{"expression":{"argumentTypes":null,"id":14176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14172,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9833:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14174,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9846:1:48","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":"9833:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9851:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"9833:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14177,"nodeType":"ExpressionStatement","src":"9833:23:48"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14187,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"9934:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9934:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9933:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14196,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"10023:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"10023:29:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10023:31:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10015:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10015:40:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14192,"name":"externalTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"9983:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14191,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"9976:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":14193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9976:28:48","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":14194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"9976:38:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9976:80:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14201,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"10059:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9976:102:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9975:104:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9933:146:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14218,"nodeType":"Block","src":"10135:47:48","statements":[{"expression":{"argumentTypes":null,"id":14216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14212,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"10149:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14214,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10162:1:48","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":"10149:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10167:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10149:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14217,"nodeType":"ExpressionStatement","src":"10149:22:48"}]},"id":14219,"nodeType":"IfStatement","src":"9929:253:48","trueBody":{"id":14211,"nodeType":"Block","src":"10081:48:48","statements":[{"expression":{"argumentTypes":null,"id":14209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14205,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"10095:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14207,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10108:1:48","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":"10095:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10113:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"10095:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14210,"nodeType":"ExpressionStatement","src":"10095:23:48"}]}},{"expression":{"argumentTypes":null,"id":14230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":14220,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"10192:10:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":14221,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14113,"src":"10204:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14222,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14115,"src":"10217:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14223,"name":"externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14117,"src":"10222:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14224,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10191:45:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14227,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"10269:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":14228,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"10282:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}],"expression":{"argumentTypes":null,"id":14225,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"10239:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":6212,"src":"10239:29:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_array$_t_bool_$4_memory_ptr_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,bool[4] memory) external returns (int256,uint256,uint256,uint256)"}},"id":14229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10239:56:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"10191:104:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14231,"nodeType":"ExpressionStatement","src":"10191:104:48"}]},"documentation":null,"id":14233,"implemented":true,"kind":"function","modifiers":[],"name":"contributionRewardExtRedeem","nodeType":"FunctionDefinition","parameters":{"id":14109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14106,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":14233,"src":"9128:44:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"},"typeName":{"contractScope":null,"id":14105,"name":"ContributionRewardExt","nodeType":"UserDefinedTypeName","referencedDeclaration":6293,"src":"9128:21:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"value":null,"visibility":"internal"},{"constant":false,"id":14108,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14233,"src":"9174:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9174:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9127:67:48"},"returnParameters":{"id":14118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14111,"name":"reputation","nodeType":"VariableDeclaration","scope":14233,"src":"9220:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14110,"name":"int256","nodeType":"ElementaryTypeName","src":"9220:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14113,"name":"nativeToken","nodeType":"VariableDeclaration","scope":14233,"src":"9239:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9239:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14115,"name":"eth","nodeType":"VariableDeclaration","scope":14233,"src":"9260:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9260:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14117,"name":"externalToken","nodeType":"VariableDeclaration","scope":14233,"src":"9273:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14116,"name":"uint256","nodeType":"ElementaryTypeName","src":"9273:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9219:76:48"},"scope":14234,"src":"9091:1211:48","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":14235,"src":"263:10041:48"}],"src":"0:10305:48"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/Redeemer.sol","exportedSymbols":{"Redeemer":[14234]},"id":14235,"nodeType":"SourceUnit","nodes":[{"id":13649,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:48"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/ContributionReward.sol","file":"../universalSchemes/ContributionReward.sol","id":13650,"nodeType":"ImportDirective","scope":14235,"sourceUnit":10910,"src":"25:52:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ContributionRewardExt.sol","file":"../schemes/ContributionRewardExt.sol","id":13651,"nodeType":"ImportDirective","scope":14235,"sourceUnit":6294,"src":"78:46:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","id":13652,"nodeType":"ImportDirective","scope":14235,"sourceUnit":17112,"src":"125:70:48","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":13653,"nodeType":"ImportDirective","scope":14235,"sourceUnit":21018,"src":"196:64:48","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":14234,"linearizedBaseContracts":[14234],"name":"Redeemer","nodeType":"ContractDefinition","nodes":[{"id":13656,"libraryName":{"contractScope":null,"id":13654,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"293:8:48","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"287:24:48","typeName":{"id":13655,"name":"uint","nodeType":"ElementaryTypeName","src":"306:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"body":{"id":13731,"nodeType":"Block","src":"2572:615:48","statements":[{"assignments":[13690],"declarations":[{"constant":false,"id":13690,"name":"callContributionReward","nodeType":"VariableDeclaration","scope":13731,"src":"2582:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13689,"name":"bool","nodeType":"ElementaryTypeName","src":"2582:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":13691,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2582:27:48"},{"expression":{"argumentTypes":null,"id":13703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13692,"name":"gpRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13671,"src":"2620:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},{"argumentTypes":null,"id":13693,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13675,"src":"2631:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"argumentTypes":null,"id":13694,"name":"executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13677,"src":"2650:8:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":13695,"name":"winningVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13679,"src":"2660:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13696,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"2673:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13697,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2619:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13699,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13660,"src":"2729:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},{"argumentTypes":null,"id":13700,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13662,"src":"2747:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13701,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13666,"src":"2760:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13698,"name":"genesisProtocolRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13931,"src":"2707:21:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_GenesisProtocol_$17111_$_t_bytes32_$_t_address_$returns$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"function (contract GenesisProtocol,bytes32,address) returns (uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"id":13702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2707:66:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"src":"2619:154:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13704,"nodeType":"ExpressionStatement","src":"2619:154:48"},{"condition":{"argumentTypes":null,"id":13705,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13690,"src":"2787:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13730,"nodeType":"IfStatement","src":"2783:398:48","trueBody":{"id":13729,"nodeType":"Block","src":"2811:370:48","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13708,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13662,"src":"2939:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13710,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13664,"src":"2960:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13709,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2952:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2952:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13706,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"2894:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExecutionTime","nodeType":"MemberAccess","referencedDeclaration":10752,"src":"2894:44:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view external returns (uint256)"}},"id":13712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2894:75:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":13713,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2972:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2894:79:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13728,"nodeType":"IfStatement","src":"2890:281:48","trueBody":{"id":13727,"nodeType":"Block","src":"2975:196:48","statements":[{"expression":{"argumentTypes":null,"id":13725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13715,"name":"crReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13681,"src":"2994:18:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":13716,"name":"crNativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13683,"src":"3014:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13717,"name":"crEthReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13685,"src":"3035:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13718,"name":"crExternalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13687,"src":"3048:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13719,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2993:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13721,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13658,"src":"3114:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},{"argumentTypes":null,"id":13722,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13662,"src":"3135:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13723,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13664,"src":"3148:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13720,"name":"contributionRewardRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14104,"src":"3089:24:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ContributionReward_$10909_$_t_bytes32_$_t_contract$_Avatar_$337_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (contract ContributionReward,bytes32,contract Avatar) returns (int256,uint256,uint256,uint256)"}},"id":13724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3089:67:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"2993:163:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13726,"nodeType":"ExpressionStatement","src":"2993:163:48"}]}}]}}]},"documentation":"@dev helper to redeem rewards for a proposal\nIt calls execute on the proposal if it is not yet executed.\nIt tries to redeem reputation and stake from the GenesisProtocol.\nIt tries to redeem proposal rewards from the contribution rewards scheme.\nThis function does not emit events.\nA client should listen to GenesisProtocol and ContributionReward redemption events\nto monitor redemption operations.\n@param _contributionReward contributionReward\n@param _genesisProtocol genesisProtocol\n@param _proposalId the ID of the voting in the voting machine\n@param _avatar address of the controller\n@param _beneficiary beneficiary\n@return gpRewards array\n gpRewards[0] - stakerTokenAmount\n gpRewards[1] - voterReputationAmount\n gpRewards[2] - proposerReputationAmount\n@return gpDaoBountyReward array\n gpDaoBountyReward[0] - staker dao bounty reward -\n will be zero for the case there is not enough tokens in avatar for the reward.\n gpDaoBountyReward[1] - staker potential dao bounty reward.\n@return executed bool true or false\n@return winningVote\n 1 - executed or closed and the winning vote is YES\n 2 - executed or closed and the winning vote is NO\n@return int256 crReputationReward Reputation - from ContributionReward\n@return int256 crNativeTokenReward NativeTokenReward - from ContributionReward\n@return int256 crEthReward Ether - from ContributionReward\n@return int256 crExternalTokenReward ExternalToken - from ContributionReward","id":13732,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":13667,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13658,"name":"_contributionReward","nodeType":"VariableDeclaration","scope":13732,"src":"2042:38:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"},"typeName":{"contractScope":null,"id":13657,"name":"ContributionReward","nodeType":"UserDefinedTypeName","referencedDeclaration":10909,"src":"2042:18:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"value":null,"visibility":"internal"},{"constant":false,"id":13660,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":13732,"src":"2102:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":13659,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"2102:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"},{"constant":false,"id":13662,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13732,"src":"2156:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13661,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2156:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13664,"name":"_avatar","nodeType":"VariableDeclaration","scope":13732,"src":"2197:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13663,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2197:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13666,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":13732,"src":"2233:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13665,"name":"address","nodeType":"ElementaryTypeName","src":"2233:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2041:213:48"},"returnParameters":{"id":13688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13671,"name":"gpRewards","nodeType":"VariableDeclaration","scope":13732,"src":"2280:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":13668,"name":"uint","nodeType":"ElementaryTypeName","src":"2280:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13670,"length":{"argumentTypes":null,"hexValue":"33","id":13669,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2285:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"2280:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13675,"name":"gpDaoBountyReward","nodeType":"VariableDeclaration","scope":13732,"src":"2318:32:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":13672,"name":"uint","nodeType":"ElementaryTypeName","src":"2318:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13674,"length":{"argumentTypes":null,"hexValue":"32","id":13673,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2323:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"2318:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13677,"name":"executed","nodeType":"VariableDeclaration","scope":13732,"src":"2364:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13676,"name":"bool","nodeType":"ElementaryTypeName","src":"2364:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":13679,"name":"winningVote","nodeType":"VariableDeclaration","scope":13732,"src":"2391:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13678,"name":"uint256","nodeType":"ElementaryTypeName","src":"2391:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13681,"name":"crReputationReward","nodeType":"VariableDeclaration","scope":13732,"src":"2424:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13680,"name":"int256","nodeType":"ElementaryTypeName","src":"2424:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13683,"name":"crNativeTokenReward","nodeType":"VariableDeclaration","scope":13732,"src":"2463:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13682,"name":"uint256","nodeType":"ElementaryTypeName","src":"2463:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13685,"name":"crEthReward","nodeType":"VariableDeclaration","scope":13732,"src":"2504:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13684,"name":"uint256","nodeType":"ElementaryTypeName","src":"2504:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13687,"name":"crExternalTokenReward","nodeType":"VariableDeclaration","scope":13732,"src":"2537:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13686,"name":"uint256","nodeType":"ElementaryTypeName","src":"2537:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2279:288:48"},"scope":14234,"src":"2026:1161:48","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":13799,"nodeType":"Block","src":"5475:606:48","statements":[{"assignments":[13764],"declarations":[{"constant":false,"id":13764,"name":"callContributionReward","nodeType":"VariableDeclaration","scope":13799,"src":"5485:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13763,"name":"bool","nodeType":"ElementaryTypeName","src":"5485:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":13765,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"5485:27:48"},{"expression":{"argumentTypes":null,"id":13777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13766,"name":"gpRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13745,"src":"5523:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},{"argumentTypes":null,"id":13767,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13749,"src":"5534:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},{"argumentTypes":null,"id":13768,"name":"executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13751,"src":"5553:8:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":13769,"name":"winningVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13753,"src":"5563:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13770,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"5576:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13771,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5522:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13773,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13736,"src":"5632:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},{"argumentTypes":null,"id":13774,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13738,"src":"5650:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13775,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13740,"src":"5663:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":13772,"name":"genesisProtocolRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13931,"src":"5610:21:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_GenesisProtocol_$17111_$_t_bytes32_$_t_address_$returns$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"function (contract GenesisProtocol,bytes32,address) returns (uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"id":13776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5610:66:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_array$_t_uint256_$3_memory_ptr_$_t_array$_t_uint256_$2_memory_ptr_$_t_bool_$_t_uint256_$_t_bool_$","typeString":"tuple(uint256[3] memory,uint256[2] memory,bool,uint256,bool)"}},"src":"5522:154:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13778,"nodeType":"ExpressionStatement","src":"5522:154:48"},{"condition":{"argumentTypes":null,"id":13779,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13764,"src":"5690:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13798,"nodeType":"IfStatement","src":"5686:389:48","trueBody":{"id":13797,"nodeType":"Block","src":"5714:361:48","statements":[{"condition":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13782,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13738,"src":"5858:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13780,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"5800:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":13781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalAcceptedByVotingMachine","nodeType":"MemberAccess","referencedDeclaration":6292,"src":"5800:57:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) view external returns (bool)"}},"id":13783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5800:70:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13796,"nodeType":"IfStatement","src":"5796:269:48","trueBody":{"id":13795,"nodeType":"Block","src":"5872:193:48","statements":[{"expression":{"argumentTypes":null,"id":13793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13784,"name":"crReputationReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13755,"src":"5891:18:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":13785,"name":"crNativeTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13757,"src":"5911:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13786,"name":"crEthReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13759,"src":"5932:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13787,"name":"crExternalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13761,"src":"5945:21:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13788,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"5890:77:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13790,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13734,"src":"6014:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},{"argumentTypes":null,"id":13791,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13738,"src":"6038:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13789,"name":"contributionRewardExtRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14233,"src":"5986:27:48","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_ContributionRewardExt_$6293_$_t_bytes32_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (contract ContributionRewardExt,bytes32) returns (int256,uint256,uint256,uint256)"}},"id":13792,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5986:64:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"5890:160:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13794,"nodeType":"ExpressionStatement","src":"5890:160:48"}]}}]}}]},"documentation":"@dev helper to redeem rewards for a proposal\nIt calls execute on the proposal if it is not yet executed.\nIt tries to redeem reputation and stake from the GenesisProtocol.\nIt tries to redeem proposal rewards from the contribution rewards scheme.\nThis function does not emit events.\nA client should listen to GenesisProtocol and ContributionReward redemption events\nto monitor redemption operations.\n@param _contributionRewardExt contributionRewardExt\n@param _genesisProtocol genesisProtocol\n@param _proposalId the ID of the voting in the voting machine\n@param _beneficiary beneficiary\n@return gpRewards array\n gpRewards[0] - stakerTokenAmount\n gpRewards[1] - voterReputationAmount\n gpRewards[2] - proposerReputationAmount\n@return gpDaoBountyReward array\n gpDaoBountyReward[0] - staker dao bounty reward -\n will be zero for the case there is not enough tokens in avatar for the reward.\n gpDaoBountyReward[1] - staker potential dao bounty reward.\n@return executed bool true or false\n@return winningVote\n 1 - executed or closed and the winning vote is YES\n 2 - executed or closed and the winning vote is NO\n@return int256 crReputationReward Reputation - from ContributionReward\n@return int256 crNativeTokenReward NativeTokenReward - from ContributionReward\n@return int256 crEthReward Ether - from ContributionReward\n@return int256 crExternalTokenReward ExternalToken - from ContributionReward","id":13800,"implemented":true,"kind":"function","modifiers":[],"name":"redeemFromCRExt","nodeType":"FunctionDefinition","parameters":{"id":13741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13734,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":13800,"src":"4915:44:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"},"typeName":{"contractScope":null,"id":13733,"name":"ContributionRewardExt","nodeType":"UserDefinedTypeName","referencedDeclaration":6293,"src":"4915:21:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"value":null,"visibility":"internal"},{"constant":false,"id":13736,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":13800,"src":"4989:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":13735,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"4989:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"},{"constant":false,"id":13738,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13800,"src":"5051:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13737,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5051:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13740,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":13800,"src":"5100:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13739,"name":"address","nodeType":"ElementaryTypeName","src":"5100:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"4914:207:48"},"returnParameters":{"id":13762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13745,"name":"gpRewards","nodeType":"VariableDeclaration","scope":13800,"src":"5155:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":13742,"name":"uint","nodeType":"ElementaryTypeName","src":"5155:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13744,"length":{"argumentTypes":null,"hexValue":"33","id":13743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5160:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"5155:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13749,"name":"gpDaoBountyReward","nodeType":"VariableDeclaration","scope":13800,"src":"5197:32:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":13746,"name":"uint","nodeType":"ElementaryTypeName","src":"5197:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13748,"length":{"argumentTypes":null,"hexValue":"32","id":13747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5202:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"5197:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13751,"name":"executed","nodeType":"VariableDeclaration","scope":13800,"src":"5247:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13750,"name":"bool","nodeType":"ElementaryTypeName","src":"5247:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":13753,"name":"winningVote","nodeType":"VariableDeclaration","scope":13800,"src":"5278:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13752,"name":"uint256","nodeType":"ElementaryTypeName","src":"5278:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13755,"name":"crReputationReward","nodeType":"VariableDeclaration","scope":13800,"src":"5315:25:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13754,"name":"int256","nodeType":"ElementaryTypeName","src":"5315:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13757,"name":"crNativeTokenReward","nodeType":"VariableDeclaration","scope":13800,"src":"5358:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13756,"name":"uint256","nodeType":"ElementaryTypeName","src":"5358:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13759,"name":"crEthReward","nodeType":"VariableDeclaration","scope":13800,"src":"5403:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13758,"name":"uint256","nodeType":"ElementaryTypeName","src":"5403:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13761,"name":"crExternalTokenReward","nodeType":"VariableDeclaration","scope":13800,"src":"5440:29:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13760,"name":"uint256","nodeType":"ElementaryTypeName","src":"5440:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5154:316:48"},"scope":14234,"src":"4890:1191:48","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":13930,"nodeType":"Block","src":"6464:1080:48","statements":[{"assignments":[13826],"declarations":[{"constant":false,"id":13826,"name":"pState","nodeType":"VariableDeclaration","scope":13930,"src":"6474:36:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"typeName":{"contractScope":null,"id":13825,"name":"GenesisProtocol.ProposalState","nodeType":"UserDefinedTypeName","referencedDeclaration":17147,"src":"6474:29:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"value":null,"visibility":"internal"}],"id":13831,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13829,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"6536:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13827,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"6513:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17078,"src":"6513:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_enum$_ProposalState_$17147_$","typeString":"function (bytes32) view external returns (enum GenesisProtocolLogic.ProposalState)"}},"id":13830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6513:35:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"VariableDeclarationStatement","src":"6474:74:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13832,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6564:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13833,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6574:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6574:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Queued","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6574:41:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6564:51:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13837,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6563:53:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13838,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6632:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13839,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6642:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6642:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13841,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"PreBoosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6642:45:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6632:55:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13843,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6631:57:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6563:125:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13845,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6704:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13846,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6714:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6714:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Boosted","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6714:42:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6704:52:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13850,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6703:54:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6563:194:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13852,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6773:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13853,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6783:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6783:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13855,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"QuietEndingPeriod","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6783:52:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6773:62:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13857,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6772:64:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6563:273:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13867,"nodeType":"IfStatement","src":"6559:352:48","trueBody":{"id":13866,"nodeType":"Block","src":"6838:73:48","statements":[{"expression":{"argumentTypes":null,"id":13864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13859,"name":"executed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13817,"src":"6852:8:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13862,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"6888:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13860,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"6863:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"execute","nodeType":"MemberAccess","referencedDeclaration":16872,"src":"6863:24:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$returns$_t_bool_$","typeString":"function (bytes32) external returns (bool)"}},"id":13863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6863:37:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6852:48:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13865,"nodeType":"ExpressionStatement","src":"6852:48:48"}]}},{"expression":{"argumentTypes":null,"id":13873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13868,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6920:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13871,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"6952:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13869,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"6929:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"state","nodeType":"MemberAccess","referencedDeclaration":17078,"src":"6929:22:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_enum$_ProposalState_$17147_$","typeString":"function (bytes32) view external returns (enum GenesisProtocolLogic.ProposalState)"}},"id":13872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6929:35:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6920:44:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"id":13874,"nodeType":"ExpressionStatement","src":"6920:44:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13887,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13879,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13875,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"6979:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13876,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"6989:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"6989:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13878,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6989:43:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"6979:53:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13880,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6978:55:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13881,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"7050:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13882,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"7060:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"7060:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"ExpiredInQueue","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7060:49:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"7050:59:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":13886,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7049:61:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6978:132:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13929,"nodeType":"IfStatement","src":"6974:564:48","trueBody":{"id":13928,"nodeType":"Block","src":"7112:426:48","statements":[{"expression":{"argumentTypes":null,"id":13894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13888,"name":"gpRewards","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13811,"src":"7126:9:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13891,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"7162:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13892,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13806,"src":"7175:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":13889,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"7138:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":18315,"src":"7138:23:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_array$_t_uint256_$3_memory_ptr_$","typeString":"function (bytes32,address) external returns (uint256[3] memory)"}},"id":13893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7138:50:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"src":"7126:62:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3] memory"}},"id":13895,"nodeType":"ExpressionStatement","src":"7126:62:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"},"id":13900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13896,"name":"pState","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13826,"src":"7206:6:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13897,"name":"GenesisProtocolLogic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19681,"src":"7216:20:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GenesisProtocolLogic_$19681_$","typeString":"type(contract GenesisProtocolLogic)"}},"id":13898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"ProposalState","nodeType":"MemberAccess","referencedDeclaration":17147,"src":"7216:34:48","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalState_$17147_$","typeString":"type(enum GenesisProtocolLogic.ProposalState)"}},"id":13899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7216:43:48","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalState_$17147","typeString":"enum GenesisProtocolLogic.ProposalState"}},"src":"7206:53:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13916,"nodeType":"IfStatement","src":"7202:214:48","trueBody":{"id":13915,"nodeType":"Block","src":"7261:155:48","statements":[{"expression":{"argumentTypes":null,"id":13913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13901,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"7280:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":13903,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":13902,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7298:1:48","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":"7280:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13904,"name":"gpDaoBountyReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13815,"src":"7302:17:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2] memory"}},"id":13906,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":13905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7320:1:48","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":"7302:20:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":13907,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"7279:44:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13910,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"7375:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13911,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13806,"src":"7388:12:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":13908,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"7342:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeemDaoBounty","nodeType":"MemberAccess","referencedDeclaration":18453,"src":"7342:32:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_address_$returns$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,address) external returns (uint256,uint256)"}},"id":13912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7342:59:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"src":"7279:122:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13914,"nodeType":"ExpressionStatement","src":"7279:122:48"}]}},{"expression":{"argumentTypes":null,"id":13922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13917,"name":"winningVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13819,"src":"7429:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13920,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13804,"src":"7472:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13918,"name":"_genesisProtocol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13802,"src":"7443:16:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"id":13919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"winningVote","nodeType":"MemberAccess","referencedDeclaration":17065,"src":"7443:28:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":13921,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7443:41:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7429:55:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13923,"nodeType":"ExpressionStatement","src":"7429:55:48"},{"expression":{"argumentTypes":null,"id":13926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":13924,"name":"callContributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13821,"src":"7498:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7523:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7498:29:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13927,"nodeType":"ExpressionStatement","src":"7498:29:48"}]}}]},"documentation":null,"id":13931,"implemented":true,"kind":"function","modifiers":[],"name":"genesisProtocolRedeem","nodeType":"FunctionDefinition","parameters":{"id":13807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13802,"name":"_genesisProtocol","nodeType":"VariableDeclaration","scope":13931,"src":"6118:32:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"},"typeName":{"contractScope":null,"id":13801,"name":"GenesisProtocol","nodeType":"UserDefinedTypeName","referencedDeclaration":17111,"src":"6118:15:48","typeDescriptions":{"typeIdentifier":"t_contract$_GenesisProtocol_$17111","typeString":"contract GenesisProtocol"}},"value":null,"visibility":"internal"},{"constant":false,"id":13804,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13931,"src":"6188:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13803,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6188:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13806,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":13931,"src":"6245:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13805,"name":"address","nodeType":"ElementaryTypeName","src":"6245:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"6117:149:48"},"returnParameters":{"id":13822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13811,"name":"gpRewards","nodeType":"VariableDeclaration","scope":13931,"src":"6291:24:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_memory_ptr","typeString":"uint256[3]"},"typeName":{"baseType":{"id":13808,"name":"uint","nodeType":"ElementaryTypeName","src":"6291:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13810,"length":{"argumentTypes":null,"hexValue":"33","id":13809,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6296:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"},"nodeType":"ArrayTypeName","src":"6291:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$3_storage_ptr","typeString":"uint256[3]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13815,"name":"gpDaoBountyReward","nodeType":"VariableDeclaration","scope":13931,"src":"6329:32:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_memory_ptr","typeString":"uint256[2]"},"typeName":{"baseType":{"id":13812,"name":"uint","nodeType":"ElementaryTypeName","src":"6329:4:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":13814,"length":{"argumentTypes":null,"hexValue":"32","id":13813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6334:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"ArrayTypeName","src":"6329:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$2_storage_ptr","typeString":"uint256[2]"}},"value":null,"visibility":"internal"},{"constant":false,"id":13817,"name":"executed","nodeType":"VariableDeclaration","scope":13931,"src":"6375:13:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13816,"name":"bool","nodeType":"ElementaryTypeName","src":"6375:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":13819,"name":"winningVote","nodeType":"VariableDeclaration","scope":13931,"src":"6402:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13818,"name":"uint256","nodeType":"ElementaryTypeName","src":"6402:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13821,"name":"callContributionReward","nodeType":"VariableDeclaration","scope":13931,"src":"6435:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13820,"name":"bool","nodeType":"ElementaryTypeName","src":"6435:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"6290:173:48"},"scope":14234,"src":"6087:1457:48","stateMutability":"nonpayable","superFunction":null,"visibility":"private"},{"body":{"id":14103,"nodeType":"Block","src":"7766:1319:48","statements":[{"assignments":[13952],"declarations":[{"constant":false,"id":13952,"name":"whatToRedeem","nodeType":"VariableDeclaration","scope":14103,"src":"7776:27:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":13950,"name":"bool","nodeType":"ElementaryTypeName","src":"7776:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13951,"length":{"argumentTypes":null,"hexValue":"34","id":13949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7781:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"7776:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"id":13953,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"7776:27:48"},{"expression":{"argumentTypes":null,"id":13958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13954,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"7813:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":13956,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":13955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7826:1:48","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":"7813:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7831:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7813:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13959,"nodeType":"ExpressionStatement","src":"7813:22:48"},{"expression":{"argumentTypes":null,"id":13964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13960,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"7858:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":13962,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":13961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7871:1:48","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":"7858:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":13963,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"7876:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"7858:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":13965,"nodeType":"ExpressionStatement","src":"7858:22:48"},{"assignments":[13967],"declarations":[{"constant":false,"id":13967,"name":"periodsToPay","nodeType":"VariableDeclaration","scope":14103,"src":"7904:20:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13966,"name":"uint256","nodeType":"ElementaryTypeName","src":"7904:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13976,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13970,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"7963:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13972,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"7984:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13971,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7976:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7976:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"32","id":13974,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7994:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"expression":{"argumentTypes":null,"id":13968,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"7927:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPeriodsToPay","nodeType":"MemberAccess","referencedDeclaration":10661,"src":"7927:35:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view external returns (uint256)"}},"id":13975,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7927:69:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7904:92:48"},{"assignments":[13978],"declarations":[{"constant":false,"id":13978,"name":"ethReward","nodeType":"VariableDeclaration","scope":14103,"src":"8006:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13977,"name":"uint256","nodeType":"ElementaryTypeName","src":"8006:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13986,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13981,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8067:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13983,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8088:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13982,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8080:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8080:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13979,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8026:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalEthReward","nodeType":"MemberAccess","referencedDeclaration":10699,"src":"8026:40:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view external returns (uint256)"}},"id":13985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8026:71:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8006:91:48"},{"assignments":[13988],"declarations":[{"constant":false,"id":13988,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":14103,"src":"8107:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13987,"name":"uint256","nodeType":"ElementaryTypeName","src":"8107:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13996,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13991,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8188:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13993,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8209:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13992,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8201:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8201:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13989,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8137:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":13990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalTokenReward","nodeType":"MemberAccess","referencedDeclaration":10716,"src":"8137:50:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_uint256_$","typeString":"function (bytes32,address) view external returns (uint256)"}},"id":13995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8137:81:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8107:111:48"},{"assignments":[13998],"declarations":[{"constant":false,"id":13998,"name":"externalTokenAddress","nodeType":"VariableDeclaration","scope":14103,"src":"8228:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13997,"name":"address","nodeType":"ElementaryTypeName","src":"8228:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":14006,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14001,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8304:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14003,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8325:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14002,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8317:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14004,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8317:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13999,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8259:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":14000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalToken","nodeType":"MemberAccess","referencedDeclaration":10735,"src":"8259:44:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_address_$","typeString":"function (bytes32,address) view external returns (address)"}},"id":14005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8259:75:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8228:106:48"},{"expression":{"argumentTypes":null,"id":14012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14007,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8344:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14010,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8373:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":14008,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"8356:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"8356:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8356:27:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8344:39:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14013,"nodeType":"ExpressionStatement","src":"8344:39:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14025,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14014,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8398:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14015,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8411:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8398:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8397:16:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14023,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14019,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8426:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8418:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8418:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":14021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"8418:24:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14022,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13978,"src":"8445:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8418:36:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8417:38:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8397:58:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14039,"nodeType":"Block","src":"8511:47:48","statements":[{"expression":{"argumentTypes":null,"id":14037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14033,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8525:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14035,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8538:1:48","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":"8525:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8543:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8525:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14038,"nodeType":"ExpressionStatement","src":"8525:22:48"}]},"id":14040,"nodeType":"IfStatement","src":"8393:165:48","trueBody":{"id":14032,"nodeType":"Block","src":"8457:48:48","statements":[{"expression":{"argumentTypes":null,"id":14030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14026,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8471:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14028,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14027,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8484:1:48","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":"8471:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8489:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8471:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14031,"nodeType":"ExpressionStatement","src":"8471:23:48"}]}},{"expression":{"argumentTypes":null,"id":14050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14041,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"8567:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14044,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"8618:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14046,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8639:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8631:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8631:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"hexValue":"33","id":14048,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8649:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"},"value":"3"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_rational_3_by_1","typeString":"int_const 3"}],"expression":{"argumentTypes":null,"id":14042,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"8582:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":14043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getPeriodsToPay","nodeType":"MemberAccess","referencedDeclaration":10661,"src":"8582:35:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (bytes32,address,uint256) view external returns (uint256)"}},"id":14049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8582:69:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8567:84:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14051,"nodeType":"ExpressionStatement","src":"8567:84:48"},{"expression":{"argumentTypes":null,"id":14057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14052,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8661:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14055,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8700:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":14053,"name":"periodsToPay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13967,"src":"8683:12:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mul","nodeType":"MemberAccess","referencedDeclaration":20312,"src":"8683:16:48","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":14056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8683:37:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8661:59:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14058,"nodeType":"ExpressionStatement","src":"8661:59:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14059,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8735:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8758:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8735:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14062,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8734:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14072,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14068,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"8824:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8816:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8816:16:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14064,"name":"externalTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13998,"src":"8784:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14063,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"8777:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":14065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8777:28:48","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":14066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"8777:38:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"8777:56:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14071,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13988,"src":"8836:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8777:78:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14073,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"8776:80:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8734:122:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14088,"nodeType":"Block","src":"8912:47:48","statements":[{"expression":{"argumentTypes":null,"id":14086,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14082,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8926:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14084,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14083,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8939:1:48","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":"8926:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14085,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8944:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"8926:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14087,"nodeType":"ExpressionStatement","src":"8926:22:48"}]},"id":14089,"nodeType":"IfStatement","src":"8730:229:48","trueBody":{"id":14081,"nodeType":"Block","src":"8858:48:48","statements":[{"expression":{"argumentTypes":null,"id":14079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14075,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"8872:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14077,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14076,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8885:1:48","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":"8872:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14078,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"8890:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"8872:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14080,"nodeType":"ExpressionStatement","src":"8872:23:48"}]}},{"expression":{"argumentTypes":null,"id":14101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":14090,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13940,"src":"8969:10:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":14091,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13942,"src":"8981:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14092,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13944,"src":"8994:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14093,"name":"externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13946,"src":"8999:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14094,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"8968:45:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14097,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13935,"src":"9043:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":14098,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13937,"src":"9056:7:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":14099,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13952,"src":"9065:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}],"expression":{"argumentTypes":null,"id":14095,"name":"_contributionReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13933,"src":"9016:19:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"id":14096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":10565,"src":"9016:26:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_contract$_Avatar_$337_$_t_array$_t_bool_$4_memory_ptr_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,contract Avatar,bool[4] memory) external returns (int256,uint256,uint256,uint256)"}},"id":14100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9016:62:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"8968:110:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14102,"nodeType":"ExpressionStatement","src":"8968:110:48"}]},"documentation":null,"id":14104,"implemented":true,"kind":"function","modifiers":[],"name":"contributionRewardRedeem","nodeType":"FunctionDefinition","parameters":{"id":13938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13933,"name":"_contributionReward","nodeType":"VariableDeclaration","scope":14104,"src":"7584:38:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"},"typeName":{"contractScope":null,"id":13932,"name":"ContributionReward","nodeType":"UserDefinedTypeName","referencedDeclaration":10909,"src":"7584:18:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionReward_$10909","typeString":"contract ContributionReward"}},"value":null,"visibility":"internal"},{"constant":false,"id":13935,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14104,"src":"7624:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13934,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7624:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13937,"name":"_avatar","nodeType":"VariableDeclaration","scope":14104,"src":"7645:14:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13936,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"7645:6:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"7583:77:48"},"returnParameters":{"id":13947,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13940,"name":"reputation","nodeType":"VariableDeclaration","scope":14104,"src":"7686:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13939,"name":"int256","nodeType":"ElementaryTypeName","src":"7686:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13942,"name":"nativeToken","nodeType":"VariableDeclaration","scope":14104,"src":"7705:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13941,"name":"uint256","nodeType":"ElementaryTypeName","src":"7705:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13944,"name":"eth","nodeType":"VariableDeclaration","scope":14104,"src":"7726:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13943,"name":"uint256","nodeType":"ElementaryTypeName","src":"7726:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13946,"name":"externalToken","nodeType":"VariableDeclaration","scope":14104,"src":"7739:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13945,"name":"uint256","nodeType":"ElementaryTypeName","src":"7739:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"7685:76:48"},"scope":14234,"src":"7550:1535:48","stateMutability":"nonpayable","superFunction":null,"visibility":"private"},{"body":{"id":14232,"nodeType":"Block","src":"9300:1002:48","statements":[{"assignments":[14123],"declarations":[{"constant":false,"id":14123,"name":"whatToRedeem","nodeType":"VariableDeclaration","scope":14232,"src":"9310:27:48","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4]"},"typeName":{"baseType":{"id":14121,"name":"bool","nodeType":"ElementaryTypeName","src":"9310:4:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14122,"length":{"argumentTypes":null,"hexValue":"34","id":14120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9315:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"nodeType":"ArrayTypeName","src":"9310:7:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_storage_ptr","typeString":"bool[4]"}},"value":null,"visibility":"internal"}],"id":14124,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"9310:27:48"},{"expression":{"argumentTypes":null,"id":14129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14125,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9347:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14127,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14126,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9360:1:48","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":"9347:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9365:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9347:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14130,"nodeType":"ExpressionStatement","src":"9347:22:48"},{"expression":{"argumentTypes":null,"id":14135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14131,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9392:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14133,"indexExpression":{"argumentTypes":null,"hexValue":"31","id":14132,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9405:1:48","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":"9392:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14134,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9410:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9392:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14136,"nodeType":"ExpressionStatement","src":"9392:22:48"},{"assignments":[14138],"declarations":[{"constant":false,"id":14138,"name":"ethReward","nodeType":"VariableDeclaration","scope":14232,"src":"9438:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14137,"name":"uint256","nodeType":"ElementaryTypeName","src":"9438:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14143,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14141,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"9502:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":14139,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9458:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalEthReward","nodeType":"MemberAccess","referencedDeclaration":6225,"src":"9458:43:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":14142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9458:56:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9438:76:48"},{"assignments":[14145],"declarations":[{"constant":false,"id":14145,"name":"externalTokenReward","nodeType":"VariableDeclaration","scope":14232,"src":"9524:27:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14144,"name":"uint256","nodeType":"ElementaryTypeName","src":"9524:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14150,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14148,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"9608:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":14146,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9554:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalTokenReward","nodeType":"MemberAccess","referencedDeclaration":6238,"src":"9554:53:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":14149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9554:66:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9524:96:48"},{"assignments":[14152],"declarations":[{"constant":false,"id":14152,"name":"externalTokenAddress","nodeType":"VariableDeclaration","scope":14232,"src":"9630:28:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14151,"name":"address","nodeType":"ElementaryTypeName","src":"9630:7:48","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":14157,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14155,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"9709:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":14153,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9661:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getProposalExternalToken","nodeType":"MemberAccess","referencedDeclaration":6253,"src":"9661:47:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32) view external returns (address)"}},"id":14156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9661:60:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"9630:91:48"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14158,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14138,"src":"9736:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9749:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9736:14:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14161,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9735:16:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14163,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"9764:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"9764:29:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":14165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9764:31:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9756:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9756:40:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":14167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"9756:48:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14168,"name":"ethReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14138,"src":"9807:9:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9756:60:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14170,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9755:62:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9735:82:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14185,"nodeType":"Block","src":"9873:47:48","statements":[{"expression":{"argumentTypes":null,"id":14183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14179,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9887:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14181,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9900:1:48","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":"9887:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9905:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"9887:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14184,"nodeType":"ExpressionStatement","src":"9887:22:48"}]},"id":14186,"nodeType":"IfStatement","src":"9731:189:48","trueBody":{"id":14178,"nodeType":"Block","src":"9819:48:48","statements":[{"expression":{"argumentTypes":null,"id":14176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14172,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"9833:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14174,"indexExpression":{"argumentTypes":null,"hexValue":"32","id":14173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9846:1:48","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":"9833:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14175,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9851:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"9833:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14177,"nodeType":"ExpressionStatement","src":"9833:23:48"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14187,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"9934:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9934:24:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14190,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9933:26:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14196,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"10023:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":5271,"src":"10023:29:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Avatar_$337_$","typeString":"function () view external returns (contract Avatar)"}},"id":14198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10023:31:48","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10015:7:48","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10015:40:48","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14192,"name":"externalTokenAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14152,"src":"9983:20:48","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14191,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"9976:6:48","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":14193,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9976:28:48","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":14194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"9976:38:48","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"9976:80:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14201,"name":"externalTokenReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14145,"src":"10059:19:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9976:102:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14203,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"9975:104:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9933:146:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14218,"nodeType":"Block","src":"10135:47:48","statements":[{"expression":{"argumentTypes":null,"id":14216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14212,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"10149:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14214,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10162:1:48","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":"10149:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10167:4:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"10149:22:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14217,"nodeType":"ExpressionStatement","src":"10149:22:48"}]},"id":14219,"nodeType":"IfStatement","src":"9929:253:48","trueBody":{"id":14211,"nodeType":"Block","src":"10081:48:48","statements":[{"expression":{"argumentTypes":null,"id":14209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14205,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"10095:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}},"id":14207,"indexExpression":{"argumentTypes":null,"hexValue":"33","id":14206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10108:1:48","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":"10095:15:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"66616c7365","id":14208,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"10113:5:48","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"10095:23:48","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14210,"nodeType":"ExpressionStatement","src":"10095:23:48"}]}},{"expression":{"argumentTypes":null,"id":14230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":14220,"name":"reputation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14111,"src":"10192:10:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":14221,"name":"nativeToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14113,"src":"10204:11:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14222,"name":"eth","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14115,"src":"10217:3:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14223,"name":"externalToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14117,"src":"10222:13:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14224,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"10191:45:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14227,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14108,"src":"10269:11:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":14228,"name":"whatToRedeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14123,"src":"10282:12:48","typeDescriptions":{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_array$_t_bool_$4_memory_ptr","typeString":"bool[4] memory"}],"expression":{"argumentTypes":null,"id":14225,"name":"_contributionRewardExt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14106,"src":"10239:22:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"id":14226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"redeem","nodeType":"MemberAccess","referencedDeclaration":6212,"src":"10239:29:48","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_bytes32_$_t_array$_t_bool_$4_memory_ptr_$returns$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"function (bytes32,bool[4] memory) external returns (int256,uint256,uint256,uint256)"}},"id":14229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"10239:56:48","typeDescriptions":{"typeIdentifier":"t_tuple$_t_int256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(int256,uint256,uint256,uint256)"}},"src":"10191:104:48","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14231,"nodeType":"ExpressionStatement","src":"10191:104:48"}]},"documentation":null,"id":14233,"implemented":true,"kind":"function","modifiers":[],"name":"contributionRewardExtRedeem","nodeType":"FunctionDefinition","parameters":{"id":14109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14106,"name":"_contributionRewardExt","nodeType":"VariableDeclaration","scope":14233,"src":"9128:44:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"},"typeName":{"contractScope":null,"id":14105,"name":"ContributionRewardExt","nodeType":"UserDefinedTypeName","referencedDeclaration":6293,"src":"9128:21:48","typeDescriptions":{"typeIdentifier":"t_contract$_ContributionRewardExt_$6293","typeString":"contract ContributionRewardExt"}},"value":null,"visibility":"internal"},{"constant":false,"id":14108,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14233,"src":"9174:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14107,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9174:7:48","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"9127:67:48"},"returnParameters":{"id":14118,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14111,"name":"reputation","nodeType":"VariableDeclaration","scope":14233,"src":"9220:17:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":14110,"name":"int256","nodeType":"ElementaryTypeName","src":"9220:6:48","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14113,"name":"nativeToken","nodeType":"VariableDeclaration","scope":14233,"src":"9239:19:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14112,"name":"uint256","nodeType":"ElementaryTypeName","src":"9239:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14115,"name":"eth","nodeType":"VariableDeclaration","scope":14233,"src":"9260:11:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14114,"name":"uint256","nodeType":"ElementaryTypeName","src":"9260:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14117,"name":"externalToken","nodeType":"VariableDeclaration","scope":14233,"src":"9273:21:48","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14116,"name":"uint256","nodeType":"ElementaryTypeName","src":"9273:7:48","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"9219:76:48"},"scope":14234,"src":"9091:1211:48","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":14235,"src":"263:10041:48"}],"src":"0:10305:48"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.223Z","devdoc":{"methods":{"redeem(address,address,bytes32,address,address)":{"details":"helper to redeem rewards for a proposal It calls execute on the proposal if it is not yet executed. It tries to redeem reputation and stake from the GenesisProtocol. It tries to redeem proposal rewards from the contribution rewards scheme. This function does not emit events. A client should listen to GenesisProtocol and ContributionReward redemption events to monitor redemption operations.","params":{"_avatar":"address of the controller","_beneficiary":"beneficiary","_contributionReward":"contributionReward","_genesisProtocol":"genesisProtocol","_proposalId":"the ID of the voting in the voting machine"},"return":"gpRewards array gpRewards[0] - stakerTokenAmount gpRewards[1] - voterReputationAmount gpRewards[2] - proposerReputationAmountgpDaoBountyReward array gpDaoBountyReward[0] - staker dao bounty reward - will be zero for the case there is not enough tokens in avatar for the reward. gpDaoBountyReward[1] - staker potential dao bounty reward.executed bool true or falsewinningVote 1 - executed or closed and the winning vote is YES 2 - executed or closed and the winning vote is NOint256 crReputationReward Reputation - from ContributionRewardint256 crNativeTokenReward NativeTokenReward - from ContributionRewardint256 crEthReward Ether - from ContributionRewardint256 crExternalTokenReward ExternalToken - from ContributionReward"},"redeemFromCRExt(address,address,bytes32,address)":{"details":"helper to redeem rewards for a proposal It calls execute on the proposal if it is not yet executed. It tries to redeem reputation and stake from the GenesisProtocol. It tries to redeem proposal rewards from the contribution rewards scheme. This function does not emit events. A client should listen to GenesisProtocol and ContributionReward redemption events to monitor redemption operations.","params":{"_beneficiary":"beneficiary","_contributionRewardExt":"contributionRewardExt","_genesisProtocol":"genesisProtocol","_proposalId":"the ID of the voting in the voting machine"},"return":"gpRewards array gpRewards[0] - stakerTokenAmount gpRewards[1] - voterReputationAmount gpRewards[2] - proposerReputationAmountgpDaoBountyReward array gpDaoBountyReward[0] - staker dao bounty reward - will be zero for the case there is not enough tokens in avatar for the reward. gpDaoBountyReward[1] - staker potential dao bounty reward.executed bool true or falsewinningVote 1 - executed or closed and the winning vote is YES 2 - executed or closed and the winning vote is NOint256 crReputationReward Reputation - from ContributionRewardint256 crNativeTokenReward NativeTokenReward - from ContributionRewardint256 crEthReward Ether - from ContributionRewardint256 crExternalTokenReward ExternalToken - from ContributionReward"}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RepAllocation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RepAllocation.json new file mode 100644 index 00000000..9c18b63c --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/RepAllocation.json @@ -0,0 +1 @@ +{"contractName":"RepAllocation","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":true,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"BeneficiaryAddressAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"isFreeze","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"reputationAllocations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"addBeneficiary","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_beneficiaries","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"addBeneficiaries","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"BeneficiaryAddressAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_beneficiaries\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"addBeneficiaries\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"addBeneficiary\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"freeze\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isFreeze\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"reputationAllocations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"addBeneficiaries(address[],uint256[])\":{\"details\":\"add addBeneficiaries function\",\"params\":{\"_beneficiaries\":\"addresses\"}},\"addBeneficiary(address,uint256)\":{\"details\":\"addBeneficiary function\",\"params\":{\"_beneficiary\":\"to be whitelisted\"}},\"balanceOf(address)\":{\"details\":\"get balanceOf _beneficiary function\",\"params\":{\"_beneficiary\":\"addresses\"}},\"freeze()\":{\"details\":\"freeze function cannot defreeze\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"reputation allocation contract This scheme can be used to allocate a pre define amount of reputation to whitelisted beneficiaries. this contract can be used as the rep mapping contract for RepitationFromToken contract.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/utils/RepAllocation.sol\":\"RepAllocation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/utils/RepAllocation.sol\":{\"keccak256\":\"0xe837604f8f18fed1591dfd754ab0574c5349423ff764099dc9320d8115d6f27f\",\"urls\":[\"bzz-raw://c2dca7685ad7729683ca99524abbfbb8c11f3166b1f1010801e3721541f54597\",\"dweb:/ipfs/QmWQ5x4jVqrRQ2GxWYnZFp7eKUX5m7h1bva95PuwX598Xf\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]}},\"version\":1}","sourceMap":"338:1487:49:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;338:1487:49;;788:96:63;867:10;788:96;:::o;338:1487:49:-;;;;;;;","deployedSourceMap":"338:1487:49:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;338:1487:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;412:60;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;412:60:49;-1:-1:-1;;;;;412:60:49;;:::i;:::-;;;;;;;;;;;;;;;;1519:67;;;:::i;:::-;;1693:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1693:129:49;-1:-1:-1;;;;;1693:129:49;;:::i;1642:137:67:-;;;:::i;857:77::-;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;693:349:49;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;693:349:49;;;;;;;;:::i;1145:301::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1145:301:49;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1145:301:49;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1145:301:49;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1145:301:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1145:301:49;;;;;;;;-1:-1:-1;1145:301:49;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;1145:301:49;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1145:301:49;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1145:301:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;1145:301:49;;-1:-1:-1;1145:301:49;;-1:-1:-1;;;;;1145:301:49:i;478:20::-;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;412:60:49:-;;;;;;;;;;;;;:::o;1519:67::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1564:8:49;:15;;-1:-1:-1;;1564:15:49;1575:4;1564:15;;;1519:67::o;1693:129::-;-1:-1:-1;;;;;1780:35:49;1754:7;1780:35;;;:21;:35;;;;;;;1693:129::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;693:349:49:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;792:8:49;;;;791:9;783:61;;;;-1:-1:-1;;;783:61:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;859:35:49;;;;;;:21;:35;;;;;;855:181;;-1:-1:-1;;;;;915:35:49;;;;;;:21;:35;;;;;;:45;;;979:46;953:7;;915:35;979:46;;;855:181;693:349;;:::o;1145:301::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1291:8:49;:15;1266:14;:21;:40;1258:49;;;;;;1322:9;1317:123;1341:14;:21;1337:1;:25;1317:123;;;1383:46;1398:14;1413:1;1398:17;;;;;;;;;;;;;;1417:8;1426:1;1417:11;;;;;;;;;;;;;;1383:14;:46::i;:::-;1364:3;;1317:123;;;;1145:301;;:::o;478:20::-;;;;;;:::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title reputation allocation contract\n * This scheme can be used to allocate a pre define amount of reputation to whitelisted\n * beneficiaries.\n * this contract can be used as the rep mapping contract for RepitationFromToken contract.\n */\ncontract RepAllocation is Ownable {\n\n\n // beneficiary -> amount\n mapping(address => uint256) public reputationAllocations;\n bool public isFreeze;\n\n event BeneficiaryAddressAdded(address indexed _beneficiary, uint256 indexed _amount);\n\n /**\n * @dev addBeneficiary function\n * @param _beneficiary to be whitelisted\n */\n function addBeneficiary(address _beneficiary, uint256 _amount) public onlyOwner {\n require(!isFreeze, \"can add beneficiary only if not disable\");\n\n if (reputationAllocations[_beneficiary] == 0) {\n reputationAllocations[_beneficiary] = _amount;\n emit BeneficiaryAddressAdded(_beneficiary, _amount);\n }\n }\n\n /**\n * @dev add addBeneficiaries function\n * @param _beneficiaries addresses\n */\n function addBeneficiaries(address[] memory _beneficiaries, uint256[] memory _amounts) public onlyOwner {\n require(_beneficiaries.length == _amounts.length);\n for (uint256 i = 0; i < _beneficiaries.length; i++) {\n addBeneficiary(_beneficiaries[i], _amounts[i]);\n }\n }\n\n /**\n * @dev freeze function\n * cannot defreeze\n */\n function freeze() public onlyOwner {\n isFreeze = true;\n }\n\n /**\n * @dev get balanceOf _beneficiary function\n * @param _beneficiary addresses\n */\n function balanceOf(address _beneficiary) public view returns(uint256) {\n return reputationAllocations[_beneficiary];\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/utils/RepAllocation.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/RepAllocation.sol","exportedSymbols":{"RepAllocation":[14350]},"id":14351,"nodeType":"SourceUnit","nodes":[{"id":14236,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:49"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":14237,"nodeType":"ImportDirective","scope":14351,"sourceUnit":20510,"src":"25:63:49","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":14238,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"364:7:49","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":14239,"nodeType":"InheritanceSpecifier","src":"364:7:49"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title reputation allocation contract\nThis scheme can be used to allocate a pre define amount of reputation to whitelisted\nbeneficiaries.\nthis contract can be used as the rep mapping contract for RepitationFromToken contract.","fullyImplemented":true,"id":14350,"linearizedBaseContracts":[14350,20509,20058],"name":"RepAllocation","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":14243,"name":"reputationAllocations","nodeType":"VariableDeclaration","scope":14350,"src":"412:60:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":14242,"keyType":{"id":14240,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"412:31:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":14241,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":14245,"name":"isFreeze","nodeType":"VariableDeclaration","scope":14350,"src":"478:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14244,"name":"bool","nodeType":"ElementaryTypeName","src":"478:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":14251,"name":"BeneficiaryAddressAdded","nodeType":"EventDefinition","parameters":{"id":14250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14247,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14251,"src":"535:28:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14246,"name":"address","nodeType":"ElementaryTypeName","src":"535:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14249,"indexed":true,"name":"_amount","nodeType":"VariableDeclaration","scope":14251,"src":"565:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14248,"name":"uint256","nodeType":"ElementaryTypeName","src":"565:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"534:55:49"},"src":"505:85:49"},{"body":{"id":14284,"nodeType":"Block","src":"773:269:49","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"791:9:49","subExpression":{"argumentTypes":null,"id":14261,"name":"isFreeze","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"792:8:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e206164642062656e6566696369617279206f6e6c79206966206e6f742064697361626c65","id":14263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:41:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aad03b558c3beda79aedff096abdd420a71bf1548a44fc3a6d680f80a948a6ed","typeString":"literal_string \"can add beneficiary only if not disable\""},"value":"can add beneficiary only if not disable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aad03b558c3beda79aedff096abdd420a71bf1548a44fc3a6d680f80a948a6ed","typeString":"literal_string \"can add beneficiary only if not disable\""}],"id":14260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"783:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"783:61:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14265,"nodeType":"ExpressionStatement","src":"783:61:49"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14266,"name":"reputationAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"859:21:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14268,"indexExpression":{"argumentTypes":null,"id":14267,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"881:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"859:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"898:1:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"859:40:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14283,"nodeType":"IfStatement","src":"855:181:49","trueBody":{"id":14282,"nodeType":"Block","src":"901:135:49","statements":[{"expression":{"argumentTypes":null,"id":14275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14271,"name":"reputationAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"915:21:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14273,"indexExpression":{"argumentTypes":null,"id":14272,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"937:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"915:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":14274,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14255,"src":"953:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"915:45:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14276,"nodeType":"ExpressionStatement","src":"915:45:49"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14278,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"1003:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14279,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14255,"src":"1017:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14277,"name":"BeneficiaryAddressAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14251,"src":"979:23:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"979:46:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14281,"nodeType":"EmitStatement","src":"974:51:49"}]}}]},"documentation":"@dev addBeneficiary function\n@param _beneficiary to be whitelisted","id":14285,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14258,"modifierName":{"argumentTypes":null,"id":14257,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"763:9:49","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"763:9:49"}],"name":"addBeneficiary","nodeType":"FunctionDefinition","parameters":{"id":14256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14253,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14285,"src":"717:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14252,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14255,"name":"_amount","nodeType":"VariableDeclaration","scope":14285,"src":"739:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14254,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"716:39:49"},"returnParameters":{"id":14259,"nodeType":"ParameterList","parameters":[],"src":"773:0:49"},"scope":14350,"src":"693:349:49","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14326,"nodeType":"Block","src":"1248:198:49","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14297,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1266:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1266:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14299,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"1291:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1291:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1266:40:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14296,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1258:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1258:49:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14303,"nodeType":"ExpressionStatement","src":"1258:49:49"},{"body":{"id":14324,"nodeType":"Block","src":"1369:71:49","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14316,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1398:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14318,"indexExpression":{"argumentTypes":null,"id":14317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1413:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1398:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14319,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"1417:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14321,"indexExpression":{"argumentTypes":null,"id":14320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1426:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1417:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14315,"name":"addBeneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14285,"src":"1383:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1383:46:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14323,"nodeType":"ExpressionStatement","src":"1383:46:49"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14308,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1337:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14309,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1341:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1341:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1337:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14325,"initializationExpression":{"assignments":[14305],"declarations":[{"constant":false,"id":14305,"name":"i","nodeType":"VariableDeclaration","scope":14325,"src":"1322:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1322:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14307,"initialValue":{"argumentTypes":null,"hexValue":"30","id":14306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1322:13:49"},"loopExpression":{"expression":{"argumentTypes":null,"id":14313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1364:3:49","subExpression":{"argumentTypes":null,"id":14312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1364:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14314,"nodeType":"ExpressionStatement","src":"1364:3:49"},"nodeType":"ForStatement","src":"1317:123:49"}]},"documentation":"@dev add addBeneficiaries function\n@param _beneficiaries addresses","id":14327,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14294,"modifierName":{"argumentTypes":null,"id":14293,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1238:9:49","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1238:9:49"}],"name":"addBeneficiaries","nodeType":"FunctionDefinition","parameters":{"id":14292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14288,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":14327,"src":"1171:31:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14286,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14287,"length":null,"nodeType":"ArrayTypeName","src":"1171:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":14291,"name":"_amounts","nodeType":"VariableDeclaration","scope":14327,"src":"1204:25:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1204:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14290,"length":null,"nodeType":"ArrayTypeName","src":"1204:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1170:60:49"},"returnParameters":{"id":14295,"nodeType":"ParameterList","parameters":[],"src":"1248:0:49"},"scope":14350,"src":"1145:301:49","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14336,"nodeType":"Block","src":"1554:32:49","statements":[{"expression":{"argumentTypes":null,"id":14334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14332,"name":"isFreeze","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"1564:8:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1575:4:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1564:15:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14335,"nodeType":"ExpressionStatement","src":"1564:15:49"}]},"documentation":"@dev freeze function\ncannot defreeze","id":14337,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14330,"modifierName":{"argumentTypes":null,"id":14329,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1544:9:49","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1544:9:49"}],"name":"freeze","nodeType":"FunctionDefinition","parameters":{"id":14328,"nodeType":"ParameterList","parameters":[],"src":"1534:2:49"},"returnParameters":{"id":14331,"nodeType":"ParameterList","parameters":[],"src":"1554:0:49"},"scope":14350,"src":"1519:67:49","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14348,"nodeType":"Block","src":"1763:59:49","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14344,"name":"reputationAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"1780:21:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14346,"indexExpression":{"argumentTypes":null,"id":14345,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"1802:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1780:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14343,"id":14347,"nodeType":"Return","src":"1773:42:49"}]},"documentation":"@dev get balanceOf _beneficiary function\n@param _beneficiary addresses","id":14349,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":14340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14339,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14349,"src":"1712:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14338,"name":"address","nodeType":"ElementaryTypeName","src":"1712:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1711:22:49"},"returnParameters":{"id":14343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14342,"name":"","nodeType":"VariableDeclaration","scope":14349,"src":"1754:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14341,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1753:9:49"},"scope":14350,"src":"1693:129:49","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":14351,"src":"338:1487:49"}],"src":"0:1826:49"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/utils/RepAllocation.sol","exportedSymbols":{"RepAllocation":[14350]},"id":14351,"nodeType":"SourceUnit","nodes":[{"id":14236,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:49"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":14237,"nodeType":"ImportDirective","scope":14351,"sourceUnit":20510,"src":"25:63:49","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":14238,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"364:7:49","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":14239,"nodeType":"InheritanceSpecifier","src":"364:7:49"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title reputation allocation contract\nThis scheme can be used to allocate a pre define amount of reputation to whitelisted\nbeneficiaries.\nthis contract can be used as the rep mapping contract for RepitationFromToken contract.","fullyImplemented":true,"id":14350,"linearizedBaseContracts":[14350,20509,20058],"name":"RepAllocation","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":14243,"name":"reputationAllocations","nodeType":"VariableDeclaration","scope":14350,"src":"412:60:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":14242,"keyType":{"id":14240,"name":"address","nodeType":"ElementaryTypeName","src":"420:7:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"412:31:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":14241,"name":"uint256","nodeType":"ElementaryTypeName","src":"435:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"value":null,"visibility":"public"},{"constant":false,"id":14245,"name":"isFreeze","nodeType":"VariableDeclaration","scope":14350,"src":"478:20:49","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14244,"name":"bool","nodeType":"ElementaryTypeName","src":"478:4:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"public"},{"anonymous":false,"documentation":null,"id":14251,"name":"BeneficiaryAddressAdded","nodeType":"EventDefinition","parameters":{"id":14250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14247,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14251,"src":"535:28:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14246,"name":"address","nodeType":"ElementaryTypeName","src":"535:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14249,"indexed":true,"name":"_amount","nodeType":"VariableDeclaration","scope":14251,"src":"565:23:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14248,"name":"uint256","nodeType":"ElementaryTypeName","src":"565:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"534:55:49"},"src":"505:85:49"},{"body":{"id":14284,"nodeType":"Block","src":"773:269:49","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"791:9:49","subExpression":{"argumentTypes":null,"id":14261,"name":"isFreeze","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"792:8:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e206164642062656e6566696369617279206f6e6c79206966206e6f742064697361626c65","id":14263,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"802:41:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_aad03b558c3beda79aedff096abdd420a71bf1548a44fc3a6d680f80a948a6ed","typeString":"literal_string \"can add beneficiary only if not disable\""},"value":"can add beneficiary only if not disable"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_aad03b558c3beda79aedff096abdd420a71bf1548a44fc3a6d680f80a948a6ed","typeString":"literal_string \"can add beneficiary only if not disable\""}],"id":14260,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"783:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"783:61:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14265,"nodeType":"ExpressionStatement","src":"783:61:49"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14266,"name":"reputationAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"859:21:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14268,"indexExpression":{"argumentTypes":null,"id":14267,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"881:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"859:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"898:1:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"859:40:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14283,"nodeType":"IfStatement","src":"855:181:49","trueBody":{"id":14282,"nodeType":"Block","src":"901:135:49","statements":[{"expression":{"argumentTypes":null,"id":14275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14271,"name":"reputationAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"915:21:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14273,"indexExpression":{"argumentTypes":null,"id":14272,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"937:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"915:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":14274,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14255,"src":"953:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"915:45:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14276,"nodeType":"ExpressionStatement","src":"915:45:49"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14278,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14253,"src":"1003:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14279,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14255,"src":"1017:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14277,"name":"BeneficiaryAddressAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14251,"src":"979:23:49","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"979:46:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14281,"nodeType":"EmitStatement","src":"974:51:49"}]}}]},"documentation":"@dev addBeneficiary function\n@param _beneficiary to be whitelisted","id":14285,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14258,"modifierName":{"argumentTypes":null,"id":14257,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"763:9:49","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"763:9:49"}],"name":"addBeneficiary","nodeType":"FunctionDefinition","parameters":{"id":14256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14253,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14285,"src":"717:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14252,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14255,"name":"_amount","nodeType":"VariableDeclaration","scope":14285,"src":"739:15:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14254,"name":"uint256","nodeType":"ElementaryTypeName","src":"739:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"716:39:49"},"returnParameters":{"id":14259,"nodeType":"ParameterList","parameters":[],"src":"773:0:49"},"scope":14350,"src":"693:349:49","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14326,"nodeType":"Block","src":"1248:198:49","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14297,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1266:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1266:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14299,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"1291:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1291:15:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1266:40:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14296,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1258:7:49","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1258:49:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14303,"nodeType":"ExpressionStatement","src":"1258:49:49"},{"body":{"id":14324,"nodeType":"Block","src":"1369:71:49","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14316,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1398:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14318,"indexExpression":{"argumentTypes":null,"id":14317,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1413:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1398:17:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14319,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14291,"src":"1417:8:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":14321,"indexExpression":{"argumentTypes":null,"id":14320,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1426:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1417:11:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14315,"name":"addBeneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14285,"src":"1383:14:49","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1383:46:49","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14323,"nodeType":"ExpressionStatement","src":"1383:46:49"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14308,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1337:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14309,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14288,"src":"1341:14:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":14310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1341:21:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1337:25:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14325,"initializationExpression":{"assignments":[14305],"declarations":[{"constant":false,"id":14305,"name":"i","nodeType":"VariableDeclaration","scope":14325,"src":"1322:9:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14304,"name":"uint256","nodeType":"ElementaryTypeName","src":"1322:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14307,"initialValue":{"argumentTypes":null,"hexValue":"30","id":14306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1334:1:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1322:13:49"},"loopExpression":{"expression":{"argumentTypes":null,"id":14313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1364:3:49","subExpression":{"argumentTypes":null,"id":14312,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14305,"src":"1364:1:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14314,"nodeType":"ExpressionStatement","src":"1364:3:49"},"nodeType":"ForStatement","src":"1317:123:49"}]},"documentation":"@dev add addBeneficiaries function\n@param _beneficiaries addresses","id":14327,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14294,"modifierName":{"argumentTypes":null,"id":14293,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1238:9:49","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1238:9:49"}],"name":"addBeneficiaries","nodeType":"FunctionDefinition","parameters":{"id":14292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14288,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":14327,"src":"1171:31:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":14286,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":14287,"length":null,"nodeType":"ArrayTypeName","src":"1171:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":14291,"name":"_amounts","nodeType":"VariableDeclaration","scope":14327,"src":"1204:25:49","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":14289,"name":"uint256","nodeType":"ElementaryTypeName","src":"1204:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14290,"length":null,"nodeType":"ArrayTypeName","src":"1204:9:49","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1170:60:49"},"returnParameters":{"id":14295,"nodeType":"ParameterList","parameters":[],"src":"1248:0:49"},"scope":14350,"src":"1145:301:49","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14336,"nodeType":"Block","src":"1554:32:49","statements":[{"expression":{"argumentTypes":null,"id":14334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14332,"name":"isFreeze","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14245,"src":"1564:8:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":14333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1575:4:49","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1564:15:49","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14335,"nodeType":"ExpressionStatement","src":"1564:15:49"}]},"documentation":"@dev freeze function\ncannot defreeze","id":14337,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14330,"modifierName":{"argumentTypes":null,"id":14329,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1544:9:49","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1544:9:49"}],"name":"freeze","nodeType":"FunctionDefinition","parameters":{"id":14328,"nodeType":"ParameterList","parameters":[],"src":"1534:2:49"},"returnParameters":{"id":14331,"nodeType":"ParameterList","parameters":[],"src":"1554:0:49"},"scope":14350,"src":"1519:67:49","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14348,"nodeType":"Block","src":"1763:59:49","statements":[{"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14344,"name":"reputationAllocations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14243,"src":"1780:21:49","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":14346,"indexExpression":{"argumentTypes":null,"id":14345,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14339,"src":"1802:12:49","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1780:35:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14343,"id":14347,"nodeType":"Return","src":"1773:42:49"}]},"documentation":"@dev get balanceOf _beneficiary function\n@param _beneficiary addresses","id":14349,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":14340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14339,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14349,"src":"1712:20:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14338,"name":"address","nodeType":"ElementaryTypeName","src":"1712:7:49","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"1711:22:49"},"returnParameters":{"id":14343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14342,"name":"","nodeType":"VariableDeclaration","scope":14349,"src":"1754:7:49","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14341,"name":"uint256","nodeType":"ElementaryTypeName","src":"1754:7:49","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1753:9:49"},"scope":14350,"src":"1693:129:49","stateMutability":"view","superFunction":null,"visibility":"public"}],"scope":14351,"src":"338:1487:49"}],"src":"0:1826:49"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.228Z","devdoc":{"methods":{"addBeneficiaries(address[],uint256[])":{"details":"add addBeneficiaries function","params":{"_beneficiaries":"addresses"}},"addBeneficiary(address,uint256)":{"details":"addBeneficiary function","params":{"_beneficiary":"to be whitelisted"}},"balanceOf(address)":{"details":"get balanceOf _beneficiary function","params":{"_beneficiary":"addresses"}},"freeze()":{"details":"freeze function cannot defreeze"},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"reputation allocation contract This scheme can be used to allocate a pre define amount of reputation to whitelisted beneficiaries. this contract can be used as the rep mapping contract for RepitationFromToken contract."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Reputation.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Reputation.json new file mode 100644 index 00000000..e7d468d1 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Reputation.json @@ -0,0 +1 @@ +{"contractName":"Reputation","abi":[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"balanceOfAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"totalSupplyAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"balanceOfAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"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\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_blockNumber\",\"type\":\"uint256\"}],\"name\":\"totalSupplyAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A DAO has Reputation System which allows peers to rate other peers in order to build trust . A reputation is use to assign influence measure to a DAO'S peers. Reputation is similar to regular tokens but with one crucial difference: It is non-transferable. The Reputation contract maintain a map of address to reputation value. It provides an onlyOwner functions to mint and burn reputation _to (or _from) a specific address.\",\"methods\":{\"balanceOf(address)\":{\"details\":\"return the reputation amount of a given owner\",\"params\":{\"_owner\":\"an address of the owner which we want to get his reputation\"}},\"balanceOfAt(address,uint256)\":{\"details\":\"Queries the balance of `_owner` at a specific `_blockNumber`\",\"params\":{\"_blockNumber\":\"The block number when the balance is queried\",\"_owner\":\"The address from which the balance will be retrieved\"},\"return\":\"The balance at `_blockNumber`\"},\"burn(address,uint256)\":{\"params\":{\"_amount\":\"The quantity of reputation to burn\",\"_user\":\"The address that will lose the reputation\"},\"return\":\"True if the reputation are burned correctly\"},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"mint(address,uint256)\":{\"params\":{\"_amount\":\"The quantity of reputation generated\",\"_user\":\"The address that will be assigned the new reputation\"},\"return\":\"True if the reputation are generated correctly\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"totalSupply()\":{\"details\":\"This function makes it easy to get the total number of reputation\",\"return\":\"The total number of reputation\"},\"totalSupplyAt(uint256)\":{\"params\":{\"_blockNumber\":\"The block number when the totalSupply is queried\"},\"return\":\"The total amount of reputation at `_blockNumber`\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"Reputation system\"},\"userdoc\":{\"methods\":{\"burn(address,uint256)\":{\"notice\":\"Burns `_amount` reputation from `_owner`\"},\"constructor\":\"Constructor to create a Reputation\",\"mint(address,uint256)\":{\"notice\":\"Generates `_amount` reputation that are assigned to `_owner`\"},\"totalSupplyAt(uint256)\":{\"notice\":\"Total amount of reputation at a specific `_blockNumber`.\"}}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/Reputation.sol\":\"Reputation\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]}},\"version\":1}","sourceMap":"574:6853:51:-;;;612:26;;;-1:-1:-1;;;;612:26:51;-1:-1:-1;;;612:26:51;;;1752:37;5:2:-1;;;;30:1;27;20:12;5:2;-1:-1;707:12:67;:10;:12::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;574:6853:51;;788:96:63;867:10;788:96;:::o;574:6853:51:-;;;;;;;","deployedSourceMap":"574:6853:51:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;574:6853:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1921:104;;;:::i;:::-;;;;;;;;;;;;;;;;612:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3957:559;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3957:559:51;;-1:-1:-1;;;;;3957:559:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2679:388;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2679:388:51;;-1:-1:-1;;;;;2679:388:51;;;;;;:::i;2267:130::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2267:130:51;-1:-1:-1;;;;;2267:130:51;;:::i;1642:137:67:-;;;:::i;:::-;;857:77;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;;:::i;3294:375:51:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3294:375:51;;:::i;4768:554::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4768:554:51;;-1:-1:-1;;;;;4768:554:51;;;;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;1921:104:51:-;1965:7;1991:27;2005:12;1991:13;:27::i;:::-;1984:34;;1921:104;;:::o;612:26::-;;;-1:-1:-1;;;612:26:51;;;;;:::o;3957:559::-;4029:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;4045:22:51;4070:13;:11;:13::i;:::-;4045:38;;4129:14;4118:7;4101:14;:24;:42;;4093:51;;;;;;4176:25;4204:16;4214:5;4204:9;:16::i;:::-;4176:44;;4269:17;4258:7;4238:17;:27;:48;;4230:57;;;;;;4319:62;4336:18;4373:7;4356:14;:24;4319:16;:62::i;:::-;-1:-1:-1;;;;;4408:15:51;;;;;;-1:-1:-1;4408:15:51;;;;;4391:62;;4425:27;;;4391:16;:62::i;:::-;4468:20;;;;;;;;-1:-1:-1;;;;;4468:20:51;;;;;;;;;;;;;4505:4;4498:11;;;;1117:1:67;3957:559:51;;;;:::o;2679:388::-;-1:-1:-1;;;;;2791:16:51;;2763:7;2791:16;;;-1:-1:-1;2791:16:51;;;;;:23;:28;;2790:80;;-1:-1:-1;;;;;;2825:16:51;;;;;;-1:-1:-1;2825:16:51;;;;;:19;;2857:12;;2825:16;:19;;;;;;;;;;;;;:29;-1:-1:-1;;;;;2825:29:51;:44;2790:80;2786:275;;;-1:-1:-1;2893:1:51;2886:8;;2786:275;-1:-1:-1;;;;;3019:16:51;;;;;;-1:-1:-1;3019:16:51;;;;;3008:42;;3037:12;3008:10;:42::i;:::-;3001:49;;;;2267:130;2323:15;2357:33;2369:6;2377:12;2357:11;:33::i;:::-;2350:40;;2267:130;;;;:::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;;857:77::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;;1208:92;-1:-1:-1;1208:92:67:o;3294:375:51:-;3383:18;:25;3359:7;;3383:30;;3382:84;;;3453:12;3419:18;3438:1;3419:21;;;;;;;;;;;;;;;;;:31;-1:-1:-1;;;;;3419:31:51;:46;3382:84;3378:285;;;-1:-1:-1;3489:1:51;3482:8;;3378:285;3608:44;3619:18;3639:12;3608:10;:44::i;:::-;3601:51;;;;4768:554;4840:4;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;4856:22:51;4881:13;:11;:13::i;:::-;4856:38;-1:-1:-1;4927:7:51;4904:20;4974:16;4984:5;4974:9;:16::i;:::-;4944:46;;5026:12;5004:19;:34;5000:99;;;5069:19;5054:34;;5000:99;5108:67;5125:18;5162:12;5145:14;:29;5108:16;:67::i;:::-;-1:-1:-1;;;;;5202:15:51;;;;;;-1:-1:-1;5202:15:51;;;;;5185:69;;5219:34;;;5185:16;:69::i;:::-;5269:25;;;;;;;;-1:-1:-1;;;;;5269:25:51;;;;;;;;;;;;;-1:-1:-1;5311:4:51;;4768:554;-1:-1:-1;;;;;4768:554:51:o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;6784:641:51:-;-1:-1:-1;;;;;6887:25:51;;;;6879:34;;;;;;6972:18;;:23;;6971:91;;-1:-1:-1;7013:18:51;;7049:12;;7013:18;;-1:-1:-1;;7013:22:51;;;7001:35;;;;;;;;;;;;;;;:45;-1:-1:-1;;;;;7001:45:51;:60;6971:91;6967:452;;;7125:20;;7078:32;;7113:11;;7125:20;7113:11;7125:20;;;;:::i;:::-;7113:33;;;;;;;;;;;;;;;;;7160:47;;-1:-1:-1;;7160:47:51;7194:12;-1:-1:-1;;;;;7160:47:51;;;;;;;7221:37;;;;;-1:-1:-1;;;7221:37:51;;;;-1:-1:-1;6967:452:51;;;7336:18;;7289:32;;7336:18;;-1:-1:-1;;7336:20:51;;;7324:33;;;;;;;;;;;;;;;7371:37;;-1:-1:-1;;;;;7371:37:51;;;;;;-1:-1:-1;;;7371:37:51;;;;-1:-1:-1;6967:452:51;6784:641;;:::o;5718:836::-;5834:18;;5811:7;;5830:62;;-1:-1:-1;5880:1:51;5873:8;;5830:62;5971:18;;;;-1:-1:-1;;5971:20:51;;;5959:33;;;;;;;;;;;;;;;:43;-1:-1:-1;;;;;5959:43:51;5949:53;;5945:130;;6037:18;;;;-1:-1:-1;;6037:20:51;;;6025:33;;;;;;;;;;;;;;;:39;-1:-1:-1;;;6025:39:51;;-1:-1:-1;;;;;6025:39:51;;-1:-1:-1;6018:46:51;;5945:130;6097:11;6109:1;6097:14;;;;;;;;;;;;;;;;;:24;-1:-1:-1;;;;;6097:24:51;6088:33;;6084:72;;;-1:-1:-1;6144:1:51;6137:8;;6084:72;6258:18;;6219:11;;-1:-1:-1;;6258:20:51;6288:221;6301:3;6295;:9;6288:221;;;6320:11;6352:1;6347;6335:9;;;:13;6334:19;6320:33;;6399:6;6371:11;6383:3;6371:16;;;;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;6371:26:51;:34;6367:132;;6431:3;6425:9;;6367:132;;;6483:1;6479:3;:5;6473:11;;6367:132;6288:221;;;;6525:11;6537:3;6525:16;;;;;;;;;;;;;;;;;:22;-1:-1:-1;;;6525:22:51;;-1:-1:-1;;;;;6525:22:51;;;-1:-1:-1;;;;;5718:836:51:o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;574:6853:51:-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;","source":"pragma solidity ^0.5.11;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\n/**\n * @title Reputation system\n * @dev A DAO has Reputation System which allows peers to rate other peers in order to build trust .\n * A reputation is use to assign influence measure to a DAO'S peers.\n * Reputation is similar to regular tokens but with one crucial difference: It is non-transferable.\n * The Reputation contract maintain a map of address to reputation value.\n * It provides an onlyOwner functions to mint and burn reputation _to (or _from) a specific address.\n */\n\ncontract Reputation is Ownable {\n\n uint8 public decimals = 18; //Number of decimals of the smallest unit\n // Event indicating minting of reputation to an address.\n event Mint(address indexed _to, uint256 _amount);\n // Event indicating burning of reputation for an address.\n event Burn(address indexed _from, uint256 _amount);\n\n /// @dev `Checkpoint` is the structure that attaches a block number to a\n /// given value, the block number attached is the one that last changed the\n /// value\n struct Checkpoint {\n\n // `fromBlock` is the block number that the value was generated from\n uint128 fromBlock;\n\n // `value` is the amount of reputation at a specific block number\n uint128 value;\n }\n\n // `balances` is the map that tracks the balance of each address, in this\n // contract when the balance changes the block number that the change\n // occurred is also included in the map\n mapping (address => Checkpoint[]) balances;\n\n // Tracks the history of the `totalSupply` of the reputation\n Checkpoint[] totalSupplyHistory;\n\n /// @notice Constructor to create a Reputation\n constructor(\n ) public\n {\n }\n\n /// @dev This function makes it easy to get the total number of reputation\n /// @return The total number of reputation\n function totalSupply() public view returns (uint256) {\n return totalSupplyAt(block.number);\n }\n\n ////////////////\n // Query balance and totalSupply in History\n ////////////////\n /**\n * @dev return the reputation amount of a given owner\n * @param _owner an address of the owner which we want to get his reputation\n */\n function balanceOf(address _owner) public view returns (uint256 balance) {\n return balanceOfAt(_owner, block.number);\n }\n\n /// @dev Queries the balance of `_owner` at a specific `_blockNumber`\n /// @param _owner The address from which the balance will be retrieved\n /// @param _blockNumber The block number when the balance is queried\n /// @return The balance at `_blockNumber`\n function balanceOfAt(address _owner, uint256 _blockNumber)\n public view returns (uint256)\n {\n if ((balances[_owner].length == 0) || (balances[_owner][0].fromBlock > _blockNumber)) {\n return 0;\n // This will return the expected balance during normal situations\n } else {\n return getValueAt(balances[_owner], _blockNumber);\n }\n }\n\n /// @notice Total amount of reputation at a specific `_blockNumber`.\n /// @param _blockNumber The block number when the totalSupply is queried\n /// @return The total amount of reputation at `_blockNumber`\n function totalSupplyAt(uint256 _blockNumber) public view returns(uint256) {\n if ((totalSupplyHistory.length == 0) || (totalSupplyHistory[0].fromBlock > _blockNumber)) {\n return 0;\n // This will return the expected totalSupply during normal situations\n } else {\n return getValueAt(totalSupplyHistory, _blockNumber);\n }\n }\n\n /// @notice Generates `_amount` reputation that are assigned to `_owner`\n /// @param _user The address that will be assigned the new reputation\n /// @param _amount The quantity of reputation generated\n /// @return True if the reputation are generated correctly\n function mint(address _user, uint256 _amount) public onlyOwner returns (bool) {\n uint256 curTotalSupply = totalSupply();\n require(curTotalSupply + _amount >= curTotalSupply); // Check for overflow\n uint256 previousBalanceTo = balanceOf(_user);\n require(previousBalanceTo + _amount >= previousBalanceTo); // Check for overflow\n updateValueAtNow(totalSupplyHistory, curTotalSupply + _amount);\n updateValueAtNow(balances[_user], previousBalanceTo + _amount);\n emit Mint(_user, _amount);\n return true;\n }\n\n /// @notice Burns `_amount` reputation from `_owner`\n /// @param _user The address that will lose the reputation\n /// @param _amount The quantity of reputation to burn\n /// @return True if the reputation are burned correctly\n function burn(address _user, uint256 _amount) public onlyOwner returns (bool) {\n uint256 curTotalSupply = totalSupply();\n uint256 amountBurned = _amount;\n uint256 previousBalanceFrom = balanceOf(_user);\n if (previousBalanceFrom < amountBurned) {\n amountBurned = previousBalanceFrom;\n }\n updateValueAtNow(totalSupplyHistory, curTotalSupply - amountBurned);\n updateValueAtNow(balances[_user], previousBalanceFrom - amountBurned);\n emit Burn(_user, amountBurned);\n return true;\n }\n\n ////////////////\n // Internal helper functions to query and set a value in a snapshot array\n ////////////////\n\n /// @dev `getValueAt` retrieves the number of reputation at a given block number\n /// @param checkpoints The history of values being queried\n /// @param _block The block number to retrieve the value at\n /// @return The number of reputation being queried\n function getValueAt(Checkpoint[] storage checkpoints, uint256 _block) internal view returns (uint256) {\n if (checkpoints.length == 0) {\n return 0;\n }\n\n // Shortcut for the actual value\n if (_block >= checkpoints[checkpoints.length-1].fromBlock) {\n return checkpoints[checkpoints.length-1].value;\n }\n if (_block < checkpoints[0].fromBlock) {\n return 0;\n }\n\n // Binary search of the value in the array\n uint256 min = 0;\n uint256 max = checkpoints.length-1;\n while (max > min) {\n uint256 mid = (max + min + 1) / 2;\n if (checkpoints[mid].fromBlock<=_block) {\n min = mid;\n } else {\n max = mid-1;\n }\n }\n return checkpoints[min].value;\n }\n\n /// @dev `updateValueAtNow` used to update the `balances` map and the\n /// `totalSupplyHistory`\n /// @param checkpoints The history of data being updated\n /// @param _value The new number of reputation\n function updateValueAtNow(Checkpoint[] storage checkpoints, uint256 _value) internal {\n require(uint128(_value) == _value); //check value is in the 128 bits bounderies\n if ((checkpoints.length == 0) || (checkpoints[checkpoints.length - 1].fromBlock < block.number)) {\n Checkpoint storage newCheckPoint = checkpoints[checkpoints.length++];\n newCheckPoint.fromBlock = uint128(block.number);\n newCheckPoint.value = uint128(_value);\n } else {\n Checkpoint storage oldCheckPoint = checkpoints[checkpoints.length-1];\n oldCheckPoint.value = uint128(_value);\n }\n }\n}\n","sourcePath":"@daostack/infra/contracts/Reputation.sol","ast":{"absolutePath":"@daostack/infra/contracts/Reputation.sol","exportedSymbols":{"Reputation":[15082]},"id":15083,"nodeType":"SourceUnit","nodes":[{"id":14652,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:51"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":14653,"nodeType":"ImportDirective","scope":15083,"sourceUnit":20510,"src":"26:63:51","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":14654,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"597:7:51","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":14655,"nodeType":"InheritanceSpecifier","src":"597:7:51"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title Reputation system\n@dev A DAO has Reputation System which allows peers to rate other peers in order to build trust .\nA reputation is use to assign influence measure to a DAO'S peers.\nReputation is similar to regular tokens but with one crucial difference: It is non-transferable.\nThe Reputation contract maintain a map of address to reputation value.\nIt provides an onlyOwner functions to mint and burn reputation _to (or _from) a specific address.","fullyImplemented":true,"id":15082,"linearizedBaseContracts":[15082,20509,20058],"name":"Reputation","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":14658,"name":"decimals","nodeType":"VariableDeclaration","scope":15082,"src":"612:26:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14656,"name":"uint8","nodeType":"ElementaryTypeName","src":"612:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":14657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"636:2:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"anonymous":false,"documentation":null,"id":14664,"name":"Mint","nodeType":"EventDefinition","parameters":{"id":14663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14660,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":14664,"src":"770:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14659,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14662,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":14664,"src":"791:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14661,"name":"uint256","nodeType":"ElementaryTypeName","src":"791:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"769:38:51"},"src":"759:49:51"},{"anonymous":false,"documentation":null,"id":14670,"name":"Burn","nodeType":"EventDefinition","parameters":{"id":14669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14666,"indexed":true,"name":"_from","nodeType":"VariableDeclaration","scope":14670,"src":"886:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14665,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14668,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":14670,"src":"909:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14667,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"885:40:51"},"src":"875:51:51"},{"canonicalName":"Reputation.Checkpoint","id":14675,"members":[{"constant":false,"id":14672,"name":"fromBlock","nodeType":"VariableDeclaration","scope":14675,"src":"1213:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14671,"name":"uint128","nodeType":"ElementaryTypeName","src":"1213:7:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":null,"visibility":"internal"},{"constant":false,"id":14674,"name":"value","nodeType":"VariableDeclaration","scope":14675,"src":"1317:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14673,"name":"uint128","nodeType":"ElementaryTypeName","src":"1317:7:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":null,"visibility":"internal"}],"name":"Checkpoint","nodeType":"StructDefinition","scope":15082,"src":"1111:226:51","visibility":"public"},{"constant":false,"id":14680,"name":"balances","nodeType":"VariableDeclaration","scope":15082,"src":"1547:42:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint[])"},"typeName":{"id":14679,"keyType":{"id":14676,"name":"address","nodeType":"ElementaryTypeName","src":"1556:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1547:33:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint[])"},"valueType":{"baseType":{"contractScope":null,"id":14677,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"1567:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":14678,"length":null,"nodeType":"ArrayTypeName","src":"1567:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}}},"value":null,"visibility":"internal"},{"constant":false,"id":14683,"name":"totalSupplyHistory","nodeType":"VariableDeclaration","scope":15082,"src":"1663:31:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint[]"},"typeName":{"baseType":{"contractScope":null,"id":14681,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"1663:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":14682,"length":null,"nodeType":"ArrayTypeName","src":"1663:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}},"value":null,"visibility":"internal"},{"body":{"id":14686,"nodeType":"Block","src":"1782:7:51","statements":[]},"documentation":"@notice Constructor to create a Reputation","id":14687,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":14684,"nodeType":"ParameterList","parameters":[],"src":"1763:7:51"},"returnParameters":{"id":14685,"nodeType":"ParameterList","parameters":[],"src":"1782:0:51"},"scope":15082,"src":"1752:37:51","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14697,"nodeType":"Block","src":"1974:51:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14693,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2005:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2005:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14692,"name":"totalSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14782,"src":"1991:13:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1991:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14691,"id":14696,"nodeType":"Return","src":"1984:34:51"}]},"documentation":"@dev This function makes it easy to get the total number of reputation\n @return The total number of reputation","id":14698,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":14688,"nodeType":"ParameterList","parameters":[],"src":"1941:2:51"},"returnParameters":{"id":14691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14690,"name":"","nodeType":"VariableDeclaration","scope":14698,"src":"1965:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14689,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1964:9:51"},"scope":15082,"src":"1921:104:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14711,"nodeType":"Block","src":"2340:57:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14706,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14700,"src":"2369:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14707,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2377:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2377:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14705,"name":"balanceOfAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14751,"src":"2357:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2357:33:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14704,"id":14710,"nodeType":"Return","src":"2350:40:51"}]},"documentation":"@dev return the reputation amount of a given owner\n@param _owner an address of the owner which we want to get his reputation","id":14712,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":14701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14700,"name":"_owner","nodeType":"VariableDeclaration","scope":14712,"src":"2286:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14699,"name":"address","nodeType":"ElementaryTypeName","src":"2286:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2285:16:51"},"returnParameters":{"id":14704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14703,"name":"balance","nodeType":"VariableDeclaration","scope":14712,"src":"2323:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14702,"name":"uint256","nodeType":"ElementaryTypeName","src":"2323:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2322:17:51"},"scope":15082,"src":"2267:130:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14750,"nodeType":"Block","src":"2776:291:51","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14721,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"2791:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14723,"indexExpression":{"argumentTypes":null,"id":14722,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"2800:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2791:16:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2791:23:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2791:28:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14727,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2790:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14728,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"2825:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14730,"indexExpression":{"argumentTypes":null,"id":14729,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"2834:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2825:16:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14732,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2842:1:51","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":"2825:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"2825:29:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":14734,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"2857:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2825:44:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2824:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2790:80:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14748,"nodeType":"Block","src":"2987:74:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14742,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"3019:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14744,"indexExpression":{"argumentTypes":null,"id":14743,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"3028:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3019:16:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"id":14745,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"3037:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14741,"name":"getValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15002,"src":"3008:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":14746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3008:42:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14720,"id":14747,"nodeType":"Return","src":"3001:49:51"}]},"id":14749,"nodeType":"IfStatement","src":"2786:275:51","trueBody":{"id":14740,"nodeType":"Block","src":"2872:109:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2893:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14720,"id":14739,"nodeType":"Return","src":"2886:8:51"}]}}]},"documentation":"@dev Queries the balance of `_owner` at a specific `_blockNumber`\n @param _owner The address from which the balance will be retrieved\n @param _blockNumber The block number when the balance is queried\n @return The balance at `_blockNumber`","id":14751,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfAt","nodeType":"FunctionDefinition","parameters":{"id":14717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14714,"name":"_owner","nodeType":"VariableDeclaration","scope":14751,"src":"2700:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14713,"name":"address","nodeType":"ElementaryTypeName","src":"2700:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14716,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":14751,"src":"2716:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14715,"name":"uint256","nodeType":"ElementaryTypeName","src":"2716:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2699:38:51"},"returnParameters":{"id":14720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14719,"name":"","nodeType":"VariableDeclaration","scope":14751,"src":"2763:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14718,"name":"uint256","nodeType":"ElementaryTypeName","src":"2763:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2762:9:51"},"scope":15082,"src":"2679:388:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14781,"nodeType":"Block","src":"3368:301:51","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14758,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"3383:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3383:25:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3412:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3383:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14762,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3382:32:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14763,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"3419:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14765,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3438:1:51","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":"3419:21:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"3419:31:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":14767,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"3453:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3419:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14769,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3418:48:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3382:84:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14779,"nodeType":"Block","src":"3587:76:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14775,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"3619:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"id":14776,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"3639:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14774,"name":"getValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15002,"src":"3608:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":14777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3608:44:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14757,"id":14778,"nodeType":"Return","src":"3601:51:51"}]},"id":14780,"nodeType":"IfStatement","src":"3378:285:51","trueBody":{"id":14773,"nodeType":"Block","src":"3468:113:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3489:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14757,"id":14772,"nodeType":"Return","src":"3482:8:51"}]}}]},"documentation":"@notice Total amount of reputation at a specific `_blockNumber`.\n @param _blockNumber The block number when the totalSupply is queried\n @return The total amount of reputation at `_blockNumber`","id":14782,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupplyAt","nodeType":"FunctionDefinition","parameters":{"id":14754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14753,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":14782,"src":"3317:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14752,"name":"uint256","nodeType":"ElementaryTypeName","src":"3317:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3316:22:51"},"returnParameters":{"id":14757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14756,"name":"","nodeType":"VariableDeclaration","scope":14782,"src":"3359:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14755,"name":"uint256","nodeType":"ElementaryTypeName","src":"3359:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3358:9:51"},"scope":15082,"src":"3294:375:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14843,"nodeType":"Block","src":"4035:481:51","statements":[{"assignments":[14794],"declarations":[{"constant":false,"id":14794,"name":"curTotalSupply","nodeType":"VariableDeclaration","scope":14843,"src":"4045:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14793,"name":"uint256","nodeType":"ElementaryTypeName","src":"4045:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14797,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":14795,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14698,"src":"4070:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4070:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4045:38:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14799,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"4101:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14800,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4118:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4101:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":14802,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"4129:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4101:42:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14798,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4093:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:51:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14805,"nodeType":"ExpressionStatement","src":"4093:51:51"},{"assignments":[14807],"declarations":[{"constant":false,"id":14807,"name":"previousBalanceTo","nodeType":"VariableDeclaration","scope":14843,"src":"4176:25:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14806,"name":"uint256","nodeType":"ElementaryTypeName","src":"4176:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14811,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14809,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"4214:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14808,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"4204:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4204:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4176:44:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14813,"name":"previousBalanceTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"4238:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14814,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4258:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4238:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":14816,"name":"previousBalanceTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"4269:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4238:48:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14812,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4230:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4230:57:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14819,"nodeType":"ExpressionStatement","src":"4230:57:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14821,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"4336:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14822,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"4356:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14823,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4373:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4356:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14820,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"4319:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4319:62:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14826,"nodeType":"ExpressionStatement","src":"4319:62:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14828,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"4408:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14830,"indexExpression":{"argumentTypes":null,"id":14829,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"4417:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4408:15:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14831,"name":"previousBalanceTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"4425:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14832,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4445:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4425:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14827,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"4391:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4391:62:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14835,"nodeType":"ExpressionStatement","src":"4391:62:51"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14837,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"4473:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14838,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4480:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14836,"name":"Mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14664,"src":"4468:4:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4468:20:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14840,"nodeType":"EmitStatement","src":"4463:25:51"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":14841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4505:4:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14792,"id":14842,"nodeType":"Return","src":"4498:11:51"}]},"documentation":"@notice Generates `_amount` reputation that are assigned to `_owner`\n @param _user The address that will be assigned the new reputation\n @param _amount The quantity of reputation generated\n @return True if the reputation are generated correctly","id":14844,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14789,"modifierName":{"argumentTypes":null,"id":14788,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4010:9:51","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4010:9:51"}],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":14787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14784,"name":"_user","nodeType":"VariableDeclaration","scope":14844,"src":"3971:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14783,"name":"address","nodeType":"ElementaryTypeName","src":"3971:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14786,"name":"_amount","nodeType":"VariableDeclaration","scope":14844,"src":"3986:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14785,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3970:32:51"},"returnParameters":{"id":14792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14791,"name":"","nodeType":"VariableDeclaration","scope":14844,"src":"4029:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14790,"name":"bool","nodeType":"ElementaryTypeName","src":"4029:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4028:6:51"},"scope":15082,"src":"3957:559:51","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14902,"nodeType":"Block","src":"4846:476:51","statements":[{"assignments":[14856],"declarations":[{"constant":false,"id":14856,"name":"curTotalSupply","nodeType":"VariableDeclaration","scope":14902,"src":"4856:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14855,"name":"uint256","nodeType":"ElementaryTypeName","src":"4856:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14859,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":14857,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14698,"src":"4881:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4881:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4856:38:51"},{"assignments":[14861],"declarations":[{"constant":false,"id":14861,"name":"amountBurned","nodeType":"VariableDeclaration","scope":14902,"src":"4904:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14860,"name":"uint256","nodeType":"ElementaryTypeName","src":"4904:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14863,"initialValue":{"argumentTypes":null,"id":14862,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14848,"src":"4927:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4904:30:51"},{"assignments":[14865],"declarations":[{"constant":false,"id":14865,"name":"previousBalanceFrom","nodeType":"VariableDeclaration","scope":14902,"src":"4944:27:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14864,"name":"uint256","nodeType":"ElementaryTypeName","src":"4944:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14869,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14867,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"4984:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14866,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"4974:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4974:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4944:46:51"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14870,"name":"previousBalanceFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"5004:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14871,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5026:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5004:34:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14878,"nodeType":"IfStatement","src":"5000:99:51","trueBody":{"id":14877,"nodeType":"Block","src":"5040:59:51","statements":[{"expression":{"argumentTypes":null,"id":14875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14873,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5054:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":14874,"name":"previousBalanceFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"5069:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5054:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14876,"nodeType":"ExpressionStatement","src":"5054:34:51"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14880,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"5125:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14881,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14856,"src":"5145:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":14882,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5162:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:29:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14879,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"5108:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5108:67:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14885,"nodeType":"ExpressionStatement","src":"5108:67:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14887,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"5202:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14889,"indexExpression":{"argumentTypes":null,"id":14888,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"5211:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5202:15:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14890,"name":"previousBalanceFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"5219:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":14891,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5241:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5219:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14886,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"5185:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:69:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14894,"nodeType":"ExpressionStatement","src":"5185:69:51"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14896,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"5274:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14897,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5281:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14895,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14670,"src":"5269:4:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5269:25:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14899,"nodeType":"EmitStatement","src":"5264:30:51"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":14900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5311:4:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14854,"id":14901,"nodeType":"Return","src":"5304:11:51"}]},"documentation":"@notice Burns `_amount` reputation from `_owner`\n @param _user The address that will lose the reputation\n @param _amount The quantity of reputation to burn\n @return True if the reputation are burned correctly","id":14903,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14851,"modifierName":{"argumentTypes":null,"id":14850,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4821:9:51","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4821:9:51"}],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":14849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14846,"name":"_user","nodeType":"VariableDeclaration","scope":14903,"src":"4782:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14845,"name":"address","nodeType":"ElementaryTypeName","src":"4782:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14848,"name":"_amount","nodeType":"VariableDeclaration","scope":14903,"src":"4797:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14847,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4781:32:51"},"returnParameters":{"id":14854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14853,"name":"","nodeType":"VariableDeclaration","scope":14903,"src":"4840:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14852,"name":"bool","nodeType":"ElementaryTypeName","src":"4840:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4839:6:51"},"scope":15082,"src":"4768:554:51","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":15001,"nodeType":"Block","src":"5820:734:51","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14913,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"5834:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5834:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5856:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5834:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14920,"nodeType":"IfStatement","src":"5830:62:51","trueBody":{"id":14919,"nodeType":"Block","src":"5859:33:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5880:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14912,"id":14918,"nodeType":"Return","src":"5873:8:51"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14921,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"5949:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14922,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"5959:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14927,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14923,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"5971:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5971:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5990:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5971:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5959:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"5959:43:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5949:53:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14939,"nodeType":"IfStatement","src":"5945:130:51","trueBody":{"id":14938,"nodeType":"Block","src":"6004:71:51","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14930,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6025:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14935,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14931,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6037:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6037:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6056:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6037:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6025:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"6025:39:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":14912,"id":14937,"nodeType":"Return","src":"6018:46:51"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14940,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"6088:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14941,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6097:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14943,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6109:1:51","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":"6097:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"6097:24:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6088:33:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14949,"nodeType":"IfStatement","src":"6084:72:51","trueBody":{"id":14948,"nodeType":"Block","src":"6123:33:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6144:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14912,"id":14947,"nodeType":"Return","src":"6137:8:51"}]}},{"assignments":[14951],"declarations":[{"constant":false,"id":14951,"name":"min","nodeType":"VariableDeclaration","scope":15001,"src":"6219:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14950,"name":"uint256","nodeType":"ElementaryTypeName","src":"6219:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14953,"initialValue":{"argumentTypes":null,"hexValue":"30","id":14952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6233:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6219:15:51"},{"assignments":[14955],"declarations":[{"constant":false,"id":14955,"name":"max","nodeType":"VariableDeclaration","scope":15001,"src":"6244:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14954,"name":"uint256","nodeType":"ElementaryTypeName","src":"6244:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14960,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14956,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6258:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6258:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6277:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6258:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6244:34:51"},{"body":{"id":14994,"nodeType":"Block","src":"6306:203:51","statements":[{"assignments":[14965],"declarations":[{"constant":false,"id":14965,"name":"mid","nodeType":"VariableDeclaration","scope":14994,"src":"6320:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14964,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14974,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14966,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14955,"src":"6335:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14967,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6341:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6335:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6347:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6335:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14971,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6334:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":14972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6352:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6334:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6320:33:51"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14975,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6371:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14977,"indexExpression":{"argumentTypes":null,"id":14976,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"6383:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6371:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"6371:26:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":14979,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"6399:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6371:34:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14992,"nodeType":"Block","src":"6455:44:51","statements":[{"expression":{"argumentTypes":null,"id":14990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14986,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14955,"src":"6473:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14987,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"6479:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6483:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6479:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6473:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14991,"nodeType":"ExpressionStatement","src":"6473:11:51"}]},"id":14993,"nodeType":"IfStatement","src":"6367:132:51","trueBody":{"id":14985,"nodeType":"Block","src":"6407:42:51","statements":[{"expression":{"argumentTypes":null,"id":14983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14981,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6425:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":14982,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"6431:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6425:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14984,"nodeType":"ExpressionStatement","src":"6425:9:51"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14961,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14955,"src":"6295:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":14962,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6301:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6295:9:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14995,"nodeType":"WhileStatement","src":"6288:221:51"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14996,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6525:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14998,"indexExpression":{"argumentTypes":null,"id":14997,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6537:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6525:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"6525:22:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":14912,"id":15000,"nodeType":"Return","src":"6518:29:51"}]},"documentation":"/////////////\n @dev `getValueAt` retrieves the number of reputation at a given block number\n @param checkpoints The history of values being queried\n @param _block The block number to retrieve the value at\n @return The number of reputation being queried","id":15002,"implemented":true,"kind":"function","modifiers":[],"name":"getValueAt","nodeType":"FunctionDefinition","parameters":{"id":14909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14906,"name":"checkpoints","nodeType":"VariableDeclaration","scope":15002,"src":"5738:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"},"typeName":{"baseType":{"contractScope":null,"id":14904,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"5738:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":14905,"length":null,"nodeType":"ArrayTypeName","src":"5738:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":14908,"name":"_block","nodeType":"VariableDeclaration","scope":15002,"src":"5772:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14907,"name":"uint256","nodeType":"ElementaryTypeName","src":"5772:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5737:50:51"},"returnParameters":{"id":14912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14911,"name":"","nodeType":"VariableDeclaration","scope":15002,"src":"5811:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14910,"name":"uint256","nodeType":"ElementaryTypeName","src":"5811:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5810:9:51"},"scope":15082,"src":"5718:836:51","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":15080,"nodeType":"Block","src":"6869:556:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15012,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6895:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6887:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6887:15:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":15014,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6906:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6887:25:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15010,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6879:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6879:34:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15017,"nodeType":"ExpressionStatement","src":"6879:34:51"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15018,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"6972:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6972:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6972:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6971:25:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15023,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7001:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15028,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15024,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7013:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7013:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":15026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7034:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7013:22:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7001:35:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":15029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"7001:45:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15030,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7049:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7049:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7001:60:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7000:62:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6971:91:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15078,"nodeType":"Block","src":"7275:144:51","statements":[{"assignments":[15062],"declarations":[{"constant":false,"id":15062,"name":"oldCheckPoint","nodeType":"VariableDeclaration","scope":15078,"src":"7289:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"},"typeName":{"contractScope":null,"id":15061,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"7289:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"value":null,"visibility":"internal"}],"id":15069,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15063,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7324:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15068,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15064,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7336:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7336:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":15066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7336:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7324:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7289:68:51"},{"expression":{"argumentTypes":null,"id":15076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15070,"name":"oldCheckPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15062,"src":"7371:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint storage pointer"}},"id":15072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"7371:19:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15074,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"7401:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7393:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7393:15:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7371:37:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":15077,"nodeType":"ExpressionStatement","src":"7371:37:51"}]},"id":15079,"nodeType":"IfStatement","src":"6967:452:51","trueBody":{"id":15060,"nodeType":"Block","src":"7064:205:51","statements":[{"assignments":[15036],"declarations":[{"constant":false,"id":15036,"name":"newCheckPoint","nodeType":"VariableDeclaration","scope":15060,"src":"7078:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"},"typeName":{"contractScope":null,"id":15035,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"7078:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"value":null,"visibility":"internal"}],"id":15042,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15037,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7113:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15041,"indexExpression":{"argumentTypes":null,"id":15040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7125:20:51","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15038,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7125:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7125:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7078:68:51"},{"expression":{"argumentTypes":null,"id":15050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15043,"name":"newCheckPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15036,"src":"7160:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint storage pointer"}},"id":15045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"7160:23:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15047,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7194:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7194:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7186:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7186:21:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7160:47:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":15051,"nodeType":"ExpressionStatement","src":"7160:47:51"},{"expression":{"argumentTypes":null,"id":15058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15052,"name":"newCheckPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15036,"src":"7221:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint storage pointer"}},"id":15054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"7221:19:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15056,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"7251:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7243:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7243:15:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7221:37:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":15059,"nodeType":"ExpressionStatement","src":"7221:37:51"}]}}]},"documentation":"@dev `updateValueAtNow` used to update the `balances` map and the\n `totalSupplyHistory`\n @param checkpoints The history of data being updated\n @param _value The new number of reputation","id":15081,"implemented":true,"kind":"function","modifiers":[],"name":"updateValueAtNow","nodeType":"FunctionDefinition","parameters":{"id":15008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15005,"name":"checkpoints","nodeType":"VariableDeclaration","scope":15081,"src":"6810:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"},"typeName":{"baseType":{"contractScope":null,"id":15003,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"6810:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":15004,"length":null,"nodeType":"ArrayTypeName","src":"6810:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":15007,"name":"_value","nodeType":"VariableDeclaration","scope":15081,"src":"6844:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15006,"name":"uint256","nodeType":"ElementaryTypeName","src":"6844:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6809:50:51"},"returnParameters":{"id":15009,"nodeType":"ParameterList","parameters":[],"src":"6869:0:51"},"scope":15082,"src":"6784:641:51","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":15083,"src":"574:6853:51"}],"src":"0:7428:51"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/Reputation.sol","exportedSymbols":{"Reputation":[15082]},"id":15083,"nodeType":"SourceUnit","nodes":[{"id":14652,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:51"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":14653,"nodeType":"ImportDirective","scope":15083,"sourceUnit":20510,"src":"26:63:51","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":14654,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"597:7:51","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":14655,"nodeType":"InheritanceSpecifier","src":"597:7:51"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title Reputation system\n@dev A DAO has Reputation System which allows peers to rate other peers in order to build trust .\nA reputation is use to assign influence measure to a DAO'S peers.\nReputation is similar to regular tokens but with one crucial difference: It is non-transferable.\nThe Reputation contract maintain a map of address to reputation value.\nIt provides an onlyOwner functions to mint and burn reputation _to (or _from) a specific address.","fullyImplemented":true,"id":15082,"linearizedBaseContracts":[15082,20509,20058],"name":"Reputation","nodeType":"ContractDefinition","nodes":[{"constant":false,"id":14658,"name":"decimals","nodeType":"VariableDeclaration","scope":15082,"src":"612:26:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":14656,"name":"uint8","nodeType":"ElementaryTypeName","src":"612:5:51","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"value":{"argumentTypes":null,"hexValue":"3138","id":14657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"636:2:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"visibility":"public"},{"anonymous":false,"documentation":null,"id":14664,"name":"Mint","nodeType":"EventDefinition","parameters":{"id":14663,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14660,"indexed":true,"name":"_to","nodeType":"VariableDeclaration","scope":14664,"src":"770:19:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14659,"name":"address","nodeType":"ElementaryTypeName","src":"770:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14662,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":14664,"src":"791:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14661,"name":"uint256","nodeType":"ElementaryTypeName","src":"791:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"769:38:51"},"src":"759:49:51"},{"anonymous":false,"documentation":null,"id":14670,"name":"Burn","nodeType":"EventDefinition","parameters":{"id":14669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14666,"indexed":true,"name":"_from","nodeType":"VariableDeclaration","scope":14670,"src":"886:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14665,"name":"address","nodeType":"ElementaryTypeName","src":"886:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14668,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":14670,"src":"909:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14667,"name":"uint256","nodeType":"ElementaryTypeName","src":"909:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"885:40:51"},"src":"875:51:51"},{"canonicalName":"Reputation.Checkpoint","id":14675,"members":[{"constant":false,"id":14672,"name":"fromBlock","nodeType":"VariableDeclaration","scope":14675,"src":"1213:17:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14671,"name":"uint128","nodeType":"ElementaryTypeName","src":"1213:7:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":null,"visibility":"internal"},{"constant":false,"id":14674,"name":"value","nodeType":"VariableDeclaration","scope":14675,"src":"1317:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"},"typeName":{"id":14673,"name":"uint128","nodeType":"ElementaryTypeName","src":"1317:7:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"value":null,"visibility":"internal"}],"name":"Checkpoint","nodeType":"StructDefinition","scope":15082,"src":"1111:226:51","visibility":"public"},{"constant":false,"id":14680,"name":"balances","nodeType":"VariableDeclaration","scope":15082,"src":"1547:42:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint[])"},"typeName":{"id":14679,"keyType":{"id":14676,"name":"address","nodeType":"ElementaryTypeName","src":"1556:7:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1547:33:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint[])"},"valueType":{"baseType":{"contractScope":null,"id":14677,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"1567:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":14678,"length":null,"nodeType":"ArrayTypeName","src":"1567:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}}},"value":null,"visibility":"internal"},{"constant":false,"id":14683,"name":"totalSupplyHistory","nodeType":"VariableDeclaration","scope":15082,"src":"1663:31:51","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint[]"},"typeName":{"baseType":{"contractScope":null,"id":14681,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"1663:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":14682,"length":null,"nodeType":"ArrayTypeName","src":"1663:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}},"value":null,"visibility":"internal"},{"body":{"id":14686,"nodeType":"Block","src":"1782:7:51","statements":[]},"documentation":"@notice Constructor to create a Reputation","id":14687,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":14684,"nodeType":"ParameterList","parameters":[],"src":"1763:7:51"},"returnParameters":{"id":14685,"nodeType":"ParameterList","parameters":[],"src":"1782:0:51"},"scope":15082,"src":"1752:37:51","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14697,"nodeType":"Block","src":"1974:51:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14693,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2005:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14694,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2005:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14692,"name":"totalSupplyAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14782,"src":"1991:13:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":14695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1991:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14691,"id":14696,"nodeType":"Return","src":"1984:34:51"}]},"documentation":"@dev This function makes it easy to get the total number of reputation\n @return The total number of reputation","id":14698,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nodeType":"FunctionDefinition","parameters":{"id":14688,"nodeType":"ParameterList","parameters":[],"src":"1941:2:51"},"returnParameters":{"id":14691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14690,"name":"","nodeType":"VariableDeclaration","scope":14698,"src":"1965:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14689,"name":"uint256","nodeType":"ElementaryTypeName","src":"1965:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1964:9:51"},"scope":15082,"src":"1921:104:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14711,"nodeType":"Block","src":"2340:57:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14706,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14700,"src":"2369:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14707,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2377:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":14708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2377:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14705,"name":"balanceOfAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14751,"src":"2357:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":14709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2357:33:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14704,"id":14710,"nodeType":"Return","src":"2350:40:51"}]},"documentation":"@dev return the reputation amount of a given owner\n@param _owner an address of the owner which we want to get his reputation","id":14712,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nodeType":"FunctionDefinition","parameters":{"id":14701,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14700,"name":"_owner","nodeType":"VariableDeclaration","scope":14712,"src":"2286:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14699,"name":"address","nodeType":"ElementaryTypeName","src":"2286:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"src":"2285:16:51"},"returnParameters":{"id":14704,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14703,"name":"balance","nodeType":"VariableDeclaration","scope":14712,"src":"2323:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14702,"name":"uint256","nodeType":"ElementaryTypeName","src":"2323:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2322:17:51"},"scope":15082,"src":"2267:130:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14750,"nodeType":"Block","src":"2776:291:51","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14721,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"2791:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14723,"indexExpression":{"argumentTypes":null,"id":14722,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"2800:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2791:16:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14724,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2791:23:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2818:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2791:28:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14727,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2790:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14728,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"2825:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14730,"indexExpression":{"argumentTypes":null,"id":14729,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"2834:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2825:16:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14732,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2842:1:51","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":"2825:19:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14733,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"2825:29:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":14734,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"2857:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2825:44:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2824:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2790:80:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14748,"nodeType":"Block","src":"2987:74:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14742,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"3019:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14744,"indexExpression":{"argumentTypes":null,"id":14743,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14714,"src":"3028:6:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3019:16:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"id":14745,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14716,"src":"3037:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14741,"name":"getValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15002,"src":"3008:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":14746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3008:42:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14720,"id":14747,"nodeType":"Return","src":"3001:49:51"}]},"id":14749,"nodeType":"IfStatement","src":"2786:275:51","trueBody":{"id":14740,"nodeType":"Block","src":"2872:109:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2893:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14720,"id":14739,"nodeType":"Return","src":"2886:8:51"}]}}]},"documentation":"@dev Queries the balance of `_owner` at a specific `_blockNumber`\n @param _owner The address from which the balance will be retrieved\n @param _blockNumber The block number when the balance is queried\n @return The balance at `_blockNumber`","id":14751,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfAt","nodeType":"FunctionDefinition","parameters":{"id":14717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14714,"name":"_owner","nodeType":"VariableDeclaration","scope":14751,"src":"2700:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14713,"name":"address","nodeType":"ElementaryTypeName","src":"2700:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14716,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":14751,"src":"2716:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14715,"name":"uint256","nodeType":"ElementaryTypeName","src":"2716:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2699:38:51"},"returnParameters":{"id":14720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14719,"name":"","nodeType":"VariableDeclaration","scope":14751,"src":"2763:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14718,"name":"uint256","nodeType":"ElementaryTypeName","src":"2763:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2762:9:51"},"scope":15082,"src":"2679:388:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14781,"nodeType":"Block","src":"3368:301:51","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":14770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14758,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"3383:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14759,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3383:25:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14760,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3412:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3383:30:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14762,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3382:32:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14763,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"3419:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},"id":14765,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14764,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3438:1:51","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":"3419:21:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"3419:31:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":14767,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"3453:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3419:46:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":14769,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3418:48:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3382:84:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14779,"nodeType":"Block","src":"3587:76:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14775,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"3619:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"id":14776,"name":"_blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14753,"src":"3639:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14774,"name":"getValueAt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15002,"src":"3608:10:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256) view returns (uint256)"}},"id":14777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3608:44:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14757,"id":14778,"nodeType":"Return","src":"3601:51:51"}]},"id":14780,"nodeType":"IfStatement","src":"3378:285:51","trueBody":{"id":14773,"nodeType":"Block","src":"3468:113:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14771,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3489:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14757,"id":14772,"nodeType":"Return","src":"3482:8:51"}]}}]},"documentation":"@notice Total amount of reputation at a specific `_blockNumber`.\n @param _blockNumber The block number when the totalSupply is queried\n @return The total amount of reputation at `_blockNumber`","id":14782,"implemented":true,"kind":"function","modifiers":[],"name":"totalSupplyAt","nodeType":"FunctionDefinition","parameters":{"id":14754,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14753,"name":"_blockNumber","nodeType":"VariableDeclaration","scope":14782,"src":"3317:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14752,"name":"uint256","nodeType":"ElementaryTypeName","src":"3317:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3316:22:51"},"returnParameters":{"id":14757,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14756,"name":"","nodeType":"VariableDeclaration","scope":14782,"src":"3359:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14755,"name":"uint256","nodeType":"ElementaryTypeName","src":"3359:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3358:9:51"},"scope":15082,"src":"3294:375:51","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":14843,"nodeType":"Block","src":"4035:481:51","statements":[{"assignments":[14794],"declarations":[{"constant":false,"id":14794,"name":"curTotalSupply","nodeType":"VariableDeclaration","scope":14843,"src":"4045:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14793,"name":"uint256","nodeType":"ElementaryTypeName","src":"4045:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14797,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":14795,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14698,"src":"4070:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4070:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4045:38:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14799,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"4101:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14800,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4118:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4101:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":14802,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"4129:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4101:42:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14798,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4093:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4093:51:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14805,"nodeType":"ExpressionStatement","src":"4093:51:51"},{"assignments":[14807],"declarations":[{"constant":false,"id":14807,"name":"previousBalanceTo","nodeType":"VariableDeclaration","scope":14843,"src":"4176:25:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14806,"name":"uint256","nodeType":"ElementaryTypeName","src":"4176:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14811,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14809,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"4214:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14808,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"4204:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4204:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4176:44:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14813,"name":"previousBalanceTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"4238:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14814,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4258:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4238:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":14816,"name":"previousBalanceTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"4269:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4238:48:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":14812,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"4230:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":14818,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4230:57:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14819,"nodeType":"ExpressionStatement","src":"4230:57:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14821,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"4336:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14822,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14794,"src":"4356:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14823,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4373:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4356:24:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14820,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"4319:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4319:62:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14826,"nodeType":"ExpressionStatement","src":"4319:62:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14828,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"4408:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14830,"indexExpression":{"argumentTypes":null,"id":14829,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"4417:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4408:15:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14831,"name":"previousBalanceTo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14807,"src":"4425:17:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14832,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4445:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4425:27:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14827,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"4391:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4391:62:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14835,"nodeType":"ExpressionStatement","src":"4391:62:51"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14837,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14784,"src":"4473:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14838,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14786,"src":"4480:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14836,"name":"Mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14664,"src":"4468:4:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4468:20:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14840,"nodeType":"EmitStatement","src":"4463:25:51"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":14841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4505:4:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14792,"id":14842,"nodeType":"Return","src":"4498:11:51"}]},"documentation":"@notice Generates `_amount` reputation that are assigned to `_owner`\n @param _user The address that will be assigned the new reputation\n @param _amount The quantity of reputation generated\n @return True if the reputation are generated correctly","id":14844,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14789,"modifierName":{"argumentTypes":null,"id":14788,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4010:9:51","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4010:9:51"}],"name":"mint","nodeType":"FunctionDefinition","parameters":{"id":14787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14784,"name":"_user","nodeType":"VariableDeclaration","scope":14844,"src":"3971:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14783,"name":"address","nodeType":"ElementaryTypeName","src":"3971:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14786,"name":"_amount","nodeType":"VariableDeclaration","scope":14844,"src":"3986:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14785,"name":"uint256","nodeType":"ElementaryTypeName","src":"3986:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3970:32:51"},"returnParameters":{"id":14792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14791,"name":"","nodeType":"VariableDeclaration","scope":14844,"src":"4029:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14790,"name":"bool","nodeType":"ElementaryTypeName","src":"4029:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4028:6:51"},"scope":15082,"src":"3957:559:51","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":14902,"nodeType":"Block","src":"4846:476:51","statements":[{"assignments":[14856],"declarations":[{"constant":false,"id":14856,"name":"curTotalSupply","nodeType":"VariableDeclaration","scope":14902,"src":"4856:22:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14855,"name":"uint256","nodeType":"ElementaryTypeName","src":"4856:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14859,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"id":14857,"name":"totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14698,"src":"4881:11:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":14858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4881:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4856:38:51"},{"assignments":[14861],"declarations":[{"constant":false,"id":14861,"name":"amountBurned","nodeType":"VariableDeclaration","scope":14902,"src":"4904:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14860,"name":"uint256","nodeType":"ElementaryTypeName","src":"4904:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14863,"initialValue":{"argumentTypes":null,"id":14862,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14848,"src":"4927:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4904:30:51"},{"assignments":[14865],"declarations":[{"constant":false,"id":14865,"name":"previousBalanceFrom","nodeType":"VariableDeclaration","scope":14902,"src":"4944:27:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14864,"name":"uint256","nodeType":"ElementaryTypeName","src":"4944:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14869,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14867,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"4984:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14866,"name":"balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14712,"src":"4974:9:51","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":14868,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4974:16:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4944:46:51"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14870,"name":"previousBalanceFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"5004:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":14871,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5026:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5004:34:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14878,"nodeType":"IfStatement","src":"5000:99:51","trueBody":{"id":14877,"nodeType":"Block","src":"5040:59:51","statements":[{"expression":{"argumentTypes":null,"id":14875,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14873,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5054:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":14874,"name":"previousBalanceFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"5069:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5054:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14876,"nodeType":"ExpressionStatement","src":"5054:34:51"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14880,"name":"totalSupplyHistory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14683,"src":"5125:18:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14881,"name":"curTotalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14856,"src":"5145:14:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":14882,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5162:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5145:29:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14879,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"5108:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14884,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5108:67:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14885,"nodeType":"ExpressionStatement","src":"5108:67:51"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14887,"name":"balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14680,"src":"5202:8:51","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_$","typeString":"mapping(address => struct Reputation.Checkpoint storage ref[] storage ref)"}},"id":14889,"indexExpression":{"argumentTypes":null,"id":14888,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"5211:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5202:15:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"}},{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14890,"name":"previousBalanceFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14865,"src":"5219:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":14891,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5241:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5219:34:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage","typeString":"struct Reputation.Checkpoint storage ref[] storage ref"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14886,"name":"updateValueAtNow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15081,"src":"5185:16:51","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct Reputation.Checkpoint storage ref[] storage pointer,uint256)"}},"id":14893,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5185:69:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14894,"nodeType":"ExpressionStatement","src":"5185:69:51"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14896,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14846,"src":"5274:5:51","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14897,"name":"amountBurned","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14861,"src":"5281:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":14895,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14670,"src":"5269:4:51","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":14898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5269:25:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14899,"nodeType":"EmitStatement","src":"5264:30:51"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":14900,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5311:4:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":14854,"id":14901,"nodeType":"Return","src":"5304:11:51"}]},"documentation":"@notice Burns `_amount` reputation from `_owner`\n @param _user The address that will lose the reputation\n @param _amount The quantity of reputation to burn\n @return True if the reputation are burned correctly","id":14903,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":14851,"modifierName":{"argumentTypes":null,"id":14850,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"4821:9:51","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"4821:9:51"}],"name":"burn","nodeType":"FunctionDefinition","parameters":{"id":14849,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14846,"name":"_user","nodeType":"VariableDeclaration","scope":14903,"src":"4782:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14845,"name":"address","nodeType":"ElementaryTypeName","src":"4782:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14848,"name":"_amount","nodeType":"VariableDeclaration","scope":14903,"src":"4797:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14847,"name":"uint256","nodeType":"ElementaryTypeName","src":"4797:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4781:32:51"},"returnParameters":{"id":14854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14853,"name":"","nodeType":"VariableDeclaration","scope":14903,"src":"4840:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14852,"name":"bool","nodeType":"ElementaryTypeName","src":"4840:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"4839:6:51"},"scope":15082,"src":"4768:554:51","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":15001,"nodeType":"Block","src":"5820:734:51","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14913,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"5834:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14914,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5834:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":14915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5856:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5834:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14920,"nodeType":"IfStatement","src":"5830:62:51","trueBody":{"id":14919,"nodeType":"Block","src":"5859:33:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5880:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14912,"id":14918,"nodeType":"Return","src":"5873:8:51"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14921,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"5949:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14922,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"5959:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14927,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14923,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"5971:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5971:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14925,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5990:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5971:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5959:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14928,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"5959:43:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"5949:53:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14939,"nodeType":"IfStatement","src":"5945:130:51","trueBody":{"id":14938,"nodeType":"Block","src":"6004:71:51","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14930,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6025:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14935,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14931,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6037:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14932,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6037:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14933,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6056:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6037:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6025:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"6025:39:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":14912,"id":14937,"nodeType":"Return","src":"6018:46:51"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14940,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"6088:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14941,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6097:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14943,"indexExpression":{"argumentTypes":null,"hexValue":"30","id":14942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6109:1:51","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":"6097:14:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"6097:24:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"6088:33:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14949,"nodeType":"IfStatement","src":"6084:72:51","trueBody":{"id":14948,"nodeType":"Block","src":"6123:33:51","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14946,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6144:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14912,"id":14947,"nodeType":"Return","src":"6137:8:51"}]}},{"assignments":[14951],"declarations":[{"constant":false,"id":14951,"name":"min","nodeType":"VariableDeclaration","scope":15001,"src":"6219:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14950,"name":"uint256","nodeType":"ElementaryTypeName","src":"6219:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14953,"initialValue":{"argumentTypes":null,"hexValue":"30","id":14952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6233:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6219:15:51"},{"assignments":[14955],"declarations":[{"constant":false,"id":14955,"name":"max","nodeType":"VariableDeclaration","scope":15001,"src":"6244:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14954,"name":"uint256","nodeType":"ElementaryTypeName","src":"6244:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14960,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14959,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14956,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6258:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14957,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6258:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14958,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6277:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6258:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6244:34:51"},{"body":{"id":14994,"nodeType":"Block","src":"6306:203:51","statements":[{"assignments":[14965],"declarations":[{"constant":false,"id":14965,"name":"mid","nodeType":"VariableDeclaration","scope":14994,"src":"6320:11:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14964,"name":"uint256","nodeType":"ElementaryTypeName","src":"6320:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":14974,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14966,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14955,"src":"6335:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":14967,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6341:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6335:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6347:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6335:13:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":14971,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6334:15:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"hexValue":"32","id":14972,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6352:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"6334:19:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6320:33:51"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14975,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6371:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14977,"indexExpression":{"argumentTypes":null,"id":14976,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"6383:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6371:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"6371:26:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":14979,"name":"_block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14908,"src":"6399:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6371:34:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":14992,"nodeType":"Block","src":"6455:44:51","statements":[{"expression":{"argumentTypes":null,"id":14990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14986,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14955,"src":"6473:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14987,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"6479:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":14988,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6483:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"6479:5:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6473:11:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14991,"nodeType":"ExpressionStatement","src":"6473:11:51"}]},"id":14993,"nodeType":"IfStatement","src":"6367:132:51","trueBody":{"id":14985,"nodeType":"Block","src":"6407:42:51","statements":[{"expression":{"argumentTypes":null,"id":14983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":14981,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6425:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":14982,"name":"mid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14965,"src":"6431:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6425:9:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":14984,"nodeType":"ExpressionStatement","src":"6425:9:51"}]}}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":14963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14961,"name":"max","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14955,"src":"6295:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"id":14962,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6301:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6295:9:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":14995,"nodeType":"WhileStatement","src":"6288:221:51"},{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14996,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14906,"src":"6525:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":14998,"indexExpression":{"argumentTypes":null,"id":14997,"name":"min","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14951,"src":"6537:3:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6525:16:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":14999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"6525:22:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"functionReturnParameters":14912,"id":15000,"nodeType":"Return","src":"6518:29:51"}]},"documentation":"/////////////\n @dev `getValueAt` retrieves the number of reputation at a given block number\n @param checkpoints The history of values being queried\n @param _block The block number to retrieve the value at\n @return The number of reputation being queried","id":15002,"implemented":true,"kind":"function","modifiers":[],"name":"getValueAt","nodeType":"FunctionDefinition","parameters":{"id":14909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14906,"name":"checkpoints","nodeType":"VariableDeclaration","scope":15002,"src":"5738:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"},"typeName":{"baseType":{"contractScope":null,"id":14904,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"5738:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":14905,"length":null,"nodeType":"ArrayTypeName","src":"5738:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":14908,"name":"_block","nodeType":"VariableDeclaration","scope":15002,"src":"5772:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14907,"name":"uint256","nodeType":"ElementaryTypeName","src":"5772:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5737:50:51"},"returnParameters":{"id":14912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14911,"name":"","nodeType":"VariableDeclaration","scope":15002,"src":"5811:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14910,"name":"uint256","nodeType":"ElementaryTypeName","src":"5811:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5810:9:51"},"scope":15082,"src":"5718:836:51","stateMutability":"view","superFunction":null,"visibility":"internal"},{"body":{"id":15080,"nodeType":"Block","src":"6869:556:51","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15012,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6895:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6887:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6887:15:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":15014,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"6906:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6887:25:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":15010,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6879:7:51","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":15016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6879:34:51","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":15017,"nodeType":"ExpressionStatement","src":"6879:34:51"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":15034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15018,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"6972:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15019,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6972:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":15020,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6994:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6972:23:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15022,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6971:25:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15023,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7001:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15028,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15024,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7013:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7013:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":15026,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7034:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7013:22:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7001:35:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"id":15029,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"7001:45:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15030,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7049:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15031,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7049:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7001:60:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":15033,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7000:62:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6971:91:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":15078,"nodeType":"Block","src":"7275:144:51","statements":[{"assignments":[15062],"declarations":[{"constant":false,"id":15062,"name":"oldCheckPoint","nodeType":"VariableDeclaration","scope":15078,"src":"7289:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"},"typeName":{"contractScope":null,"id":15061,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"7289:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"value":null,"visibility":"internal"}],"id":15069,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15063,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7324:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15068,"indexExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":15067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15064,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7336:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7336:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"hexValue":"31","id":15066,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7355:1:51","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"7336:20:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7324:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7289:68:51"},{"expression":{"argumentTypes":null,"id":15076,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15070,"name":"oldCheckPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15062,"src":"7371:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint storage pointer"}},"id":15072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"7371:19:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15074,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"7401:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7393:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7393:15:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7371:37:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":15077,"nodeType":"ExpressionStatement","src":"7371:37:51"}]},"id":15079,"nodeType":"IfStatement","src":"6967:452:51","trueBody":{"id":15060,"nodeType":"Block","src":"7064:205:51","statements":[{"assignments":[15036],"declarations":[{"constant":false,"id":15036,"name":"newCheckPoint","nodeType":"VariableDeclaration","scope":15060,"src":"7078:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"},"typeName":{"contractScope":null,"id":15035,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"7078:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"value":null,"visibility":"internal"}],"id":15042,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":15037,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7113:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15041,"indexExpression":{"argumentTypes":null,"id":15040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"7125:20:51","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15038,"name":"checkpoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15005,"src":"7125:11:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint storage ref[] storage pointer"}},"id":15039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7125:18:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7113:33:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage","typeString":"struct Reputation.Checkpoint storage ref"}},"nodeType":"VariableDeclarationStatement","src":"7078:68:51"},{"expression":{"argumentTypes":null,"id":15050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15043,"name":"newCheckPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15036,"src":"7160:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint storage pointer"}},"id":15045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"fromBlock","nodeType":"MemberAccess","referencedDeclaration":14672,"src":"7160:23:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15047,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"7194:5:51","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":15048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7194:12:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7186:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7186:21:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7160:47:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":15051,"nodeType":"ExpressionStatement","src":"7160:47:51"},{"expression":{"argumentTypes":null,"id":15058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":15052,"name":"newCheckPoint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15036,"src":"7221:13:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint storage pointer"}},"id":15054,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":14674,"src":"7221:19:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":15056,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":15007,"src":"7251:6:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":15055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7243:7:51","typeDescriptions":{"typeIdentifier":"t_type$_t_uint128_$","typeString":"type(uint128)"},"typeName":"uint128"},"id":15057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7243:15:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"src":"7221:37:51","typeDescriptions":{"typeIdentifier":"t_uint128","typeString":"uint128"}},"id":15059,"nodeType":"ExpressionStatement","src":"7221:37:51"}]}}]},"documentation":"@dev `updateValueAtNow` used to update the `balances` map and the\n `totalSupplyHistory`\n @param checkpoints The history of data being updated\n @param _value The new number of reputation","id":15081,"implemented":true,"kind":"function","modifiers":[],"name":"updateValueAtNow","nodeType":"FunctionDefinition","parameters":{"id":15008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":15005,"name":"checkpoints","nodeType":"VariableDeclaration","scope":15081,"src":"6810:32:51","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"},"typeName":{"baseType":{"contractScope":null,"id":15003,"name":"Checkpoint","nodeType":"UserDefinedTypeName","referencedDeclaration":14675,"src":"6810:10:51","typeDescriptions":{"typeIdentifier":"t_struct$_Checkpoint_$14675_storage_ptr","typeString":"struct Reputation.Checkpoint"}},"id":15004,"length":null,"nodeType":"ArrayTypeName","src":"6810:12:51","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_Checkpoint_$14675_storage_$dyn_storage_ptr","typeString":"struct Reputation.Checkpoint[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":15007,"name":"_value","nodeType":"VariableDeclaration","scope":15081,"src":"6844:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":15006,"name":"uint256","nodeType":"ElementaryTypeName","src":"6844:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"6809:50:51"},"returnParameters":{"id":15009,"nodeType":"ParameterList","parameters":[],"src":"6869:0:51"},"scope":15082,"src":"6784:641:51","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":15083,"src":"574:6853:51"}],"src":"0:7428:51"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.232Z","devdoc":{"details":"A DAO has Reputation System which allows peers to rate other peers in order to build trust . A reputation is use to assign influence measure to a DAO'S peers. Reputation is similar to regular tokens but with one crucial difference: It is non-transferable. The Reputation contract maintain a map of address to reputation value. It provides an onlyOwner functions to mint and burn reputation _to (or _from) a specific address.","methods":{"balanceOf(address)":{"details":"return the reputation amount of a given owner","params":{"_owner":"an address of the owner which we want to get his reputation"}},"balanceOfAt(address,uint256)":{"details":"Queries the balance of `_owner` at a specific `_blockNumber`","params":{"_blockNumber":"The block number when the balance is queried","_owner":"The address from which the balance will be retrieved"},"return":"The balance at `_blockNumber`"},"burn(address,uint256)":{"params":{"_amount":"The quantity of reputation to burn","_user":"The address that will lose the reputation"},"return":"True if the reputation are burned correctly"},"isOwner()":{"details":"Returns true if the caller is the current owner."},"mint(address,uint256)":{"params":{"_amount":"The quantity of reputation generated","_user":"The address that will be assigned the new reputation"},"return":"True if the reputation are generated correctly"},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"totalSupply()":{"details":"This function makes it easy to get the total number of reputation","return":"The total number of reputation"},"totalSupplyAt(uint256)":{"params":{"_blockNumber":"The block number when the totalSupply is queried"},"return":"The total amount of reputation at `_blockNumber`"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"Reputation system"},"userdoc":{"methods":{"burn(address,uint256)":{"notice":"Burns `_amount` reputation from `_owner`"},"constructor":"Constructor to create a Reputation","mint(address,uint256)":{"notice":"Generates `_amount` reputation that are assigned to `_owner`"},"totalSupplyAt(uint256)":{"notice":"Total amount of reputation at a specific `_blockNumber`."}}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ReputationAdmin.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ReputationAdmin.json new file mode 100644 index 00000000..55db147f --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ReputationAdmin.json @@ -0,0 +1 @@ +{"contractName":"ReputationAdmin","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"constant":true,"inputs":[],"name":"activationEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"activationStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"limitRepReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","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":"repRewardLeft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_activationStartTime","type":"uint256"},{"internalType":"uint256","name":"_activationEndTime","type":"uint256"},{"internalType":"uint256","name":"_maxRepReward","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_beneficiaries","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"reputationMint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"_beneficiaries","type":"address[]"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"}],"name":"reputationBurn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"activationEndTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"activationStartTime\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_activationStartTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_activationEndTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_maxRepReward\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"limitRepReward\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"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\":\"repRewardLeft\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_beneficiaries\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"reputationBurn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_beneficiaries\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"reputationMint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"initialize(address,uint256,uint256,uint256)\":{\"details\":\"initialize\",\"params\":{\"_activationEndTime\":\"end time for allowing minting\",\"_activationStartTime\":\"start time for allowing minting\",\"_avatar\":\"the avatar to mint reputation from\",\"_maxRepReward\":\"maximum reputation mintable by this scheme\"}},\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"reputationBurn(address[],uint256[])\":{\"details\":\"reputationBurn function\",\"params\":{\"_amounts\":\"the amounts of reputation to burn for beneficiaries\",\"_beneficiaries\":\"the beneficiaries address to burm reputation from\"}},\"reputationMint(address[],uint256[])\":{\"details\":\"reputationBurn function\",\"params\":{\"_amounts\":\"the amounts of reputation to mint for beneficiaries\",\"_beneficiaries\":\"the beneficiaries address to mint reputation from\"}},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"title\":\"A scheme for reputation minting/burning by an authorized account\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/ReputationAdmin.sol\":\"ReputationAdmin\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/ReputationAdmin.sol\":{\"keccak256\":\"0x63c9d357dc9034cf4c1c22325bbfe743ba71bee83c4918b48a3be67b03142e92\",\"urls\":[\"bzz-raw://fd49aa2ad761c38870d994e88e057bb251de2f909b19b1689b49e048bc52cd88\",\"dweb:/ipfs/QmPVBLRjc8vMhH85bjc9vHYnjjLtUVeR1TzcMJ6AS8Ek9r\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"273:3983:21:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;273:3983:21;;788:96:63;867:10;788:96;:::o;273:3983:21:-;;;;;;;","deployedSourceMap":"273:3983:21:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;273:3983:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1655:330;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1655:330:21;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1655:330:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1655:330:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;1655:330:21;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;1655:330:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1655:330:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;1655:330:21;;-1:-1:-1;1655:330:21;-1:-1:-1;1655:330:21;:::i;:::-;;452:28;;;:::i;:::-;;;;;;;;;;;;;;;;819:624;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;819:624:21;;;;;;;;;;;;;;;;;;:::i;348:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;348:20:21;;;;;;;;;;;;;;486:29;;;:::i;1642:137:67:-;;;:::i;857:77::-;;;:::i;1208:92::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;2197:330:21;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2197:330:21;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2197:330:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2197:330:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;2197:330:21;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;2197:330:21;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2197:330:21;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;-1:-1;2197:330:21;;-1:-1:-1;2197:330:21;-1:-1:-1;2197:330:21;:::i;414:32::-;;;:::i;374:34::-;;;:::i;1928:107:67:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;1655:330:21:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1780:40:21;;;1772:75;;;;;-1:-1:-1;;;1772:75:21;;;;;;;;;;;;-1:-1:-1;;;1772:75:21;;;;;;;;;;;;;;;1862:9;1857:122;1875:25;;;1857:122;;;1921:47;1937:14;;1952:1;1937:17;;;;;;;;;;;;;-1:-1:-1;;;;;1937:17:21;1956:8;;1965:1;1956:11;;;;;;;;;;;;;1921:15;:47::i;:::-;1902:3;;1857:122;;;;1655:330;;;;:::o;452:28::-;;;;:::o;819:624::-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1011:6:21;;-1:-1:-1;;;;;1011:6:21;:19;1003:59;;;;;-1:-1:-1;;;1003:59:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1080:20:21;;1072:54;;;;;-1:-1:-1;;;1072:54:21;;;;;;;;;;;;-1:-1:-1;;;1072:54:21;;;;;;;;;;;;;;;1167:18;1144:20;:41;1136:95;;;;-1:-1:-1;;;1136:95:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1241:6;:16;;-1:-1:-1;;;;;;1241:16:21;-1:-1:-1;;;;;1241:16:21;;;;;;;;;;;1267:19;:42;;;;1319:17;:38;1367:13;:29;;;1406:14;:30;819:624::o;348:20::-;;;-1:-1:-1;;;;;348:20:21;;:::o;486:29::-;;;;:::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;2197:330:21:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2322:40:21;;;2314:75;;;;;-1:-1:-1;;;2314:75:21;;;;;;;;;;;;-1:-1:-1;;;2314:75:21;;;;;;;;;;;;;;;2404:9;2399:122;2417:25;;;2399:122;;;2463:47;2479:14;;2494:1;2479:17;;;;;;;;;;;;;-1:-1:-1;;;;;2479:17:21;2498:8;;2507:1;2498:11;;;;;;;;;;;;;2463:15;:47::i;:::-;2444:3;;2399:122;;414:32;;;;:::o;374:34::-;;;;:::o;1928:107:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1053:54:67;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;2735:608:21:-;2886:19;;2879:3;:26;;2871:71;;;;;-1:-1:-1;;;2871:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3020:17;;3014:3;:23;3006:57;;;;;-1:-1:-1;;;3006:57:21;;;;;;;;;;;;-1:-1:-1;;;3006:57:21;;;;;;;;;;;;;;;3078:14;;:18;3074:91;;3128:13;;:26;;3146:7;3128:26;:17;:26;:::i;:::-;3112:13;:42;3074:91;3207:6;;;;;;;;;-1:-1:-1;;;;;3207:6:21;-1:-1:-1;;;;;3207:12:21;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3207:14:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3207:14:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3207:14:21;3269:6;;3196:81;;;-1:-1:-1;;;3196:81:21;;;;;;;;-1:-1:-1;;;;;3196:81:21;;;;;;;3269:6;;;3196:81;;;;;;:41;;;;;;;:81;;;;;3207:14;;3196:81;;;;;;;3269:6;3196:41;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;3196:81:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3196:81:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3196:81:21;3175:161;;;;-1:-1:-1;;;3175:161:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2735:608;;:::o;788:96:63:-;867:10;788:96;:::o;3550:704:21:-;3701:19;;3694:3;:26;;3686:71;;;;;-1:-1:-1;;;3686:71:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3835:17;;3829:3;:23;3821:57;;;;;-1:-1:-1;;;3821:57:21;;;;;;;;;;;;-1:-1:-1;;;3821:57:21;;;;;;;;;;;;;;;3893:14;;:18;3889:190;;3965:13;;3946:14;;:33;;;:18;:33;:::i;:::-;3935:7;:44;;3927:85;;;;;-1:-1:-1;;;3927:85:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;4042:13;;:26;;4060:7;4042:26;:17;:26;:::i;:::-;4026:13;:42;3889:190;4121:6;;;;;;;;;-1:-1:-1;;;;;4121:6:21;-1:-1:-1;;;;;4121:12:21;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4121:14:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4121:14:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4121:14:21;4183:6;;4110:81;;;-1:-1:-1;;;4110:81:21;;;;;;;;-1:-1:-1;;;;;4110:81:21;;;;;;;4183:6;;;4110:81;;;;;;:41;;;;;;;:81;;;;;4121:14;;4110:81;;;;;;;4183:6;4110:41;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;4110:81:21;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4110:81:21;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4110:81:21;4089:158;;;;;-1:-1:-1;;;4089:158:21;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:225:67;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o;1274:134:66:-;1332:7;1358:43;1362:1;1365;1358:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1351:50;1274:134;-1:-1:-1;;;1274:134:66:o;834:176::-;892:7;923:5;;;946:6;;;;938:46;;;;;-1:-1:-1;;;938:46:66;;;;;;;;;;;;;;;;;;;;;;;;;;;1732:187;1818:7;1853:12;1845:6;;;;1837:29;;;;-1:-1:-1;;;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1837:29:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1888:5:66;;;1732:187::o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"../controller/Controller.sol\";\n\n/**\n * @title A scheme for reputation minting/burning by an authorized account\n */\n\ncontract ReputationAdmin is Ownable {\n using SafeMath for uint256;\n\n Avatar public avatar;\n uint256 public activationStartTime;\n uint256 public activationEndTime;\n uint256 public repRewardLeft;\n uint256 public limitRepReward;\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _activationStartTime start time for allowing minting\n * @param _activationEndTime end time for allowing minting\n * @param _maxRepReward maximum reputation mintable by this scheme\n */\n function initialize(\n Avatar _avatar,\n uint256 _activationStartTime,\n uint256 _activationEndTime,\n uint256 _maxRepReward\n ) external onlyOwner {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n require(_activationStartTime < _activationEndTime, \"_activationStartTime < _activationEndTime\");\n avatar = _avatar;\n activationStartTime = _activationStartTime;\n activationEndTime = _activationEndTime;\n repRewardLeft = _maxRepReward;\n limitRepReward = _maxRepReward;\n }\n\n /**\n * @dev reputationBurn function\n * @param _beneficiaries the beneficiaries address to mint reputation from\n * @param _amounts the amounts of reputation to mint for beneficiaries\n */\n function reputationMint(address[] calldata _beneficiaries, uint256[] calldata _amounts) external onlyOwner {\n require(_beneficiaries.length == _amounts.length, \"Arrays length mismatch\");\n for (uint256 i=0; i < _beneficiaries.length; i++) {\n _reputationMint(_beneficiaries[i], _amounts[i]);\n }\n }\n\n /**\n * @dev reputationBurn function\n * @param _beneficiaries the beneficiaries address to burm reputation from\n * @param _amounts the amounts of reputation to burn for beneficiaries\n */\n function reputationBurn(address[] calldata _beneficiaries, uint256[] calldata _amounts) external onlyOwner {\n require(_beneficiaries.length == _amounts.length, \"Arrays length mismatch\");\n for (uint256 i=0; i < _beneficiaries.length; i++) {\n _reputationBurn(_beneficiaries[i], _amounts[i]);\n }\n }\n\n /**\n * @dev reputationMint function\n * @param _beneficiary the beneficiary address to mint reputation for\n * @param _amount the amount of reputation to mint the the beneficirary\n */\n function _reputationMint(address _beneficiary, uint256 _amount) private {\n // solhint-disable-next-line not-rely-on-time\n require(now >= activationStartTime, \"Minting period did not start yet\");\n // solhint-disable-next-line not-rely-on-time\n require(now < activationEndTime, \"Minting period ended.\");\n\n if (limitRepReward > 0) {\n repRewardLeft = repRewardLeft.sub(_amount);\n }\n\n require(\n Controller(avatar.owner()).mintReputation(_amount, _beneficiary, address(avatar)),\n \"Minting reputation should succeed\"\n );\n }\n\n /**\n * @dev reputationBurn function\n * @param _beneficiary the beneficiary address to burm reputation from\n * @param _amount the amount of reputation to burn for a beneficirary\n */\n function _reputationBurn(address _beneficiary, uint256 _amount) private {\n // solhint-disable-next-line not-rely-on-time\n require(now >= activationStartTime, \"Burning period did not start yet\");\n // solhint-disable-next-line not-rely-on-time\n require(now < activationEndTime, \"Burning period ended.\");\n\n if (limitRepReward > 0) {\n require(_amount <= limitRepReward.sub(repRewardLeft), \"Cannot burn more than minted\");\n repRewardLeft = repRewardLeft.add(_amount);\n }\n\n require(\n Controller(avatar.owner()).burnReputation(_amount, _beneficiary, address(avatar)),\n \"Burn reputation should succeed\"\n );\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/ReputationAdmin.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ReputationAdmin.sol","exportedSymbols":{"ReputationAdmin":[8136]},"id":8137,"nodeType":"SourceUnit","nodes":[{"id":7862,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:21"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":7863,"nodeType":"ImportDirective","scope":8137,"sourceUnit":20510,"src":"25:63:21","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":7864,"nodeType":"ImportDirective","scope":8137,"sourceUnit":20396,"src":"89:59:21","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":7865,"nodeType":"ImportDirective","scope":8137,"sourceUnit":1798,"src":"149:38:21","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7866,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"301:7:21","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":7867,"nodeType":"InheritanceSpecifier","src":"301:7:21"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title A scheme for reputation minting/burning by an authorized account","fullyImplemented":true,"id":8136,"linearizedBaseContracts":[8136,20509,20058],"name":"ReputationAdmin","nodeType":"ContractDefinition","nodes":[{"id":7870,"libraryName":{"contractScope":null,"id":7868,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"321:8:21","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"315:27:21","typeName":{"id":7869,"name":"uint256","nodeType":"ElementaryTypeName","src":"334:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":7872,"name":"avatar","nodeType":"VariableDeclaration","scope":8136,"src":"348:20:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7871,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"348:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":7874,"name":"activationStartTime","nodeType":"VariableDeclaration","scope":8136,"src":"374:34:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7873,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7876,"name":"activationEndTime","nodeType":"VariableDeclaration","scope":8136,"src":"414:32:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7875,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7878,"name":"repRewardLeft","nodeType":"VariableDeclaration","scope":8136,"src":"452:28:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7877,"name":"uint256","nodeType":"ElementaryTypeName","src":"452:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7880,"name":"limitRepReward","nodeType":"VariableDeclaration","scope":8136,"src":"486:29:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7879,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":7938,"nodeType":"Block","src":"993:450:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7894,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"1011:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:1:21","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":7895,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1021:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1021:9:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1011:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":7899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1032:29:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":7893,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1003:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1003:59:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7901,"nodeType":"ExpressionStatement","src":"1003:59:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7903,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"1080:7:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1098:1:21","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":7904,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1091:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1091:9:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1080:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":7908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1102:23:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":7902,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1072:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1072:54:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7910,"nodeType":"ExpressionStatement","src":"1072:54:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7912,"name":"_activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7884,"src":"1144:20:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":7913,"name":"_activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"1167:18:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1144:41:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f61637469766174696f6e537461727454696d65203c205f61637469766174696f6e456e6454696d65","id":7915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1187:43:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8c7c241f48a56446d2e05779fff3b0e088217d2bb13f82ee9341d50d610a6a01","typeString":"literal_string \"_activationStartTime < _activationEndTime\""},"value":"_activationStartTime < _activationEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c7c241f48a56446d2e05779fff3b0e088217d2bb13f82ee9341d50d610a6a01","typeString":"literal_string \"_activationStartTime < _activationEndTime\""}],"id":7911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1136:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1136:95:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7917,"nodeType":"ExpressionStatement","src":"1136:95:21"},{"expression":{"argumentTypes":null,"id":7920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7918,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"1241:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7919,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"1250:7:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1241:16:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7921,"nodeType":"ExpressionStatement","src":"1241:16:21"},{"expression":{"argumentTypes":null,"id":7924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7922,"name":"activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"1267:19:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7923,"name":"_activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7884,"src":"1289:20:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1267:42:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7925,"nodeType":"ExpressionStatement","src":"1267:42:21"},{"expression":{"argumentTypes":null,"id":7928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7926,"name":"activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"1319:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7927,"name":"_activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"1339:18:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:38:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7929,"nodeType":"ExpressionStatement","src":"1319:38:21"},{"expression":{"argumentTypes":null,"id":7932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7930,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"1367:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7931,"name":"_maxRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"1383:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1367:29:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7933,"nodeType":"ExpressionStatement","src":"1367:29:21"},{"expression":{"argumentTypes":null,"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7934,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"1406:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7935,"name":"_maxRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"1423:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1406:30:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7937,"nodeType":"ExpressionStatement","src":"1406:30:21"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _activationStartTime start time for allowing minting\n@param _activationEndTime end time for allowing minting\n@param _maxRepReward maximum reputation mintable by this scheme","id":7939,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":7891,"modifierName":{"argumentTypes":null,"id":7890,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"983:9:21","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"983:9:21"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":7889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7882,"name":"_avatar","nodeType":"VariableDeclaration","scope":7939,"src":"848:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7881,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"848:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7884,"name":"_activationStartTime","nodeType":"VariableDeclaration","scope":7939,"src":"872:28:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7883,"name":"uint256","nodeType":"ElementaryTypeName","src":"872:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7886,"name":"_activationEndTime","nodeType":"VariableDeclaration","scope":7939,"src":"910:26:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7885,"name":"uint256","nodeType":"ElementaryTypeName","src":"910:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7888,"name":"_maxRepReward","nodeType":"VariableDeclaration","scope":7939,"src":"946:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7887,"name":"uint256","nodeType":"ElementaryTypeName","src":"946:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"838:135:21"},"returnParameters":{"id":7892,"nodeType":"ParameterList","parameters":[],"src":"993:0:21"},"scope":8136,"src":"819:624:21","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":7981,"nodeType":"Block","src":"1762:223:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7951,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"1780:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1780:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7953,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"1805:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1805:15:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1780:40:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"417272617973206c656e677468206d69736d61746368","id":7956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1822:24:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""},"value":"Arrays length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""}],"id":7950,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1772:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1772:75:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"ExpressionStatement","src":"1772:75:21"},{"body":{"id":7979,"nodeType":"Block","src":"1907:72:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7971,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"1937:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7973,"indexExpression":{"argumentTypes":null,"id":7972,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1952:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1937:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7974,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"1956:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7976,"indexExpression":{"argumentTypes":null,"id":7975,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1965:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1956:11:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7970,"name":"_reputationMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8075,"src":"1921:15:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1921:47:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7978,"nodeType":"ExpressionStatement","src":"1921:47:21"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7963,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1875:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7964,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"1879:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1879:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1875:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7980,"initializationExpression":{"assignments":[7960],"declarations":[{"constant":false,"id":7960,"name":"i","nodeType":"VariableDeclaration","scope":7980,"src":"1862:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1862:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7962,"initialValue":{"argumentTypes":null,"hexValue":"30","id":7961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1872:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1862:11:21"},"loopExpression":{"expression":{"argumentTypes":null,"id":7968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1902:3:21","subExpression":{"argumentTypes":null,"id":7967,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1902:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7969,"nodeType":"ExpressionStatement","src":"1902:3:21"},"nodeType":"ForStatement","src":"1857:122:21"}]},"documentation":"@dev reputationBurn function\n@param _beneficiaries the beneficiaries address to mint reputation from\n@param _amounts the amounts of reputation to mint for beneficiaries","id":7982,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":7948,"modifierName":{"argumentTypes":null,"id":7947,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1752:9:21","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1752:9:21"}],"name":"reputationMint","nodeType":"FunctionDefinition","parameters":{"id":7946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7942,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":7982,"src":"1679:33:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7940,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7941,"length":null,"nodeType":"ArrayTypeName","src":"1679:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":7945,"name":"_amounts","nodeType":"VariableDeclaration","scope":7982,"src":"1714:27:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7944,"length":null,"nodeType":"ArrayTypeName","src":"1714:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1678:64:21"},"returnParameters":{"id":7949,"nodeType":"ParameterList","parameters":[],"src":"1762:0:21"},"scope":8136,"src":"1655:330:21","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8024,"nodeType":"Block","src":"2304:223:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7994,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"2322:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2322:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7996,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7988,"src":"2347:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2347:15:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2322:40:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"417272617973206c656e677468206d69736d61746368","id":7999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2364:24:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""},"value":"Arrays length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""}],"id":7993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2314:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2314:75:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8001,"nodeType":"ExpressionStatement","src":"2314:75:21"},{"body":{"id":8022,"nodeType":"Block","src":"2449:72:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8014,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"2479:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8016,"indexExpression":{"argumentTypes":null,"id":8015,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2494:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2479:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8017,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7988,"src":"2498:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8019,"indexExpression":{"argumentTypes":null,"id":8018,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2507:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2498:11:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8013,"name":"_reputationBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"2463:15:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2463:47:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8021,"nodeType":"ExpressionStatement","src":"2463:47:21"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2417:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8007,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"2421:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2421:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8023,"initializationExpression":{"assignments":[8003],"declarations":[{"constant":false,"id":8003,"name":"i","nodeType":"VariableDeclaration","scope":8023,"src":"2404:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2404:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":8005,"initialValue":{"argumentTypes":null,"hexValue":"30","id":8004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2414:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2404:11:21"},"loopExpression":{"expression":{"argumentTypes":null,"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2444:3:21","subExpression":{"argumentTypes":null,"id":8010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2444:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8012,"nodeType":"ExpressionStatement","src":"2444:3:21"},"nodeType":"ForStatement","src":"2399:122:21"}]},"documentation":"@dev reputationBurn function\n@param _beneficiaries the beneficiaries address to burm reputation from\n@param _amounts the amounts of reputation to burn for beneficiaries","id":8025,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":7991,"modifierName":{"argumentTypes":null,"id":7990,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2294:9:21","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2294:9:21"}],"name":"reputationBurn","nodeType":"FunctionDefinition","parameters":{"id":7989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7985,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":8025,"src":"2221:33:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7983,"name":"address","nodeType":"ElementaryTypeName","src":"2221:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7984,"length":null,"nodeType":"ArrayTypeName","src":"2221:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":7988,"name":"_amounts","nodeType":"VariableDeclaration","scope":8025,"src":"2256:27:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7986,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7987,"length":null,"nodeType":"ArrayTypeName","src":"2256:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2220:64:21"},"returnParameters":{"id":7992,"nodeType":"ParameterList","parameters":[],"src":"2304:0:21"},"scope":8136,"src":"2197:330:21","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8074,"nodeType":"Block","src":"2807:536:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8033,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2879:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":8034,"name":"activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"2886:19:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4d696e74696e6720706572696f6420646964206e6f7420737461727420796574","id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2907:34:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_581971410a6a9f85fc8f8b875e9b3af3ab58d6dfe586601be2f2a203c337c85f","typeString":"literal_string \"Minting period did not start yet\""},"value":"Minting period did not start yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_581971410a6a9f85fc8f8b875e9b3af3ab58d6dfe586601be2f2a203c337c85f","typeString":"literal_string \"Minting period did not start yet\""}],"id":8032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2871:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2871:71:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8038,"nodeType":"ExpressionStatement","src":"2871:71:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8040,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3014:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":8041,"name":"activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"3020:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3014:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4d696e74696e6720706572696f6420656e6465642e","id":8043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3039:23:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_00077f5d045580d51a6da98894d674132b79c89c04d7a58fe11b42583454213b","typeString":"literal_string \"Minting period ended.\""},"value":"Minting period ended."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_00077f5d045580d51a6da98894d674132b79c89c04d7a58fe11b42583454213b","typeString":"literal_string \"Minting period ended.\""}],"id":8039,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3006:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3006:57:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8045,"nodeType":"ExpressionStatement","src":"3006:57:21"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8046,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"3078:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":8047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3095:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3078:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8057,"nodeType":"IfStatement","src":"3074:91:21","trueBody":{"id":8056,"nodeType":"Block","src":"3098:67:21","statements":[{"expression":{"argumentTypes":null,"id":8054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8049,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"3112:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8052,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"3146:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8050,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"3128:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"3128:17:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3128:26:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3112:42:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8055,"nodeType":"ExpressionStatement","src":"3112:42:21"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8065,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"3238:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8066,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8027,"src":"3247:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8068,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"3269:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3261:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3261:15:21","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":8060,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"3207:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"3207:12:21","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3207:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8059,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"3196:10:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3196:26:21","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"3196:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3196:81:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4d696e74696e672072657075746174696f6e2073686f756c642073756363656564","id":8071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3291:35:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_32429f7e0cd8961dc24e77dcf085fe9f4bf49c75e9d23fc80df5b2aafa0adc42","typeString":"literal_string \"Minting reputation should succeed\""},"value":"Minting reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32429f7e0cd8961dc24e77dcf085fe9f4bf49c75e9d23fc80df5b2aafa0adc42","typeString":"literal_string \"Minting reputation should succeed\""}],"id":8058,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3175:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3175:161:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8073,"nodeType":"ExpressionStatement","src":"3175:161:21"}]},"documentation":"@dev reputationMint function\n@param _beneficiary the beneficiary address to mint reputation for\n@param _amount the amount of reputation to mint the the beneficirary","id":8075,"implemented":true,"kind":"function","modifiers":[],"name":"_reputationMint","nodeType":"FunctionDefinition","parameters":{"id":8030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8027,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8075,"src":"2760:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8026,"name":"address","nodeType":"ElementaryTypeName","src":"2760:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8029,"name":"_amount","nodeType":"VariableDeclaration","scope":8075,"src":"2782:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8028,"name":"uint256","nodeType":"ElementaryTypeName","src":"2782:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2759:39:21"},"returnParameters":{"id":8031,"nodeType":"ParameterList","parameters":[],"src":"2807:0:21"},"scope":8136,"src":"2735:608:21","stateMutability":"nonpayable","superFunction":null,"visibility":"private"},{"body":{"id":8134,"nodeType":"Block","src":"3622:632:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8083,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3694:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":8084,"name":"activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"3701:19:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3694:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4275726e696e6720706572696f6420646964206e6f7420737461727420796574","id":8086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3722:34:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cc67274b0ea6caa936eaca3e757564d765326ed8656b81cc5422cfeceb1205f8","typeString":"literal_string \"Burning period did not start yet\""},"value":"Burning period did not start yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc67274b0ea6caa936eaca3e757564d765326ed8656b81cc5422cfeceb1205f8","typeString":"literal_string \"Burning period did not start yet\""}],"id":8082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3686:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3686:71:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8088,"nodeType":"ExpressionStatement","src":"3686:71:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8090,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3829:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":8091,"name":"activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"3835:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3829:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4275726e696e6720706572696f6420656e6465642e","id":8093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3854:23:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dc025f6c0796865eb39b94f6e36d923346d980af137f8908e8c2d8e6743684e8","typeString":"literal_string \"Burning period ended.\""},"value":"Burning period ended."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc025f6c0796865eb39b94f6e36d923346d980af137f8908e8c2d8e6743684e8","typeString":"literal_string \"Burning period ended.\""}],"id":8089,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3821:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3821:57:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8095,"nodeType":"ExpressionStatement","src":"3821:57:21"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8096,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"3893:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":8097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3910:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3893:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8117,"nodeType":"IfStatement","src":"3889:190:21","trueBody":{"id":8116,"nodeType":"Block","src":"3913:166:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8100,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"3935:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8103,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"3965:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8101,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"3946:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"3946:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:33:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3935:44:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616e6e6f74206275726e206d6f7265207468616e206d696e746564","id":8106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3981:30:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_278f48e96a0bbf1f2658e62d2b8e0dcd2f075997734779f53a51b2a661ed87b8","typeString":"literal_string \"Cannot burn more than minted\""},"value":"Cannot burn more than minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_278f48e96a0bbf1f2658e62d2b8e0dcd2f075997734779f53a51b2a661ed87b8","typeString":"literal_string \"Cannot burn more than minted\""}],"id":8099,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3927:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3927:85:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8108,"nodeType":"ExpressionStatement","src":"3927:85:21"},{"expression":{"argumentTypes":null,"id":8114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8109,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"4026:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8112,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"4060:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8110,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"4042:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4042:17:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4042:26:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4026:42:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8115,"nodeType":"ExpressionStatement","src":"4026:42:21"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8125,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"4152:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8126,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"4161:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8128,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"4183:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4175:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4175:15:21","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":8120,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"4121:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4121:12:21","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4121:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8119,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4110:10:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4110:26:21","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"4110:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4110:81:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4275726e2072657075746174696f6e2073686f756c642073756363656564","id":8131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4205:32:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f69f33abdcad84f8254860c3ac7b34ecec5b5a817139eb85f3de866120bcc728","typeString":"literal_string \"Burn reputation should succeed\""},"value":"Burn reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f69f33abdcad84f8254860c3ac7b34ecec5b5a817139eb85f3de866120bcc728","typeString":"literal_string \"Burn reputation should succeed\""}],"id":8118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4089:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4089:158:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8133,"nodeType":"ExpressionStatement","src":"4089:158:21"}]},"documentation":"@dev reputationBurn function\n@param _beneficiary the beneficiary address to burm reputation from\n@param _amount the amount of reputation to burn for a beneficirary","id":8135,"implemented":true,"kind":"function","modifiers":[],"name":"_reputationBurn","nodeType":"FunctionDefinition","parameters":{"id":8080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8077,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8135,"src":"3575:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8076,"name":"address","nodeType":"ElementaryTypeName","src":"3575:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8079,"name":"_amount","nodeType":"VariableDeclaration","scope":8135,"src":"3597:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8078,"name":"uint256","nodeType":"ElementaryTypeName","src":"3597:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3574:39:21"},"returnParameters":{"id":8081,"nodeType":"ParameterList","parameters":[],"src":"3622:0:21"},"scope":8136,"src":"3550:704:21","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":8137,"src":"273:3983:21"}],"src":"0:4257:21"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ReputationAdmin.sol","exportedSymbols":{"ReputationAdmin":[8136]},"id":8137,"nodeType":"SourceUnit","nodes":[{"id":7862,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:21"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":7863,"nodeType":"ImportDirective","scope":8137,"sourceUnit":20510,"src":"25:63:21","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":7864,"nodeType":"ImportDirective","scope":8137,"sourceUnit":20396,"src":"89:59:21","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":7865,"nodeType":"ImportDirective","scope":8137,"sourceUnit":1798,"src":"149:38:21","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":7866,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"301:7:21","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":7867,"nodeType":"InheritanceSpecifier","src":"301:7:21"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":"@title A scheme for reputation minting/burning by an authorized account","fullyImplemented":true,"id":8136,"linearizedBaseContracts":[8136,20509,20058],"name":"ReputationAdmin","nodeType":"ContractDefinition","nodes":[{"id":7870,"libraryName":{"contractScope":null,"id":7868,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"321:8:21","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"315:27:21","typeName":{"id":7869,"name":"uint256","nodeType":"ElementaryTypeName","src":"334:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":7872,"name":"avatar","nodeType":"VariableDeclaration","scope":8136,"src":"348:20:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7871,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"348:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":false,"id":7874,"name":"activationStartTime","nodeType":"VariableDeclaration","scope":8136,"src":"374:34:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7873,"name":"uint256","nodeType":"ElementaryTypeName","src":"374:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7876,"name":"activationEndTime","nodeType":"VariableDeclaration","scope":8136,"src":"414:32:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7875,"name":"uint256","nodeType":"ElementaryTypeName","src":"414:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7878,"name":"repRewardLeft","nodeType":"VariableDeclaration","scope":8136,"src":"452:28:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7877,"name":"uint256","nodeType":"ElementaryTypeName","src":"452:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"constant":false,"id":7880,"name":"limitRepReward","nodeType":"VariableDeclaration","scope":8136,"src":"486:29:21","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7879,"name":"uint256","nodeType":"ElementaryTypeName","src":"486:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"public"},{"body":{"id":7938,"nodeType":"Block","src":"993:450:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7894,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"1011:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7896,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1028:1:21","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":7895,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1021:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7897,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1021:9:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1011:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":7899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1032:29:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":7893,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1003:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1003:59:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7901,"nodeType":"ExpressionStatement","src":"1003:59:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":7907,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7903,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"1080:7:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":7905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1098:1:21","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":7904,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1091:6:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":7906,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1091:9:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1080:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":7908,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1102:23:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":7902,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1072:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1072:54:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7910,"nodeType":"ExpressionStatement","src":"1072:54:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7912,"name":"_activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7884,"src":"1144:20:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":7913,"name":"_activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"1167:18:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1144:41:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"5f61637469766174696f6e537461727454696d65203c205f61637469766174696f6e456e6454696d65","id":7915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1187:43:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8c7c241f48a56446d2e05779fff3b0e088217d2bb13f82ee9341d50d610a6a01","typeString":"literal_string \"_activationStartTime < _activationEndTime\""},"value":"_activationStartTime < _activationEndTime"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8c7c241f48a56446d2e05779fff3b0e088217d2bb13f82ee9341d50d610a6a01","typeString":"literal_string \"_activationStartTime < _activationEndTime\""}],"id":7911,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1136:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1136:95:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7917,"nodeType":"ExpressionStatement","src":"1136:95:21"},{"expression":{"argumentTypes":null,"id":7920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7918,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"1241:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7919,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7882,"src":"1250:7:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1241:16:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":7921,"nodeType":"ExpressionStatement","src":"1241:16:21"},{"expression":{"argumentTypes":null,"id":7924,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7922,"name":"activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"1267:19:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7923,"name":"_activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7884,"src":"1289:20:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1267:42:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7925,"nodeType":"ExpressionStatement","src":"1267:42:21"},{"expression":{"argumentTypes":null,"id":7928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7926,"name":"activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"1319:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7927,"name":"_activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7886,"src":"1339:18:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1319:38:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7929,"nodeType":"ExpressionStatement","src":"1319:38:21"},{"expression":{"argumentTypes":null,"id":7932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7930,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"1367:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7931,"name":"_maxRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"1383:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1367:29:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7933,"nodeType":"ExpressionStatement","src":"1367:29:21"},{"expression":{"argumentTypes":null,"id":7936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":7934,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"1406:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":7935,"name":"_maxRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7888,"src":"1423:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1406:30:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7937,"nodeType":"ExpressionStatement","src":"1406:30:21"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _activationStartTime start time for allowing minting\n@param _activationEndTime end time for allowing minting\n@param _maxRepReward maximum reputation mintable by this scheme","id":7939,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":7891,"modifierName":{"argumentTypes":null,"id":7890,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"983:9:21","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"983:9:21"}],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":7889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7882,"name":"_avatar","nodeType":"VariableDeclaration","scope":7939,"src":"848:14:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":7881,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"848:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":7884,"name":"_activationStartTime","nodeType":"VariableDeclaration","scope":7939,"src":"872:28:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7883,"name":"uint256","nodeType":"ElementaryTypeName","src":"872:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7886,"name":"_activationEndTime","nodeType":"VariableDeclaration","scope":7939,"src":"910:26:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7885,"name":"uint256","nodeType":"ElementaryTypeName","src":"910:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":7888,"name":"_maxRepReward","nodeType":"VariableDeclaration","scope":7939,"src":"946:21:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7887,"name":"uint256","nodeType":"ElementaryTypeName","src":"946:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"838:135:21"},"returnParameters":{"id":7892,"nodeType":"ParameterList","parameters":[],"src":"993:0:21"},"scope":8136,"src":"819:624:21","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":7981,"nodeType":"Block","src":"1762:223:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7951,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"1780:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1780:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7953,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"1805:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1805:15:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1780:40:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"417272617973206c656e677468206d69736d61746368","id":7956,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1822:24:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""},"value":"Arrays length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""}],"id":7950,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1772:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":7957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1772:75:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7958,"nodeType":"ExpressionStatement","src":"1772:75:21"},{"body":{"id":7979,"nodeType":"Block","src":"1907:72:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7971,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"1937:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7973,"indexExpression":{"argumentTypes":null,"id":7972,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1952:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1937:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":7974,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7945,"src":"1956:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7976,"indexExpression":{"argumentTypes":null,"id":7975,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1965:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1956:11:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":7970,"name":"_reputationMint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8075,"src":"1921:15:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":7977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1921:47:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":7978,"nodeType":"ExpressionStatement","src":"1921:47:21"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":7963,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1875:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7964,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7942,"src":"1879:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1879:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1875:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":7980,"initializationExpression":{"assignments":[7960],"declarations":[{"constant":false,"id":7960,"name":"i","nodeType":"VariableDeclaration","scope":7980,"src":"1862:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":7959,"name":"uint256","nodeType":"ElementaryTypeName","src":"1862:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":7962,"initialValue":{"argumentTypes":null,"hexValue":"30","id":7961,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1872:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"1862:11:21"},"loopExpression":{"expression":{"argumentTypes":null,"id":7968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1902:3:21","subExpression":{"argumentTypes":null,"id":7967,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7960,"src":"1902:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7969,"nodeType":"ExpressionStatement","src":"1902:3:21"},"nodeType":"ForStatement","src":"1857:122:21"}]},"documentation":"@dev reputationBurn function\n@param _beneficiaries the beneficiaries address to mint reputation from\n@param _amounts the amounts of reputation to mint for beneficiaries","id":7982,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":7948,"modifierName":{"argumentTypes":null,"id":7947,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"1752:9:21","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"1752:9:21"}],"name":"reputationMint","nodeType":"FunctionDefinition","parameters":{"id":7946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7942,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":7982,"src":"1679:33:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7940,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7941,"length":null,"nodeType":"ArrayTypeName","src":"1679:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":7945,"name":"_amounts","nodeType":"VariableDeclaration","scope":7982,"src":"1714:27:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7943,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7944,"length":null,"nodeType":"ArrayTypeName","src":"1714:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"1678:64:21"},"returnParameters":{"id":7949,"nodeType":"ParameterList","parameters":[],"src":"1762:0:21"},"scope":8136,"src":"1655:330:21","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8024,"nodeType":"Block","src":"2304:223:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":7998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7994,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"2322:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":7995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2322:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":7996,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7988,"src":"2347:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":7997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2347:15:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2322:40:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"417272617973206c656e677468206d69736d61746368","id":7999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2364:24:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""},"value":"Arrays length mismatch"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_582fd48f3876d7686bfeaaaa0db0589073271dedd50d66094f02fee2a3d2e01c","typeString":"literal_string \"Arrays length mismatch\""}],"id":7993,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2314:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2314:75:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8001,"nodeType":"ExpressionStatement","src":"2314:75:21"},{"body":{"id":8022,"nodeType":"Block","src":"2449:72:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8014,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"2479:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8016,"indexExpression":{"argumentTypes":null,"id":8015,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2494:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2479:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8017,"name":"_amounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7988,"src":"2498:8:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":8019,"indexExpression":{"argumentTypes":null,"id":8018,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2507:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2498:11:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8013,"name":"_reputationBurn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8135,"src":"2463:15:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":8020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2463:47:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8021,"nodeType":"ExpressionStatement","src":"2463:47:21"}]},"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8006,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2417:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8007,"name":"_beneficiaries","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7985,"src":"2421:14:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":8008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2421:21:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2417:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8023,"initializationExpression":{"assignments":[8003],"declarations":[{"constant":false,"id":8003,"name":"i","nodeType":"VariableDeclaration","scope":8023,"src":"2404:9:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8002,"name":"uint256","nodeType":"ElementaryTypeName","src":"2404:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":8005,"initialValue":{"argumentTypes":null,"hexValue":"30","id":8004,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2414:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"2404:11:21"},"loopExpression":{"expression":{"argumentTypes":null,"id":8011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2444:3:21","subExpression":{"argumentTypes":null,"id":8010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8003,"src":"2444:1:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8012,"nodeType":"ExpressionStatement","src":"2444:3:21"},"nodeType":"ForStatement","src":"2399:122:21"}]},"documentation":"@dev reputationBurn function\n@param _beneficiaries the beneficiaries address to burm reputation from\n@param _amounts the amounts of reputation to burn for beneficiaries","id":8025,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":7991,"modifierName":{"argumentTypes":null,"id":7990,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"2294:9:21","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"2294:9:21"}],"name":"reputationBurn","nodeType":"FunctionDefinition","parameters":{"id":7989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":7985,"name":"_beneficiaries","nodeType":"VariableDeclaration","scope":8025,"src":"2221:33:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":7983,"name":"address","nodeType":"ElementaryTypeName","src":"2221:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":7984,"length":null,"nodeType":"ArrayTypeName","src":"2221:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"value":null,"visibility":"internal"},{"constant":false,"id":7988,"name":"_amounts","nodeType":"VariableDeclaration","scope":8025,"src":"2256:27:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":7986,"name":"uint256","nodeType":"ElementaryTypeName","src":"2256:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":7987,"length":null,"nodeType":"ArrayTypeName","src":"2256:9:21","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"value":null,"visibility":"internal"}],"src":"2220:64:21"},"returnParameters":{"id":7992,"nodeType":"ParameterList","parameters":[],"src":"2304:0:21"},"scope":8136,"src":"2197:330:21","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8074,"nodeType":"Block","src":"2807:536:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8033,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"2879:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":8034,"name":"activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"2886:19:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2879:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4d696e74696e6720706572696f6420646964206e6f7420737461727420796574","id":8036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2907:34:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_581971410a6a9f85fc8f8b875e9b3af3ab58d6dfe586601be2f2a203c337c85f","typeString":"literal_string \"Minting period did not start yet\""},"value":"Minting period did not start yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_581971410a6a9f85fc8f8b875e9b3af3ab58d6dfe586601be2f2a203c337c85f","typeString":"literal_string \"Minting period did not start yet\""}],"id":8032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2871:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8037,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2871:71:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8038,"nodeType":"ExpressionStatement","src":"2871:71:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8040,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3014:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":8041,"name":"activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"3020:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3014:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4d696e74696e6720706572696f6420656e6465642e","id":8043,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3039:23:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_00077f5d045580d51a6da98894d674132b79c89c04d7a58fe11b42583454213b","typeString":"literal_string \"Minting period ended.\""},"value":"Minting period ended."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_00077f5d045580d51a6da98894d674132b79c89c04d7a58fe11b42583454213b","typeString":"literal_string \"Minting period ended.\""}],"id":8039,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3006:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3006:57:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8045,"nodeType":"ExpressionStatement","src":"3006:57:21"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8046,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"3078:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":8047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3095:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3078:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8057,"nodeType":"IfStatement","src":"3074:91:21","trueBody":{"id":8056,"nodeType":"Block","src":"3098:67:21","statements":[{"expression":{"argumentTypes":null,"id":8054,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8049,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"3112:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8052,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"3146:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8050,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"3128:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8051,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"3128:17:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3128:26:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3112:42:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8055,"nodeType":"ExpressionStatement","src":"3112:42:21"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8065,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8029,"src":"3238:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8066,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8027,"src":"3247:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8068,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"3269:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8067,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3261:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8069,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3261:15:21","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":8060,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"3207:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8061,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"3207:12:21","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3207:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8059,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"3196:10:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3196:26:21","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"3196:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":8070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3196:81:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4d696e74696e672072657075746174696f6e2073686f756c642073756363656564","id":8071,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3291:35:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_32429f7e0cd8961dc24e77dcf085fe9f4bf49c75e9d23fc80df5b2aafa0adc42","typeString":"literal_string \"Minting reputation should succeed\""},"value":"Minting reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_32429f7e0cd8961dc24e77dcf085fe9f4bf49c75e9d23fc80df5b2aafa0adc42","typeString":"literal_string \"Minting reputation should succeed\""}],"id":8058,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3175:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3175:161:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8073,"nodeType":"ExpressionStatement","src":"3175:161:21"}]},"documentation":"@dev reputationMint function\n@param _beneficiary the beneficiary address to mint reputation for\n@param _amount the amount of reputation to mint the the beneficirary","id":8075,"implemented":true,"kind":"function","modifiers":[],"name":"_reputationMint","nodeType":"FunctionDefinition","parameters":{"id":8030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8027,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8075,"src":"2760:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8026,"name":"address","nodeType":"ElementaryTypeName","src":"2760:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8029,"name":"_amount","nodeType":"VariableDeclaration","scope":8075,"src":"2782:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8028,"name":"uint256","nodeType":"ElementaryTypeName","src":"2782:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2759:39:21"},"returnParameters":{"id":8031,"nodeType":"ParameterList","parameters":[],"src":"2807:0:21"},"scope":8136,"src":"2735:608:21","stateMutability":"nonpayable","superFunction":null,"visibility":"private"},{"body":{"id":8134,"nodeType":"Block","src":"3622:632:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8083,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3694:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":8084,"name":"activationStartTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7874,"src":"3701:19:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3694:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4275726e696e6720706572696f6420646964206e6f7420737461727420796574","id":8086,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3722:34:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cc67274b0ea6caa936eaca3e757564d765326ed8656b81cc5422cfeceb1205f8","typeString":"literal_string \"Burning period did not start yet\""},"value":"Burning period did not start yet"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cc67274b0ea6caa936eaca3e757564d765326ed8656b81cc5422cfeceb1205f8","typeString":"literal_string \"Burning period did not start yet\""}],"id":8082,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3686:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3686:71:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8088,"nodeType":"ExpressionStatement","src":"3686:71:21"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8090,"name":"now","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21109,"src":"3829:3:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"argumentTypes":null,"id":8091,"name":"activationEndTime","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7876,"src":"3835:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3829:23:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4275726e696e6720706572696f6420656e6465642e","id":8093,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3854:23:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_dc025f6c0796865eb39b94f6e36d923346d980af137f8908e8c2d8e6743684e8","typeString":"literal_string \"Burning period ended.\""},"value":"Burning period ended."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dc025f6c0796865eb39b94f6e36d923346d980af137f8908e8c2d8e6743684e8","typeString":"literal_string \"Burning period ended.\""}],"id":8089,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3821:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3821:57:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8095,"nodeType":"ExpressionStatement","src":"3821:57:21"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8096,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"3893:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":8097,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3910:1:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3893:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8117,"nodeType":"IfStatement","src":"3889:190:21","trueBody":{"id":8116,"nodeType":"Block","src":"3913:166:21","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8100,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"3935:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8103,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"3965:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8101,"name":"limitRepReward","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7880,"src":"3946:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sub","nodeType":"MemberAccess","referencedDeclaration":20251,"src":"3946:18:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8104,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3946:33:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3935:44:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"43616e6e6f74206275726e206d6f7265207468616e206d696e746564","id":8106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3981:30:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_278f48e96a0bbf1f2658e62d2b8e0dcd2f075997734779f53a51b2a661ed87b8","typeString":"literal_string \"Cannot burn more than minted\""},"value":"Cannot burn more than minted"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_278f48e96a0bbf1f2658e62d2b8e0dcd2f075997734779f53a51b2a661ed87b8","typeString":"literal_string \"Cannot burn more than minted\""}],"id":8099,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3927:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3927:85:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8108,"nodeType":"ExpressionStatement","src":"3927:85:21"},{"expression":{"argumentTypes":null,"id":8114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8109,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"4026:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8112,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"4060:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8110,"name":"repRewardLeft","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7878,"src":"4042:13:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"add","nodeType":"MemberAccess","referencedDeclaration":20235,"src":"4042:17:21","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":8113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4042:26:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4026:42:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8115,"nodeType":"ExpressionStatement","src":"4026:42:21"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8125,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8079,"src":"4152:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8126,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8077,"src":"4161:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8128,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"4183:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4175:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4175:15:21","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":8120,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":7872,"src":"4121:6:21","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4121:12:21","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4121:14:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8119,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4110:10:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4110:26:21","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"4110:41:21","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":8130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4110:81:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"4275726e2072657075746174696f6e2073686f756c642073756363656564","id":8131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4205:32:21","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f69f33abdcad84f8254860c3ac7b34ecec5b5a817139eb85f3de866120bcc728","typeString":"literal_string \"Burn reputation should succeed\""},"value":"Burn reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f69f33abdcad84f8254860c3ac7b34ecec5b5a817139eb85f3de866120bcc728","typeString":"literal_string \"Burn reputation should succeed\""}],"id":8118,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4089:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4089:158:21","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8133,"nodeType":"ExpressionStatement","src":"4089:158:21"}]},"documentation":"@dev reputationBurn function\n@param _beneficiary the beneficiary address to burm reputation from\n@param _amount the amount of reputation to burn for a beneficirary","id":8135,"implemented":true,"kind":"function","modifiers":[],"name":"_reputationBurn","nodeType":"FunctionDefinition","parameters":{"id":8080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8077,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8135,"src":"3575:20:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8076,"name":"address","nodeType":"ElementaryTypeName","src":"3575:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8079,"name":"_amount","nodeType":"VariableDeclaration","scope":8135,"src":"3597:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8078,"name":"uint256","nodeType":"ElementaryTypeName","src":"3597:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3574:39:21"},"returnParameters":{"id":8081,"nodeType":"ParameterList","parameters":[],"src":"3622:0:21"},"scope":8136,"src":"3550:704:21","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":8137,"src":"273:3983:21"}],"src":"0:4257:21"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.131Z","devdoc":{"methods":{"initialize(address,uint256,uint256,uint256)":{"details":"initialize","params":{"_activationEndTime":"end time for allowing minting","_activationStartTime":"start time for allowing minting","_avatar":"the avatar to mint reputation from","_maxRepReward":"maximum reputation mintable by this scheme"}},"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"reputationBurn(address[],uint256[])":{"details":"reputationBurn function","params":{"_amounts":"the amounts of reputation to burn for beneficiaries","_beneficiaries":"the beneficiaries address to burm reputation from"}},"reputationMint(address[],uint256[])":{"details":"reputationBurn function","params":{"_amounts":"the amounts of reputation to mint for beneficiaries","_beneficiaries":"the beneficiaries address to mint reputation from"}},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"title":"A scheme for reputation minting/burning by an authorized account"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ReputationFromToken.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ReputationFromToken.json new file mode 100644 index 00000000..1f59dc38 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/ReputationFromToken.json @@ -0,0 +1 @@ +{"contractName":"ReputationFromToken","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_beneficiary","type":"address"},{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"Redeem","type":"event"},{"constant":true,"inputs":[],"name":"DELEGATION_HASH_EIP712","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"avatar","outputs":[{"internalType":"contract Avatar","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"curve","outputs":[{"internalType":"contract CurveInterface","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAgreementHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"redeems","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenContract","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"contract IERC20","name":"_tokenContract","type":"address"},{"internalType":"contract CurveInterface","name":"_curve","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_agreementHash","type":"bytes32"},{"internalType":"uint256","name":"_signatureType","type":"uint256"},{"internalType":"bytes","name":"_signature","type":"bytes"}],"name":"redeemWithSignature","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"Redeem\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"DELEGATION_HASH_EIP712\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"avatar\",\"outputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"curve\",\"outputs\":[{\"internalType\":\"contract CurveInterface\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getAgreementHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_tokenContract\",\"type\":\"address\"},{\"internalType\":\"contract CurveInterface\",\"name\":\"_curve\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"}],\"name\":\"redeem\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_agreementHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_signatureType\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_signature\",\"type\":\"bytes\"}],\"name\":\"redeemWithSignature\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"redeems\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"tokenContract\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"getAgreementHash()\":{\"details\":\"getAgreementHash\",\"return\":\"bytes32 agreementHash\"},\"initialize(address,address,address,bytes32)\":{\"details\":\"initialize\",\"params\":{\"_agreementHash\":\"is a hash of agreement required to be added to the TX by participants\",\"_avatar\":\"the avatar to mint reputation from\",\"_tokenContract\":\"the token contract\"}},\"redeem(address,bytes32)\":{\"details\":\"redeem function\",\"params\":{\"_agreementHash\":\"the agreementHash hash\",\"_beneficiary\":\"the beneficiary address to redeem for\"},\"return\":\"uint256 minted reputation\"},\"redeemWithSignature(address,bytes32,uint256,bytes)\":{\"details\":\"redeemWithSignature function\",\"params\":{\"_beneficiary\":\"the beneficiary address to redeem for\",\"_signature\":\"- signed data by the staker\",\"_signatureType\":\"signature type 1 - for web3.eth.sign 2 - for eth_signTypedData according to EIP #712.\"},\"return\":\"uint256 minted reputation\"}},\"title\":\"A scheme for reputation allocation according to token balances This contract is assuming that the token contract is paused, and one cannot transfer its tokens.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/ReputationFromToken.sol\":\"ReputationFromToken\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol\":{\"keccak256\":\"0xd2e8e2b9fb421c823706a18c929b353115427a9ad5f2b6b355f9e89fb60473d0\",\"urls\":[\"bzz-raw://8c6f10c918a96a58a2dde4137127d9891b48d5d637f567fb374e6dee6a2a9b38\",\"dweb:/ipfs/QmTKPKkHEXU2sNbU5hH4prP8GwqZ1GhJk1H9zkayRcowvq\"]},\"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol\":{\"keccak256\":\"0x4e67086c005d04579132bf539abcf0f698a9db496a3478ce9cda6c54a379ee4c\",\"urls\":[\"bzz-raw://514910f66b7de63fa2d556211ce91550e0ab3337c8010a5b5a5e2598243a2107\",\"dweb:/ipfs/QmYycJYmPLrh5r3Uv65pACXM3Z28jSSKESFCfFqALdBi3j\"]},\"/Users/oren/daostack/arc/contracts/schemes/ReputationFromToken.sol\":{\"keccak256\":\"0xe2ad3b879e2754e4f8caccf64e6288d6f602e36504c1c58fce058bbec60ebdc3\",\"urls\":[\"bzz-raw://e1b1cc5079efaf8e140f19f78bb08fb07b06347fa7d9a25dbf965a0e1ae2e399\",\"dweb:/ipfs/QmQPf6o9xUEhSSL3EQG7EfM9qBJdTwNeXhi21ebs2xhcbL\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"501:4291:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;501:4291:22;;;;;;;","deployedSourceMap":"501:4291:22:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;501:4291:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;903:184;;;:::i;:::-;;;;;;;;;;;;;;;;709:43;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;709:43:22;-1:-1:-1;;;;;709:43:22;;:::i;:::-;;;;;;;;;;;;;;;;;;611:27;;;:::i;:::-;;;;-1:-1:-1;;;;;611:27:22;;;;;;;;;;;;;;2560:1164;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;2560:1164:22;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;2560:1164:22;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2560:1164:22;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;2560:1164:22;;-1:-1:-1;2560:1164:22;-1:-1:-1;2560:1164:22;:::i;758:20::-;;;:::i;1428:397::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1428:397:22;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;407:101:7;;;:::i;644:27:22:-;;;:::i;2033:161::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2033:161:22;;;;;;;;:::i;903:184::-;966:120;;;;;;;;;-1:-1:-1;;;966:120:22;;;;-1:-1:-1;;;966:120:22;;;;;;;22:32:-1;26:21;;;22:32;6:49;;966:120:22;;;;;;956:131;;49:4:-1;956:131:22;;;;;-1:-1:-1;903:184:22;:::o;709:43::-;;;;;;;;;;;;;;;:::o;611:27::-;;;-1:-1:-1;;;;;611:27:22;;:::o;2560:1164::-;2761:7;2835:24;2873:14;2891:1;2873:19;2869:647;;;966:120;;;;;;;;;-1:-1:-1;;;966:120:22;;;;-1:-1:-1;;;966:120:22;;;;;;;26:21:-1;;;22:32;;6:49;;966:120:22;;;;;956:131;;49:4:-1;956:131:22;;;;3101:4;3051:134;;;;;;;;;;;-1:-1:-1;;3051:134:22;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3051:134:22;;;;;3016:191;;;;;;2954:271;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2954:271:22;;;;;;;2927:312;;;;;;-1:-1:-1;2869:647:22;;-1:-1:-1;2869:647:22;;3289:216;3374:4;3405:12;3443:14;3324:134;;;;;;-1:-1:-1;;;;;3324:134:22;-1:-1:-1;;;;;3324:134:22;;;;;;;;-1:-1:-1;;;;;3324:134:22;-1:-1:-1;;;;;3324:134:22;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;3324:134:22;;;3289:191;;;;;;:214;:216::i;:::-;3270:235;;2869:647;3525:16;3544:36;3569:10;;3544:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3544:16:22;;:36;-1:-1:-1;;3544:36:22;:24;:36;;-1:-1:-1;3544:36:22:i;:::-;3525:55;-1:-1:-1;;;;;;3598:22:22;;3590:63;;;;;-1:-1:-1;;;3590:63:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;3670:47;3678:12;3692:8;3702:14;3670:7;:47::i;:::-;3663:54;2560:1164;-1:-1:-1;;;;;;;;2560:1164:22:o;758:20::-;;;-1:-1:-1;;;;;758:20:22;;:::o;1428:397::-;1565:6;;-1:-1:-1;;;;;1565:6:22;:19;1557:59;;;;;-1:-1:-1;;;1557:59:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1634:20:22;;1626:54;;;;;-1:-1:-1;;;1626:54:22;;;;;;;;;;;;-1:-1:-1;;;1626:54:22;;;;;;;;;;;;;;;1690:13;:30;;-1:-1:-1;;;;;1690:30:22;;;-1:-1:-1;;;;;;1690:30:22;;;;;;;1730:6;:16;;;;;;;;;;;1756:5;:14;;;;;;;;;;;;;;;1780:38;1803:14;1780:22;:38::i;:::-;1428:397;;;;:::o;407:101:7:-;458:7;488:13;407:101;:::o;644:27:22:-;;;-1:-1:-1;;;;;644:27:22;;:::o;2033:161::-;2112:7;2138:49;2146:12;2160:10;2172:14;2138:7;:49::i;:::-;2131:56;;2033:161;;;;;:::o;3381:265:64:-;3580:58;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;3580:58:64;;;;;;;3570:69;;;;;;3381:265::o;1226:1891::-;1304:7;1365:9;:16;1385:2;1365:22;1361:72;;-1:-1:-1;1419:1:64;1403:19;;1361:72;1783:4;1768:20;;1762:27;1828:4;1813:20;;1807:27;1881:4;1866:20;;1860:27;1499:9;1852:36;2799:66;2786:79;;2782:127;;;2896:1;2881:17;;;;;;;2782:127;2923:1;:7;;2928:2;2923:7;;:18;;;;;2934:1;:7;;2939:2;2934:7;;2923:18;2919:66;;;2972:1;2957:17;;;;;;;2919:66;3086:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3086:24:64;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3086:24:64;;-1:-1:-1;;3086:24:64;;;1226:1891;-1:-1:-1;;;;;;;1226:1891:64:o;3925:865:22:-;4061:7;4033:14;243:13:7;;225:14;:31;217:84;;;;-1:-1:-1;;;217:84:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4088:6:22;;-1:-1:-1;;;;;4088:6:22;4080:55;;;;;-1:-1:-1;;;4080:55:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4153:18:22;;;;;;:7;:18;;;;;;;;:27;4145:92;;;;-1:-1:-1;;;4145:92:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4247:18:22;;;;;;;:7;:18;;;;;;;;:25;;-1:-1:-1;;4247:25:22;4268:4;4247:25;;;;;;4304:13;:34;;-1:-1:-1;;;4304:34:22;;;;;;;;;;;4247:18;;4304:13;;:23;;:34;;;;;4247:18;4304:34;;;;;:13;:34;;;5:2:-1;;;;30:1;27;20:12;5:2;4304:34:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4304:34:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4304:34:22;4352:5;;4304:34;;-1:-1:-1;;;;;;4352:5:22;:26;4348:94;;4408:5;;:23;;;-1:-1:-1;;;4408:23:22;;;;;;;;;;-1:-1:-1;;;;;4408:5:22;;;;:10;;:23;;;;;;;;;;;;;;;:5;:23;;;5:2:-1;;;;30:1;27;20:12;5:2;4408:23:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4408:23:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4408:23:22;;-1:-1:-1;4348:94:22;-1:-1:-1;;;;;4455:26:22;;4451:81;;4512:9;4497:24;;4451:81;4578:6;;;:14;;;-1:-1:-1;;;4578:14:22;;;;-1:-1:-1;;;;;4578:6:22;;;;:12;;:14;;;;;;;;;;;;:6;:14;;;5:2:-1;;;;30:1;27;20:12;5:2;4578:14:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4578:14:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4578:14:22;4653:6;;;4558:103;;;-1:-1:-1;;;4558:103:22;;;;;;;;-1:-1:-1;;;;;4558:103:22;;;;;;;4653:6;;;4558:103;;;;;:59;;;;;:103;;;;;4578:14;;4558:103;;;;;;;;4653:6;4558:59;:103;;;5:2:-1;;;;30:1;27;20:12;5:2;4558:103:22;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4558:103:22;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4558:103:22;4541:155;;;;;-1:-1:-1;;;4541:155:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;4732:9;-1:-1:-1;;;;;4711:44:22;4718:12;-1:-1:-1;;;;;4711:44:22;;4743:11;4711:44;;;;;;;;;;;;;;;;;;4772:11;3925:865;-1:-1:-1;;;;;3925:865:22:o;658:187:7:-;764:1;739:13;:27;731:67;;;;;-1:-1:-1;;;731:67:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;808:13;:30;658:187::o","source":"pragma solidity 0.5.13;\n\nimport \"../controller/Controller.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"./CurveInterface.sol\";\nimport \"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\";\nimport \"openzeppelin-solidity/contracts/math/SafeMath.sol\";\nimport \"./Agreement.sol\";\n\n/**\n * @title A scheme for reputation allocation according to token balances\n * This contract is assuming that the token contract is paused, and one cannot transfer its tokens.\n */\n\ncontract ReputationFromToken is Agreement {\n using ECDSA for bytes32;\n using SafeMath for uint256;\n\n IERC20 public tokenContract;\n CurveInterface public curve;\n // beneficiary -> bool\n mapping(address => bool) public redeems;\n Avatar public avatar;\n\n // Digest describing the data the user signs according EIP 712.\n // Needs to match what is passed to Metamask.\n bytes32 public constant DELEGATION_HASH_EIP712 =\n keccak256(abi.encodePacked(\n \"address ReputationFromTokenAddress\",\n \"address Beneficiary\",\n \"bytes32 AgreementHash\"\n ));\n\n event Redeem(address indexed _beneficiary, address indexed _sender, uint256 _amount);\n\n /**\n * @dev initialize\n * @param _avatar the avatar to mint reputation from\n * @param _tokenContract the token contract\n * @param _agreementHash is a hash of agreement required to be added to the TX by participants\n */\n function initialize(Avatar _avatar, IERC20 _tokenContract, CurveInterface _curve, bytes32 _agreementHash) external\n {\n require(avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n tokenContract = _tokenContract;\n avatar = _avatar;\n curve = _curve;\n super.setAgreementHash(_agreementHash);\n }\n\n /**\n * @dev redeem function\n * @param _beneficiary the beneficiary address to redeem for\n * @param _agreementHash the agreementHash hash\n * @return uint256 minted reputation\n */\n function redeem(address _beneficiary, bytes32 _agreementHash) external returns(uint256) {\n return _redeem(_beneficiary, msg.sender, _agreementHash);\n }\n\n /**\n * @dev redeemWithSignature function\n * @param _beneficiary the beneficiary address to redeem for\n * @param _signatureType signature type\n 1 - for web3.eth.sign\n 2 - for eth_signTypedData according to EIP #712.\n * @param _signature - signed data by the staker\n * @return uint256 minted reputation\n */\n function redeemWithSignature(\n address _beneficiary,\n bytes32 _agreementHash,\n uint256 _signatureType,\n bytes calldata _signature\n )\n external\n returns(uint256)\n {\n // Recreate the digest the user signed\n bytes32 delegationDigest;\n if (_signatureType == 2) {\n delegationDigest = keccak256(\n abi.encodePacked(\n DELEGATION_HASH_EIP712, keccak256(\n abi.encodePacked(\n address(this),\n _beneficiary,\n _agreementHash)\n )\n )\n );\n } else {\n delegationDigest = keccak256(\n abi.encodePacked(\n address(this),\n _beneficiary,\n _agreementHash)\n ).toEthSignedMessageHash();\n }\n address redeemer = delegationDigest.recover(_signature);\n require(redeemer != address(0), \"redeemer address cannot be 0\");\n return _redeem(_beneficiary, redeemer, _agreementHash);\n }\n\n /**\n * @dev redeem function\n * @param _beneficiary the beneficiary address to redeem for\n * @param _redeemer the redeemer address\n * @return uint256 minted reputation\n */\n function _redeem(address _beneficiary, address _redeemer, bytes32 _agreementHash)\n private\n onlyAgree(_agreementHash)\n returns(uint256) {\n require(avatar != Avatar(0), \"should initialize first\");\n require(redeems[_redeemer] == false, \"redeeming twice from the same account is not allowed\");\n redeems[_redeemer] = true;\n uint256 tokenAmount = tokenContract.balanceOf(_redeemer);\n if (curve != CurveInterface(0)) {\n tokenAmount = curve.calc(tokenAmount);\n }\n if (_beneficiary == address(0)) {\n _beneficiary = _redeemer;\n }\n require(\n Controller(\n avatar.owner())\n .mintReputation(tokenAmount, _beneficiary, address(avatar)), \"mint reputation should succeed\");\n emit Redeem(_beneficiary, _redeemer, tokenAmount);\n return tokenAmount;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/ReputationFromToken.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ReputationFromToken.sol","exportedSymbols":{"ReputationFromToken":[8420]},"id":8421,"nodeType":"SourceUnit","nodes":[{"id":8138,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:22"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":8139,"nodeType":"ImportDirective","scope":8421,"sourceUnit":1798,"src":"25:38:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":8140,"nodeType":"ImportDirective","scope":8421,"sourceUnit":21018,"src":"64:64:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","file":"./CurveInterface.sol","id":8141,"nodeType":"ImportDirective","scope":8421,"sourceUnit":6304,"src":"129:30:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","file":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","id":8142,"nodeType":"ImportDirective","scope":8421,"sourceUnit":20140,"src":"160:64:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":8143,"nodeType":"ImportDirective","scope":8421,"sourceUnit":20396,"src":"225:59:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":8144,"nodeType":"ImportDirective","scope":8421,"sourceUnit":2303,"src":"285:25:22","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8145,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"533:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":8146,"nodeType":"InheritanceSpecifier","src":"533:9:22"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A scheme for reputation allocation according to token balances\n This contract is assuming that the token contract is paused, and one cannot transfer its tokens.","fullyImplemented":true,"id":8420,"linearizedBaseContracts":[8420,2302],"name":"ReputationFromToken","nodeType":"ContractDefinition","nodes":[{"id":8149,"libraryName":{"contractScope":null,"id":8147,"name":"ECDSA","nodeType":"UserDefinedTypeName","referencedDeclaration":20139,"src":"555:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_ECDSA_$20139","typeString":"library ECDSA"}},"nodeType":"UsingForDirective","src":"549:24:22","typeName":{"id":8148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"565:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":8152,"libraryName":{"contractScope":null,"id":8150,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"584:8:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"578:27:22","typeName":{"id":8151,"name":"uint256","nodeType":"ElementaryTypeName","src":"597:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":8154,"name":"tokenContract","nodeType":"VariableDeclaration","scope":8420,"src":"611:27:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":8153,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"611:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":8156,"name":"curve","nodeType":"VariableDeclaration","scope":8420,"src":"644:27:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"},"typeName":{"contractScope":null,"id":8155,"name":"CurveInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":6303,"src":"644:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":8160,"name":"redeems","nodeType":"VariableDeclaration","scope":8420,"src":"709:43:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8159,"keyType":{"id":8157,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"709:28:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":8158,"name":"bool","nodeType":"ElementaryTypeName","src":"732:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"constant":false,"id":8162,"name":"avatar","nodeType":"VariableDeclaration","scope":8420,"src":"758:20:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8161,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"758:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":true,"id":8172,"name":"DELEGATION_HASH_EIP712","nodeType":"VariableDeclaration","scope":8420,"src":"903:184:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8163,"name":"bytes32","nodeType":"ElementaryTypeName","src":"903:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"616464726573732052657075746174696f6e46726f6d546f6b656e41646472657373","id":8167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"988:36:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_855db04103fa88678d4ec68f8cee807e4ac4992d181ce035ea624bb0c8be6f9b","typeString":"literal_string \"address ReputationFromTokenAddress\""},"value":"address ReputationFromTokenAddress"},{"argumentTypes":null,"hexValue":"616464726573732042656e6566696369617279","id":8168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1030:21:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8aac3dc7c972743a7a51b31820c9f35652dfa57834e4a271cc7863f813cc828b","typeString":"literal_string \"address Beneficiary\""},"value":"address Beneficiary"},{"argumentTypes":null,"hexValue":"627974657333322041677265656d656e7448617368","id":8169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1057:23:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_107fb6aab0fa542db1d44d9749a8fad7ef143f4965ce62a52ce5c96a8febadad","typeString":"literal_string \"bytes32 AgreementHash\""},"value":"bytes32 AgreementHash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_855db04103fa88678d4ec68f8cee807e4ac4992d181ce035ea624bb0c8be6f9b","typeString":"literal_string \"address ReputationFromTokenAddress\""},{"typeIdentifier":"t_stringliteral_8aac3dc7c972743a7a51b31820c9f35652dfa57834e4a271cc7863f813cc828b","typeString":"literal_string \"address Beneficiary\""},{"typeIdentifier":"t_stringliteral_107fb6aab0fa542db1d44d9749a8fad7ef143f4965ce62a52ce5c96a8febadad","typeString":"literal_string \"bytes32 AgreementHash\""}],"expression":{"argumentTypes":null,"id":8165,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"966:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"966:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"966:120:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8164,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"956:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"956:131:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"documentation":null,"id":8180,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":8179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8174,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8180,"src":"1107:28:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8173,"name":"address","nodeType":"ElementaryTypeName","src":"1107:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8176,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":8180,"src":"1137:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8175,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8178,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":8180,"src":"1162:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8177,"name":"uint256","nodeType":"ElementaryTypeName","src":"1162:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1106:72:22"},"src":"1094:85:22"},{"body":{"id":8227,"nodeType":"Block","src":"1547:278:22","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8192,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"1565:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1582:1:22","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":8193,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1575:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1565:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":8197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1586:29:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":8191,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1557:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1557:59:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8199,"nodeType":"ExpressionStatement","src":"1557:59:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8201,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8182,"src":"1634:7:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1652:1:22","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":8202,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1645:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1645:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1634:20:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":8206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1656:23:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":8200,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1626:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:54:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8208,"nodeType":"ExpressionStatement","src":"1626:54:22"},{"expression":{"argumentTypes":null,"id":8211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8209,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"1690:13:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8210,"name":"_tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8184,"src":"1706:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"1690:30:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":8212,"nodeType":"ExpressionStatement","src":"1690:30:22"},{"expression":{"argumentTypes":null,"id":8215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8213,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"1730:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8214,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8182,"src":"1739:7:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1730:16:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8216,"nodeType":"ExpressionStatement","src":"1730:16:22"},{"expression":{"argumentTypes":null,"id":8219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8217,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1756:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8218,"name":"_curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1764:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"src":"1756:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"id":8220,"nodeType":"ExpressionStatement","src":"1756:14:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8224,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8188,"src":"1803:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8221,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21204,"src":"1780:5:22","typeDescriptions":{"typeIdentifier":"t_super$_ReputationFromToken_$8420","typeString":"contract super ReputationFromToken"}},"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"1780:22:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":8225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1780:38:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8226,"nodeType":"ExpressionStatement","src":"1780:38:22"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _tokenContract the token contract\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":8228,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":8189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8182,"name":"_avatar","nodeType":"VariableDeclaration","scope":8228,"src":"1448:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8181,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1448:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":8184,"name":"_tokenContract","nodeType":"VariableDeclaration","scope":8228,"src":"1464:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":8183,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1464:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":8186,"name":"_curve","nodeType":"VariableDeclaration","scope":8228,"src":"1487:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"},"typeName":{"contractScope":null,"id":8185,"name":"CurveInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":6303,"src":"1487:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":8188,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8228,"src":"1510:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1510:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1447:86:22"},"returnParameters":{"id":8190,"nodeType":"ParameterList","parameters":[],"src":"1547:0:22"},"scope":8420,"src":"1428:397:22","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8244,"nodeType":"Block","src":"2121:73:22","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8238,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"2146:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8239,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2160:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2160:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":8241,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8232,"src":"2172:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8237,"name":"_redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"2138:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,address,bytes32) returns (uint256)"}},"id":8242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2138:49:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8236,"id":8243,"nodeType":"Return","src":"2131:56:22"}]},"documentation":"@dev redeem function\n@param _beneficiary the beneficiary address to redeem for\n@param _agreementHash the agreementHash hash\n@return uint256 minted reputation","id":8245,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":8233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8230,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8245,"src":"2049:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8229,"name":"address","nodeType":"ElementaryTypeName","src":"2049:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8232,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8245,"src":"2071:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2071:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2048:46:22"},"returnParameters":{"id":8236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8235,"name":"","nodeType":"VariableDeclaration","scope":8245,"src":"2112:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8234,"name":"uint256","nodeType":"ElementaryTypeName","src":"2112:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2111:9:22"},"scope":8420,"src":"2033:161:22","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8323,"nodeType":"Block","src":"2778:946:22","statements":[{"assignments":[8259],"declarations":[{"constant":false,"id":8259,"name":"delegationDigest","nodeType":"VariableDeclaration","scope":8323,"src":"2835:24:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2835:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":8260,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2835:24:22"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8261,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8251,"src":"2873:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":8262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2873:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8299,"nodeType":"Block","src":"3256:260:22","statements":[{"expression":{"argumentTypes":null,"id":8297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8284,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"3270:16:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8289,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21203,"src":"3374:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}],"id":8288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3366:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3366:13:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8291,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"3405:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8292,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8249,"src":"3443:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3324:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3324:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3324:134:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8285,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3289:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3289:191:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":20138,"src":"3289:214:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":8296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3289:216:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3270:235:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8298,"nodeType":"ExpressionStatement","src":"3270:235:22"}]},"id":8300,"nodeType":"IfStatement","src":"2869:647:22","trueBody":{"id":8283,"nodeType":"Block","src":"2894:356:22","statements":[{"expression":{"argumentTypes":null,"id":8281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8264,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"2908:16:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8268,"name":"DELEGATION_HASH_EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8172,"src":"2992:22:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8273,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21203,"src":"3101:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}],"id":8272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3093:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3093:13:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8275,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"3132:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8276,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8249,"src":"3170:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8270,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3051:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3051:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3051:134:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8269,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3016:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3016:191:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8266,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2954:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2954:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2954:271:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8265,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2927:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2927:312:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2908:331:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8282,"nodeType":"ExpressionStatement","src":"2908:331:22"}]}},{"assignments":[8302],"declarations":[{"constant":false,"id":8302,"name":"redeemer","nodeType":"VariableDeclaration","scope":8323,"src":"3525:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8301,"name":"address","nodeType":"ElementaryTypeName","src":"3525:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":8307,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8305,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"3569:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":8303,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"3544:16:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":20122,"src":"3544:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":8306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3544:36:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3525:55:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8309,"name":"redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"3598:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3618:1:22","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":8310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3610:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3610:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3598:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72656465656d657220616464726573732063616e6e6f742062652030","id":8314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3622:30:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1dd1a9b2ffbe0d1ded5d8e7625b440be45642c5f735dba078df15bf3dbdffb59","typeString":"literal_string \"redeemer address cannot be 0\""},"value":"redeemer address cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dd1a9b2ffbe0d1ded5d8e7625b440be45642c5f735dba078df15bf3dbdffb59","typeString":"literal_string \"redeemer address cannot be 0\""}],"id":8308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3590:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3590:63:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8316,"nodeType":"ExpressionStatement","src":"3590:63:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8318,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"3678:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8319,"name":"redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"3692:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8320,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8249,"src":"3702:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8317,"name":"_redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"3670:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,address,bytes32) returns (uint256)"}},"id":8321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3670:47:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8257,"id":8322,"nodeType":"Return","src":"3663:54:22"}]},"documentation":"@dev redeemWithSignature function\n@param _beneficiary the beneficiary address to redeem for\n@param _signatureType signature type\n1 - for web3.eth.sign\n2 - for eth_signTypedData according to EIP #712.\n@param _signature - signed data by the staker\n@return uint256 minted reputation","id":8324,"implemented":true,"kind":"function","modifiers":[],"name":"redeemWithSignature","nodeType":"FunctionDefinition","parameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8247,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8324,"src":"2598:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8246,"name":"address","nodeType":"ElementaryTypeName","src":"2598:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8249,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8324,"src":"2628:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2628:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8251,"name":"_signatureType","nodeType":"VariableDeclaration","scope":8324,"src":"2660:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8250,"name":"uint256","nodeType":"ElementaryTypeName","src":"2660:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8253,"name":"_signature","nodeType":"VariableDeclaration","scope":8324,"src":"2692:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8252,"name":"bytes","nodeType":"ElementaryTypeName","src":"2692:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2588:139:22"},"returnParameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"name":"","nodeType":"VariableDeclaration","scope":8324,"src":"2761:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8255,"name":"uint256","nodeType":"ElementaryTypeName","src":"2761:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2760:9:22"},"scope":8420,"src":"2560:1164:22","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8418,"nodeType":"Block","src":"4070:720:22","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8339,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"4088:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4105:1:22","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":8340,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"4098:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4098:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4088:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73686f756c6420696e697469616c697a65206669727374","id":8344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4109:25:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""},"value":"should initialize first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""}],"id":8338,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4080:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4080:55:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8346,"nodeType":"ExpressionStatement","src":"4080:55:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8348,"name":"redeems","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"4153:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8350,"indexExpression":{"argumentTypes":null,"id":8349,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4161:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4153:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":8351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4175:5:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4153:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72656465656d696e672074776963652066726f6d207468652073616d65206163636f756e74206973206e6f7420616c6c6f776564","id":8353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4182:54:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1b23ef334bc08b912a0c866d34d444243b06a0ba51e2ae70501e19ff1f44e0c9","typeString":"literal_string \"redeeming twice from the same account is not allowed\""},"value":"redeeming twice from the same account is not allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b23ef334bc08b912a0c866d34d444243b06a0ba51e2ae70501e19ff1f44e0c9","typeString":"literal_string \"redeeming twice from the same account is not allowed\""}],"id":8347,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4145:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4145:92:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8355,"nodeType":"ExpressionStatement","src":"4145:92:22"},{"expression":{"argumentTypes":null,"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8356,"name":"redeems","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"4247:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8358,"indexExpression":{"argumentTypes":null,"id":8357,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4255:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4247:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":8359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4268:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4247:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8361,"nodeType":"ExpressionStatement","src":"4247:25:22"},{"assignments":[8363],"declarations":[{"constant":false,"id":8363,"name":"tokenAmount","nodeType":"VariableDeclaration","scope":8418,"src":"4282:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8362,"name":"uint256","nodeType":"ElementaryTypeName","src":"4282:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":8368,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8366,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4328:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":8364,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"4304:13:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"4304:23:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":8367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4304:34:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4282:56:22"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"},"id":8373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8369,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"4352:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4376:1:22","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":8370,"name":"CurveInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6303,"src":"4361:14:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CurveInterface_$6303_$","typeString":"type(contract CurveInterface)"}},"id":8372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4361:17:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"src":"4352:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8382,"nodeType":"IfStatement","src":"4348:94:22","trueBody":{"id":8381,"nodeType":"Block","src":"4380:62:22","statements":[{"expression":{"argumentTypes":null,"id":8379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8374,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4394:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8377,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4419:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8375,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"4408:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"id":8376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"calc","nodeType":"MemberAccess","referencedDeclaration":6302,"src":"4408:10:22","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure external returns (uint256)"}},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4408:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4394:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8380,"nodeType":"ExpressionStatement","src":"4394:37:22"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8383,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4455:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4479:1:22","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":8384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4471:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4471:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4455:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8393,"nodeType":"IfStatement","src":"4451:81:22","trueBody":{"id":8392,"nodeType":"Block","src":"4483:49:22","statements":[{"expression":{"argumentTypes":null,"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8388,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4497:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8389,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4512:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4497:24:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8391,"nodeType":"ExpressionStatement","src":"4497:24:22"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8401,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4618:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8402,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4631:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8404,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"4653:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4645:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4645:15:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":8396,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"4578:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4578:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4578:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8395,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4558:10:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4558:35:22","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"4558:59:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":8406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4558:103:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":8407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4663:32:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":8394,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4541:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4541:155:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8409,"nodeType":"ExpressionStatement","src":"4541:155:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8411,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4718:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8412,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4732:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8413,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4743:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8410,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8180,"src":"4711:6:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4711:44:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8415,"nodeType":"EmitStatement","src":"4706:49:22"},{"expression":{"argumentTypes":null,"id":8416,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4772:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8337,"id":8417,"nodeType":"Return","src":"4765:18:22"}]},"documentation":"@dev redeem function\n@param _beneficiary the beneficiary address to redeem for\n@param _redeemer the redeemer address\n@return uint256 minted reputation","id":8419,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":8333,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"4033:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8334,"modifierName":{"argumentTypes":null,"id":8332,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"4023:9:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4023:25:22"}],"name":"_redeem","nodeType":"FunctionDefinition","parameters":{"id":8331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8326,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8419,"src":"3942:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8325,"name":"address","nodeType":"ElementaryTypeName","src":"3942:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8328,"name":"_redeemer","nodeType":"VariableDeclaration","scope":8419,"src":"3964:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8327,"name":"address","nodeType":"ElementaryTypeName","src":"3964:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8330,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8419,"src":"3983:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3983:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3941:65:22"},"returnParameters":{"id":8337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8336,"name":"","nodeType":"VariableDeclaration","scope":8419,"src":"4061:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8335,"name":"uint256","nodeType":"ElementaryTypeName","src":"4061:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4060:9:22"},"scope":8420,"src":"3925:865:22","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":8421,"src":"501:4291:22"}],"src":"0:4793:22"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/ReputationFromToken.sol","exportedSymbols":{"ReputationFromToken":[8420]},"id":8421,"nodeType":"SourceUnit","nodes":[{"id":8138,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:22"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":8139,"nodeType":"ImportDirective","scope":8421,"sourceUnit":1798,"src":"25:38:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":8140,"nodeType":"ImportDirective","scope":8421,"sourceUnit":21018,"src":"64:64:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/CurveInterface.sol","file":"./CurveInterface.sol","id":8141,"nodeType":"ImportDirective","scope":8421,"sourceUnit":6304,"src":"129:30:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","file":"openzeppelin-solidity/contracts/cryptography/ECDSA.sol","id":8142,"nodeType":"ImportDirective","scope":8421,"sourceUnit":20140,"src":"160:64:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","file":"openzeppelin-solidity/contracts/math/SafeMath.sol","id":8143,"nodeType":"ImportDirective","scope":8421,"sourceUnit":20396,"src":"225:59:22","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/Agreement.sol","file":"./Agreement.sol","id":8144,"nodeType":"ImportDirective","scope":8421,"sourceUnit":2303,"src":"285:25:22","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8145,"name":"Agreement","nodeType":"UserDefinedTypeName","referencedDeclaration":2302,"src":"533:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Agreement_$2302","typeString":"contract Agreement"}},"id":8146,"nodeType":"InheritanceSpecifier","src":"533:9:22"}],"contractDependencies":[2302],"contractKind":"contract","documentation":"@title A scheme for reputation allocation according to token balances\n This contract is assuming that the token contract is paused, and one cannot transfer its tokens.","fullyImplemented":true,"id":8420,"linearizedBaseContracts":[8420,2302],"name":"ReputationFromToken","nodeType":"ContractDefinition","nodes":[{"id":8149,"libraryName":{"contractScope":null,"id":8147,"name":"ECDSA","nodeType":"UserDefinedTypeName","referencedDeclaration":20139,"src":"555:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_ECDSA_$20139","typeString":"library ECDSA"}},"nodeType":"UsingForDirective","src":"549:24:22","typeName":{"id":8148,"name":"bytes32","nodeType":"ElementaryTypeName","src":"565:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},{"id":8152,"libraryName":{"contractScope":null,"id":8150,"name":"SafeMath","nodeType":"UserDefinedTypeName","referencedDeclaration":20395,"src":"584:8:22","typeDescriptions":{"typeIdentifier":"t_contract$_SafeMath_$20395","typeString":"library SafeMath"}},"nodeType":"UsingForDirective","src":"578:27:22","typeName":{"id":8151,"name":"uint256","nodeType":"ElementaryTypeName","src":"597:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"constant":false,"id":8154,"name":"tokenContract","nodeType":"VariableDeclaration","scope":8420,"src":"611:27:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":8153,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"611:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"public"},{"constant":false,"id":8156,"name":"curve","nodeType":"VariableDeclaration","scope":8420,"src":"644:27:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"},"typeName":{"contractScope":null,"id":8155,"name":"CurveInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":6303,"src":"644:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"value":null,"visibility":"public"},{"constant":false,"id":8160,"name":"redeems","nodeType":"VariableDeclaration","scope":8420,"src":"709:43:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":8159,"keyType":{"id":8157,"name":"address","nodeType":"ElementaryTypeName","src":"717:7:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"709:28:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":8158,"name":"bool","nodeType":"ElementaryTypeName","src":"732:4:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"value":null,"visibility":"public"},{"constant":false,"id":8162,"name":"avatar","nodeType":"VariableDeclaration","scope":8420,"src":"758:20:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8161,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"758:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"public"},{"constant":true,"id":8172,"name":"DELEGATION_HASH_EIP712","nodeType":"VariableDeclaration","scope":8420,"src":"903:184:22","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8163,"name":"bytes32","nodeType":"ElementaryTypeName","src":"903:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"616464726573732052657075746174696f6e46726f6d546f6b656e41646472657373","id":8167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"988:36:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_855db04103fa88678d4ec68f8cee807e4ac4992d181ce035ea624bb0c8be6f9b","typeString":"literal_string \"address ReputationFromTokenAddress\""},"value":"address ReputationFromTokenAddress"},{"argumentTypes":null,"hexValue":"616464726573732042656e6566696369617279","id":8168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1030:21:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_8aac3dc7c972743a7a51b31820c9f35652dfa57834e4a271cc7863f813cc828b","typeString":"literal_string \"address Beneficiary\""},"value":"address Beneficiary"},{"argumentTypes":null,"hexValue":"627974657333322041677265656d656e7448617368","id":8169,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1057:23:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_107fb6aab0fa542db1d44d9749a8fad7ef143f4965ce62a52ce5c96a8febadad","typeString":"literal_string \"bytes32 AgreementHash\""},"value":"bytes32 AgreementHash"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_855db04103fa88678d4ec68f8cee807e4ac4992d181ce035ea624bb0c8be6f9b","typeString":"literal_string \"address ReputationFromTokenAddress\""},{"typeIdentifier":"t_stringliteral_8aac3dc7c972743a7a51b31820c9f35652dfa57834e4a271cc7863f813cc828b","typeString":"literal_string \"address Beneficiary\""},{"typeIdentifier":"t_stringliteral_107fb6aab0fa542db1d44d9749a8fad7ef143f4965ce62a52ce5c96a8febadad","typeString":"literal_string \"bytes32 AgreementHash\""}],"expression":{"argumentTypes":null,"id":8165,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"966:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"966:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"966:120:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8164,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"956:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"956:131:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"anonymous":false,"documentation":null,"id":8180,"name":"Redeem","nodeType":"EventDefinition","parameters":{"id":8179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8174,"indexed":true,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8180,"src":"1107:28:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8173,"name":"address","nodeType":"ElementaryTypeName","src":"1107:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8176,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":8180,"src":"1137:23:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8175,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8178,"indexed":false,"name":"_amount","nodeType":"VariableDeclaration","scope":8180,"src":"1162:15:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8177,"name":"uint256","nodeType":"ElementaryTypeName","src":"1162:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1106:72:22"},"src":"1094:85:22"},{"body":{"id":8227,"nodeType":"Block","src":"1547:278:22","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8192,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"1565:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1582:1:22","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":8193,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1575:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1575:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1565:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":8197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1586:29:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":8191,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1557:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8198,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1557:59:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8199,"nodeType":"ExpressionStatement","src":"1557:59:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8201,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8182,"src":"1634:7:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1652:1:22","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":8202,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1645:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8204,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1645:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1634:20:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":8206,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1656:23:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":8200,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1626:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1626:54:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8208,"nodeType":"ExpressionStatement","src":"1626:54:22"},{"expression":{"argumentTypes":null,"id":8211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8209,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"1690:13:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8210,"name":"_tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8184,"src":"1706:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"1690:30:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":8212,"nodeType":"ExpressionStatement","src":"1690:30:22"},{"expression":{"argumentTypes":null,"id":8215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8213,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"1730:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8214,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8182,"src":"1739:7:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1730:16:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8216,"nodeType":"ExpressionStatement","src":"1730:16:22"},{"expression":{"argumentTypes":null,"id":8219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8217,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"1756:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8218,"name":"_curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8186,"src":"1764:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"src":"1756:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"id":8220,"nodeType":"ExpressionStatement","src":"1756:14:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8224,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8188,"src":"1803:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8221,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21204,"src":"1780:5:22","typeDescriptions":{"typeIdentifier":"t_super$_ReputationFromToken_$8420","typeString":"contract super ReputationFromToken"}},"id":8223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"setAgreementHash","nodeType":"MemberAccess","referencedDeclaration":2301,"src":"1780:22:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$returns$__$","typeString":"function (bytes32)"}},"id":8225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1780:38:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8226,"nodeType":"ExpressionStatement","src":"1780:38:22"}]},"documentation":"@dev initialize\n@param _avatar the avatar to mint reputation from\n@param _tokenContract the token contract\n@param _agreementHash is a hash of agreement required to be added to the TX by participants","id":8228,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":8189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8182,"name":"_avatar","nodeType":"VariableDeclaration","scope":8228,"src":"1448:14:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8181,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1448:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":8184,"name":"_tokenContract","nodeType":"VariableDeclaration","scope":8228,"src":"1464:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":8183,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1464:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":8186,"name":"_curve","nodeType":"VariableDeclaration","scope":8228,"src":"1487:21:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"},"typeName":{"contractScope":null,"id":8185,"name":"CurveInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":6303,"src":"1487:14:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":8188,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8228,"src":"1510:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8187,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1510:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1447:86:22"},"returnParameters":{"id":8190,"nodeType":"ParameterList","parameters":[],"src":"1547:0:22"},"scope":8420,"src":"1428:397:22","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8244,"nodeType":"Block","src":"2121:73:22","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8238,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8230,"src":"2146:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8239,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2160:3:22","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2160:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":8241,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8232,"src":"2172:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8237,"name":"_redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"2138:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,address,bytes32) returns (uint256)"}},"id":8242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2138:49:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8236,"id":8243,"nodeType":"Return","src":"2131:56:22"}]},"documentation":"@dev redeem function\n@param _beneficiary the beneficiary address to redeem for\n@param _agreementHash the agreementHash hash\n@return uint256 minted reputation","id":8245,"implemented":true,"kind":"function","modifiers":[],"name":"redeem","nodeType":"FunctionDefinition","parameters":{"id":8233,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8230,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8245,"src":"2049:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8229,"name":"address","nodeType":"ElementaryTypeName","src":"2049:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8232,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8245,"src":"2071:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2071:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2048:46:22"},"returnParameters":{"id":8236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8235,"name":"","nodeType":"VariableDeclaration","scope":8245,"src":"2112:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8234,"name":"uint256","nodeType":"ElementaryTypeName","src":"2112:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2111:9:22"},"scope":8420,"src":"2033:161:22","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8323,"nodeType":"Block","src":"2778:946:22","statements":[{"assignments":[8259],"declarations":[{"constant":false,"id":8259,"name":"delegationDigest","nodeType":"VariableDeclaration","scope":8323,"src":"2835:24:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8258,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2835:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":8260,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2835:24:22"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":8263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8261,"name":"_signatureType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8251,"src":"2873:14:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":8262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2891:1:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"2873:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":8299,"nodeType":"Block","src":"3256:260:22","statements":[{"expression":{"argumentTypes":null,"id":8297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8284,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"3270:16:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8289,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21203,"src":"3374:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}],"id":8288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3366:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8290,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3366:13:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8291,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"3405:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8292,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8249,"src":"3443:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8286,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3324:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8287,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3324:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3324:134:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8285,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3289:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8294,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3289:191:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toEthSignedMessageHash","nodeType":"MemberAccess","referencedDeclaration":20138,"src":"3289:214:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$returns$_t_bytes32_$bound_to$_t_bytes32_$","typeString":"function (bytes32) pure returns (bytes32)"}},"id":8296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3289:216:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3270:235:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8298,"nodeType":"ExpressionStatement","src":"3270:235:22"}]},"id":8300,"nodeType":"IfStatement","src":"2869:647:22","trueBody":{"id":8283,"nodeType":"Block","src":"2894:356:22","statements":[{"expression":{"argumentTypes":null,"id":8281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8264,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"2908:16:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8268,"name":"DELEGATION_HASH_EIP712","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8172,"src":"2992:22:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8273,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21203,"src":"3101:4:22","typeDescriptions":{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ReputationFromToken_$8420","typeString":"contract ReputationFromToken"}],"id":8272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3093:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3093:13:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8275,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"3132:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8276,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8249,"src":"3170:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8270,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"3051:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"3051:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3051:134:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8269,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"3016:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3016:191:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":8266,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2954:3:22","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":8267,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2954:16:22","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":8279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2954:271:22","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":8265,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"2927:9:22","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":8280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2927:312:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2908:331:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8282,"nodeType":"ExpressionStatement","src":"2908:331:22"}]}},{"assignments":[8302],"declarations":[{"constant":false,"id":8302,"name":"redeemer","nodeType":"VariableDeclaration","scope":8323,"src":"3525:16:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8301,"name":"address","nodeType":"ElementaryTypeName","src":"3525:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":8307,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8305,"name":"_signature","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8253,"src":"3569:10:22","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"argumentTypes":null,"id":8303,"name":"delegationDigest","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8259,"src":"3544:16:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":8304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"recover","nodeType":"MemberAccess","referencedDeclaration":20122,"src":"3544:24:22","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$bound_to$_t_bytes32_$","typeString":"function (bytes32,bytes memory) pure returns (address)"}},"id":8306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3544:36:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3525:55:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8309,"name":"redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"3598:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8311,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3618:1:22","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":8310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3610:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8312,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3610:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"3598:22:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72656465656d657220616464726573732063616e6e6f742062652030","id":8314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3622:30:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1dd1a9b2ffbe0d1ded5d8e7625b440be45642c5f735dba078df15bf3dbdffb59","typeString":"literal_string \"redeemer address cannot be 0\""},"value":"redeemer address cannot be 0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1dd1a9b2ffbe0d1ded5d8e7625b440be45642c5f735dba078df15bf3dbdffb59","typeString":"literal_string \"redeemer address cannot be 0\""}],"id":8308,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3590:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3590:63:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8316,"nodeType":"ExpressionStatement","src":"3590:63:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8318,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8247,"src":"3678:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8319,"name":"redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8302,"src":"3692:8:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8320,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8249,"src":"3702:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":8317,"name":"_redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8419,"src":"3670:7:22","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_bytes32_$returns$_t_uint256_$","typeString":"function (address,address,bytes32) returns (uint256)"}},"id":8321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3670:47:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8257,"id":8322,"nodeType":"Return","src":"3663:54:22"}]},"documentation":"@dev redeemWithSignature function\n@param _beneficiary the beneficiary address to redeem for\n@param _signatureType signature type\n1 - for web3.eth.sign\n2 - for eth_signTypedData according to EIP #712.\n@param _signature - signed data by the staker\n@return uint256 minted reputation","id":8324,"implemented":true,"kind":"function","modifiers":[],"name":"redeemWithSignature","nodeType":"FunctionDefinition","parameters":{"id":8254,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8247,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8324,"src":"2598:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8246,"name":"address","nodeType":"ElementaryTypeName","src":"2598:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8249,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8324,"src":"2628:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8248,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2628:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8251,"name":"_signatureType","nodeType":"VariableDeclaration","scope":8324,"src":"2660:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8250,"name":"uint256","nodeType":"ElementaryTypeName","src":"2660:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8253,"name":"_signature","nodeType":"VariableDeclaration","scope":8324,"src":"2692:25:22","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":8252,"name":"bytes","nodeType":"ElementaryTypeName","src":"2692:5:22","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"2588:139:22"},"returnParameters":{"id":8257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8256,"name":"","nodeType":"VariableDeclaration","scope":8324,"src":"2761:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8255,"name":"uint256","nodeType":"ElementaryTypeName","src":"2761:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2760:9:22"},"scope":8420,"src":"2560:1164:22","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8418,"nodeType":"Block","src":"4070:720:22","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8339,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"4088:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4105:1:22","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":8340,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"4098:6:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4098:9:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"4088:19:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"73686f756c6420696e697469616c697a65206669727374","id":8344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4109:25:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""},"value":"should initialize first"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_561d5bddf15c4f8c2230fcefd793337c8655660b728b0387ea5593dd307089fa","typeString":"literal_string \"should initialize first\""}],"id":8338,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4080:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4080:55:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8346,"nodeType":"ExpressionStatement","src":"4080:55:22"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":8352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8348,"name":"redeems","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"4153:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8350,"indexExpression":{"argumentTypes":null,"id":8349,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4161:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4153:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"66616c7365","id":8351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4175:5:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"4153:27:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"72656465656d696e672074776963652066726f6d207468652073616d65206163636f756e74206973206e6f7420616c6c6f776564","id":8353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4182:54:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_1b23ef334bc08b912a0c866d34d444243b06a0ba51e2ae70501e19ff1f44e0c9","typeString":"literal_string \"redeeming twice from the same account is not allowed\""},"value":"redeeming twice from the same account is not allowed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_1b23ef334bc08b912a0c866d34d444243b06a0ba51e2ae70501e19ff1f44e0c9","typeString":"literal_string \"redeeming twice from the same account is not allowed\""}],"id":8347,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4145:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4145:92:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8355,"nodeType":"ExpressionStatement","src":"4145:92:22"},{"expression":{"argumentTypes":null,"id":8360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8356,"name":"redeems","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8160,"src":"4247:7:22","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":8358,"indexExpression":{"argumentTypes":null,"id":8357,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4255:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4247:18:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":8359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4268:4:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"4247:25:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8361,"nodeType":"ExpressionStatement","src":"4247:25:22"},{"assignments":[8363],"declarations":[{"constant":false,"id":8363,"name":"tokenAmount","nodeType":"VariableDeclaration","scope":8418,"src":"4282:19:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8362,"name":"uint256","nodeType":"ElementaryTypeName","src":"4282:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":8368,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8366,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4328:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":8364,"name":"tokenContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8154,"src":"4304:13:22","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":8365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"4304:23:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":8367,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4304:34:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4282:56:22"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"},"id":8373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8369,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"4352:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4376:1:22","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":8370,"name":"CurveInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6303,"src":"4361:14:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CurveInterface_$6303_$","typeString":"type(contract CurveInterface)"}},"id":8372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4361:17:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"src":"4352:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8382,"nodeType":"IfStatement","src":"4348:94:22","trueBody":{"id":8381,"nodeType":"Block","src":"4380:62:22","statements":[{"expression":{"argumentTypes":null,"id":8379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8374,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4394:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8377,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4419:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":8375,"name":"curve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8156,"src":"4408:5:22","typeDescriptions":{"typeIdentifier":"t_contract$_CurveInterface_$6303","typeString":"contract CurveInterface"}},"id":8376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"calc","nodeType":"MemberAccess","referencedDeclaration":6302,"src":"4408:10:22","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure external returns (uint256)"}},"id":8378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4408:23:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4394:37:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":8380,"nodeType":"ExpressionStatement","src":"4394:37:22"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":8387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8383,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4455:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4479:1:22","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":8384,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4471:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4471:10:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4455:26:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8393,"nodeType":"IfStatement","src":"4451:81:22","trueBody":{"id":8392,"nodeType":"Block","src":"4483:49:22","statements":[{"expression":{"argumentTypes":null,"id":8390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8388,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4497:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8389,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4512:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4497:24:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":8391,"nodeType":"ExpressionStatement","src":"4497:24:22"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8401,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4618:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8402,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4631:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8404,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"4653:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4645:7:22","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4645:15:22","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":8396,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8162,"src":"4578:6:22","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"4578:12:22","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4578:14:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8395,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"4558:10:22","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4558:35:22","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"4558:59:22","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":8406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4558:103:22","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6d696e742072657075746174696f6e2073686f756c642073756363656564","id":8407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4663:32:22","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""},"value":"mint reputation should succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3b0726feb8cb4c7438ba89955c351121d4188febc4d5dd6e026fd1c3a0edac6","typeString":"literal_string \"mint reputation should succeed\""}],"id":8394,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4541:7:22","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4541:155:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8409,"nodeType":"ExpressionStatement","src":"4541:155:22"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8411,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8326,"src":"4718:12:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8412,"name":"_redeemer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8328,"src":"4732:9:22","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":8413,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4743:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":8410,"name":"Redeem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8180,"src":"4711:6:22","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":8414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4711:44:22","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8415,"nodeType":"EmitStatement","src":"4706:49:22"},{"expression":{"argumentTypes":null,"id":8416,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8363,"src":"4772:11:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":8337,"id":8417,"nodeType":"Return","src":"4765:18:22"}]},"documentation":"@dev redeem function\n@param _beneficiary the beneficiary address to redeem for\n@param _redeemer the redeemer address\n@return uint256 minted reputation","id":8419,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":8333,"name":"_agreementHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8330,"src":"4033:14:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8334,"modifierName":{"argumentTypes":null,"id":8332,"name":"onlyAgree","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2274,"src":"4023:9:22","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"4023:25:22"}],"name":"_redeem","nodeType":"FunctionDefinition","parameters":{"id":8331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8326,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":8419,"src":"3942:20:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8325,"name":"address","nodeType":"ElementaryTypeName","src":"3942:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8328,"name":"_redeemer","nodeType":"VariableDeclaration","scope":8419,"src":"3964:17:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8327,"name":"address","nodeType":"ElementaryTypeName","src":"3964:7:22","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8330,"name":"_agreementHash","nodeType":"VariableDeclaration","scope":8419,"src":"3983:22:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3983:7:22","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3941:65:22"},"returnParameters":{"id":8337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8336,"name":"","nodeType":"VariableDeclaration","scope":8419,"src":"4061:7:22","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8335,"name":"uint256","nodeType":"ElementaryTypeName","src":"4061:7:22","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4060:9:22"},"scope":8420,"src":"3925:865:22","stateMutability":"nonpayable","superFunction":null,"visibility":"private"}],"scope":8421,"src":"501:4291:22"}],"src":"0:4793:22"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.134Z","devdoc":{"methods":{"getAgreementHash()":{"details":"getAgreementHash","return":"bytes32 agreementHash"},"initialize(address,address,address,bytes32)":{"details":"initialize","params":{"_agreementHash":"is a hash of agreement required to be added to the TX by participants","_avatar":"the avatar to mint reputation from","_tokenContract":"the token contract"}},"redeem(address,bytes32)":{"details":"redeem function","params":{"_agreementHash":"the agreementHash hash","_beneficiary":"the beneficiary address to redeem for"},"return":"uint256 minted reputation"},"redeemWithSignature(address,bytes32,uint256,bytes)":{"details":"redeemWithSignature function","params":{"_beneficiary":"the beneficiary address to redeem for","_signature":"- signed data by the staker","_signatureType":"signature type 1 - for web3.eth.sign 2 - for eth_signTypedData according to EIP #712."},"return":"uint256 minted reputation"}},"title":"A scheme for reputation allocation according to token balances This contract is assuming that the token contract is paused, and one cannot transfer its tokens."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeERC20.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeERC20.json new file mode 100644 index 00000000..3fc2f950 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeERC20.json @@ -0,0 +1 @@ +{"contractName":"SafeERC20","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"613:2351:6:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","deployedSourceMap":"613:2351:6:-;;;;;;;;","source":"/*\n\nSafeERC20 by daostack.\nThe code is based on a fix by SECBIT Team.\n\nUSE WITH CAUTION & NO WARRANTY\n\nREFERENCE & RELATED READING\n- https://github.com/ethereum/solidity/issues/4116\n- https://medium.com/@chris_77367/explaining-unexpected-reverts-starting-with-solidity-0-4-22-3ada6e82308c\n- https://medium.com/coinmonks/missing-return-value-bug-at-least-130-tokens-affected-d67bf08521ca\n- https://gist.github.com/BrendanChou/88a2eeb80947ff00bcf58ffdafeaeb61\n\n*/\npragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/utils/Address.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\n\nlibrary SafeERC20 {\n using Address for address;\n\n bytes4 constant private TRANSFER_SELECTOR = bytes4(keccak256(bytes(\"transfer(address,uint256)\")));\n bytes4 constant private TRANSFERFROM_SELECTOR = bytes4(keccak256(bytes(\"transferFrom(address,address,uint256)\")));\n bytes4 constant private APPROVE_SELECTOR = bytes4(keccak256(bytes(\"approve(address,uint256)\")));\n\n function safeTransfer(address _erc20Addr, address _to, uint256 _value) internal {\n\n // Must be a contract addr first!\n require(_erc20Addr.isContract());\n\n (bool success, bytes memory returnValue) =\n // solhint-disable-next-line avoid-low-level-calls\n _erc20Addr.call(abi.encodeWithSelector(TRANSFER_SELECTOR, _to, _value));\n // call return false when something wrong\n require(success);\n //check return value\n require(returnValue.length == 0 || (returnValue.length == 32 && (returnValue[31] != 0)));\n }\n\n function safeTransferFrom(address _erc20Addr, address _from, address _to, uint256 _value) internal {\n\n // Must be a contract addr first!\n require(_erc20Addr.isContract());\n\n (bool success, bytes memory returnValue) =\n // solhint-disable-next-line avoid-low-level-calls\n _erc20Addr.call(abi.encodeWithSelector(TRANSFERFROM_SELECTOR, _from, _to, _value));\n // call return false when something wrong\n require(success);\n //check return value\n require(returnValue.length == 0 || (returnValue.length == 32 && (returnValue[31] != 0)));\n }\n\n function safeApprove(address _erc20Addr, address _spender, uint256 _value) internal {\n\n // Must be a contract addr first!\n require(_erc20Addr.isContract());\n\n // safeApprove should only be called when setting an initial allowance,\n // or when resetting it to zero.\n require((_value == 0) || (IERC20(_erc20Addr).allowance(address(this), _spender) == 0));\n\n (bool success, bytes memory returnValue) =\n // solhint-disable-next-line avoid-low-level-calls\n _erc20Addr.call(abi.encodeWithSelector(APPROVE_SELECTOR, _spender, _value));\n // call return false when something wrong\n require(success);\n //check return value\n require(returnValue.length == 0 || (returnValue.length == 32 && (returnValue[31] != 0)));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","exportedSymbols":{"SafeERC20":[2257]},"id":2258,"nodeType":"SourceUnit","nodes":[{"id":2039,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"462:23:6"},{"absolutePath":"openzeppelin-solidity/contracts/utils/Address.sol","file":"openzeppelin-solidity/contracts/utils/Address.sol","id":2040,"nodeType":"ImportDirective","scope":2258,"sourceUnit":21093,"src":"487:59:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":2041,"nodeType":"ImportDirective","scope":2258,"sourceUnit":21018,"src":"547:64:6","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":null,"fullyImplemented":true,"id":2257,"linearizedBaseContracts":[2257],"name":"SafeERC20","nodeType":"ContractDefinition","nodes":[{"id":2044,"libraryName":{"contractScope":null,"id":2042,"name":"Address","nodeType":"UserDefinedTypeName","referencedDeclaration":21092,"src":"643:7:6","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}},"nodeType":"UsingForDirective","src":"637:26:6","typeName":{"id":2043,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":true,"id":2053,"name":"TRANSFER_SELECTOR","nodeType":"VariableDeclaration","scope":2257,"src":"669:97:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2045,"name":"bytes4","nodeType":"ElementaryTypeName","src":"669:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"7472616e7366657228616464726573732c75696e7432353629","id":2049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"736:27:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""},"value":"transfer(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""}],"id":2048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"730:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":2050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"730:34:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2047,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"720:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"720:45:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"713:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":2052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"713:53:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"constant":true,"id":2062,"name":"TRANSFERFROM_SELECTOR","nodeType":"VariableDeclaration","scope":2257,"src":"772:113:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2054,"name":"bytes4","nodeType":"ElementaryTypeName","src":"772:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"7472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629","id":2058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"843:39:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b","typeString":"literal_string \"transferFrom(address,address,uint256)\""},"value":"transferFrom(address,address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b","typeString":"literal_string \"transferFrom(address,address,uint256)\""}],"id":2057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"837:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":2059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"837:46:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2056,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"827:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"827:57:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"820:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":2061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:65:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"constant":true,"id":2071,"name":"APPROVE_SELECTOR","nodeType":"VariableDeclaration","scope":2257,"src":"891:95:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"891:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"617070726f766528616464726573732c75696e7432353629","id":2067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"957:26:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba","typeString":"literal_string \"approve(address,uint256)\""},"value":"approve(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba","typeString":"literal_string \"approve(address,uint256)\""}],"id":2066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"951:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":2068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"951:33:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2065,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"941:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"941:44:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"934:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":2070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"934:52:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"body":{"id":2124,"nodeType":"Block","src":"1073:487:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2081,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2073,"src":"1134:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"1134:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1134:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1126:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1126:32:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2085,"nodeType":"ExpressionStatement","src":"1126:32:6"},{"assignments":[2087,2089],"declarations":[{"constant":false,"id":2087,"name":"success","nodeType":"VariableDeclaration","scope":2124,"src":"1170:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2086,"name":"bool","nodeType":"ElementaryTypeName","src":"1170:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2089,"name":"returnValue","nodeType":"VariableDeclaration","scope":2124,"src":"1184:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2088,"name":"bytes","nodeType":"ElementaryTypeName","src":"1184:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2099,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2094,"name":"TRANSFER_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"1318:17:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":2095,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2075,"src":"1337:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2096,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"1342:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"1295:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1295:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1295:54:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2090,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2073,"src":"1279:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1279:15:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1279:71:6","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1169:181:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2101,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"1418:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2100,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1410:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1410:16:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2103,"nodeType":"ExpressionStatement","src":"1410:16:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2105,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1473:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1473:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1495:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1473:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2109,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1501:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1501:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"3332","id":2111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1501:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2113,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1530:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2115,"indexExpression":{"argumentTypes":null,"hexValue":"3331","id":2114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1542:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1530:15:6","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1549:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1530:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1529:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1501:50:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2120,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1500:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1473:79:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2104,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1465:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1465:88:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2123,"nodeType":"ExpressionStatement","src":"1465:88:6"}]},"documentation":null,"id":2125,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nodeType":"FunctionDefinition","parameters":{"id":2078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2073,"name":"_erc20Addr","nodeType":"VariableDeclaration","scope":2125,"src":"1015:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2072,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2075,"name":"_to","nodeType":"VariableDeclaration","scope":2125,"src":"1035:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2074,"name":"address","nodeType":"ElementaryTypeName","src":"1035:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2077,"name":"_value","nodeType":"VariableDeclaration","scope":2125,"src":"1048:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1048:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1014:49:6"},"returnParameters":{"id":2079,"nodeType":"ParameterList","parameters":[],"src":"1073:0:6"},"scope":2257,"src":"993:567:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2181,"nodeType":"Block","src":"1665:498:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2137,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2127,"src":"1726:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"1726:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1726:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1718:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1718:32:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2141,"nodeType":"ExpressionStatement","src":"1718:32:6"},{"assignments":[2143,2145],"declarations":[{"constant":false,"id":2143,"name":"success","nodeType":"VariableDeclaration","scope":2181,"src":"1762:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2142,"name":"bool","nodeType":"ElementaryTypeName","src":"1762:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2145,"name":"returnValue","nodeType":"VariableDeclaration","scope":2181,"src":"1776:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2144,"name":"bytes","nodeType":"ElementaryTypeName","src":"1776:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2156,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2150,"name":"TRANSFERFROM_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"1910:21:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":2151,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2129,"src":"1933:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2152,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1940:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2153,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2133,"src":"1945:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"1887:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1887:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1887:65:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2146,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2127,"src":"1871:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1871:15:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1871:82:6","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1761:192:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2158,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"2021:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2157,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2013:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2013:16:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2160,"nodeType":"ExpressionStatement","src":"2013:16:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2162,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"2076:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2076:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2098:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2076:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2166,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"2104:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2104:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"3332","id":2168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2126:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2104:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2170,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"2133:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2172,"indexExpression":{"argumentTypes":null,"hexValue":"3331","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2133:15:6","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2133:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2132:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2104:50:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2103:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2076:79:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2068:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2068:88:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"2068:88:6"}]},"documentation":null,"id":2182,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":2134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2127,"name":"_erc20Addr","nodeType":"VariableDeclaration","scope":2182,"src":"1592:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2126,"name":"address","nodeType":"ElementaryTypeName","src":"1592:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2129,"name":"_from","nodeType":"VariableDeclaration","scope":2182,"src":"1612:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2128,"name":"address","nodeType":"ElementaryTypeName","src":"1612:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2131,"name":"_to","nodeType":"VariableDeclaration","scope":2182,"src":"1627:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2130,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2133,"name":"_value","nodeType":"VariableDeclaration","scope":2182,"src":"1640:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2132,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1591:64:6"},"returnParameters":{"id":2135,"nodeType":"ParameterList","parameters":[],"src":"1665:0:6"},"scope":2257,"src":"1566:597:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2255,"nodeType":"Block","src":"2253:709:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2192,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2314:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"2314:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2314:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2191,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2306:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2306:32:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"2306:32:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2198,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"2479:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2479:11:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2201,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2478:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2207,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21141,"src":"2533:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}],"id":2206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2525:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2209,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2186,"src":"2540:8:6","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":2203,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2503:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2202,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"2496:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2496:18:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":20980,"src":"2496:28:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2496:53:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2496:58:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2213,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2495:60:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2478:77:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2470:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2470:86:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2216,"nodeType":"ExpressionStatement","src":"2470:86:6"},{"assignments":[2218,2220],"declarations":[{"constant":false,"id":2218,"name":"success","nodeType":"VariableDeclaration","scope":2255,"src":"2568:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2217,"name":"bool","nodeType":"ElementaryTypeName","src":"2568:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2220,"name":"returnValue","nodeType":"VariableDeclaration","scope":2255,"src":"2582:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2219,"name":"bytes","nodeType":"ElementaryTypeName","src":"2582:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2230,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2225,"name":"APPROVE_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"2716:16:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":2226,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2186,"src":"2734:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2227,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"2744:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2223,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2693:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2693:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2693:58:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2221,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2677:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2677:15:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2677:75:6","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2567:185:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2232,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"2820:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2231,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2812:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2812:16:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2234,"nodeType":"ExpressionStatement","src":"2812:16:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2236,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2875:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2875:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2897:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2875:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2240,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2903:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2903:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"3332","id":2242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2925:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2903:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2244,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2932:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2246,"indexExpression":{"argumentTypes":null,"hexValue":"3331","id":2245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2944:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2932:15:6","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2951:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2932:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2931:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2903:50:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2251,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2902:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2875:79:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2867:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2867:88:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2254,"nodeType":"ExpressionStatement","src":"2867:88:6"}]},"documentation":null,"id":2256,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nodeType":"FunctionDefinition","parameters":{"id":2189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"name":"_erc20Addr","nodeType":"VariableDeclaration","scope":2256,"src":"2190:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2183,"name":"address","nodeType":"ElementaryTypeName","src":"2190:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2186,"name":"_spender","nodeType":"VariableDeclaration","scope":2256,"src":"2210:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2185,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2188,"name":"_value","nodeType":"VariableDeclaration","scope":2256,"src":"2228:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2228:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2189:54:6"},"returnParameters":{"id":2190,"nodeType":"ParameterList","parameters":[],"src":"2253:0:6"},"scope":2257,"src":"2169:793:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":2258,"src":"613:2351:6"}],"src":"462:2503:6"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","exportedSymbols":{"SafeERC20":[2257]},"id":2258,"nodeType":"SourceUnit","nodes":[{"id":2039,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"462:23:6"},{"absolutePath":"openzeppelin-solidity/contracts/utils/Address.sol","file":"openzeppelin-solidity/contracts/utils/Address.sol","id":2040,"nodeType":"ImportDirective","scope":2258,"sourceUnit":21093,"src":"487:59:6","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":2041,"nodeType":"ImportDirective","scope":2258,"sourceUnit":21018,"src":"547:64:6","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":null,"fullyImplemented":true,"id":2257,"linearizedBaseContracts":[2257],"name":"SafeERC20","nodeType":"ContractDefinition","nodes":[{"id":2044,"libraryName":{"contractScope":null,"id":2042,"name":"Address","nodeType":"UserDefinedTypeName","referencedDeclaration":21092,"src":"643:7:6","typeDescriptions":{"typeIdentifier":"t_contract$_Address_$21092","typeString":"library Address"}},"nodeType":"UsingForDirective","src":"637:26:6","typeName":{"id":2043,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":true,"id":2053,"name":"TRANSFER_SELECTOR","nodeType":"VariableDeclaration","scope":2257,"src":"669:97:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2045,"name":"bytes4","nodeType":"ElementaryTypeName","src":"669:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"7472616e7366657228616464726573732c75696e7432353629","id":2049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"736:27:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""},"value":"transfer(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_a9059cbb2ab09eb219583f4a59a5d0623ade346d962bcd4e46b11da047c9049b","typeString":"literal_string \"transfer(address,uint256)\""}],"id":2048,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"730:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":2050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"730:34:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2047,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"720:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"720:45:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2046,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"713:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":2052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"713:53:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"constant":true,"id":2062,"name":"TRANSFERFROM_SELECTOR","nodeType":"VariableDeclaration","scope":2257,"src":"772:113:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2054,"name":"bytes4","nodeType":"ElementaryTypeName","src":"772:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"7472616e7366657246726f6d28616464726573732c616464726573732c75696e7432353629","id":2058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"843:39:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b","typeString":"literal_string \"transferFrom(address,address,uint256)\""},"value":"transferFrom(address,address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_23b872dd7302113369cda2901243429419bec145408fa8b352b3dd92b66c680b","typeString":"literal_string \"transferFrom(address,address,uint256)\""}],"id":2057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"837:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":2059,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"837:46:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2056,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"827:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2060,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"827:57:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"820:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":2061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"820:65:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"constant":true,"id":2071,"name":"APPROVE_SELECTOR","nodeType":"VariableDeclaration","scope":2257,"src":"891:95:6","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":2063,"name":"bytes4","nodeType":"ElementaryTypeName","src":"891:6:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"617070726f766528616464726573732c75696e7432353629","id":2067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"957:26:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba","typeString":"literal_string \"approve(address,uint256)\""},"value":"approve(address,uint256)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_095ea7b334ae44009aa867bfb386f5c3b4b443ac6f0ee573fa91c4608fbadfba","typeString":"literal_string \"approve(address,uint256)\""}],"id":2066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"951:5:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":"bytes"},"id":2068,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"951:33:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2065,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"941:9:6","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"941:44:6","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2064,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"934:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes4_$","typeString":"type(bytes4)"},"typeName":"bytes4"},"id":2070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"934:52:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"private"},{"body":{"id":2124,"nodeType":"Block","src":"1073:487:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2081,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2073,"src":"1134:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"1134:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1134:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2080,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1126:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1126:32:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2085,"nodeType":"ExpressionStatement","src":"1126:32:6"},{"assignments":[2087,2089],"declarations":[{"constant":false,"id":2087,"name":"success","nodeType":"VariableDeclaration","scope":2124,"src":"1170:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2086,"name":"bool","nodeType":"ElementaryTypeName","src":"1170:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2089,"name":"returnValue","nodeType":"VariableDeclaration","scope":2124,"src":"1184:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2088,"name":"bytes","nodeType":"ElementaryTypeName","src":"1184:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2099,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2094,"name":"TRANSFER_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2053,"src":"1318:17:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":2095,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2075,"src":"1337:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2096,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2077,"src":"1342:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"1295:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1295:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1295:54:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2090,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2073,"src":"1279:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1279:15:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1279:71:6","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1169:181:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2101,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2087,"src":"1418:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2100,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1410:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2102,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1410:16:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2103,"nodeType":"ExpressionStatement","src":"1410:16:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2108,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2105,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1473:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2106,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1473:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2107,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1495:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1473:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2109,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1501:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1501:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"3332","id":2111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1523:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"1501:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2117,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2113,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2089,"src":"1530:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2115,"indexExpression":{"argumentTypes":null,"hexValue":"3331","id":2114,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1542:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1530:15:6","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2116,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1549:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1530:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2118,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1529:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1501:50:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2120,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1500:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1473:79:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2104,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1465:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1465:88:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2123,"nodeType":"ExpressionStatement","src":"1465:88:6"}]},"documentation":null,"id":2125,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nodeType":"FunctionDefinition","parameters":{"id":2078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2073,"name":"_erc20Addr","nodeType":"VariableDeclaration","scope":2125,"src":"1015:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2072,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2075,"name":"_to","nodeType":"VariableDeclaration","scope":2125,"src":"1035:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2074,"name":"address","nodeType":"ElementaryTypeName","src":"1035:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2077,"name":"_value","nodeType":"VariableDeclaration","scope":2125,"src":"1048:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2076,"name":"uint256","nodeType":"ElementaryTypeName","src":"1048:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1014:49:6"},"returnParameters":{"id":2079,"nodeType":"ParameterList","parameters":[],"src":"1073:0:6"},"scope":2257,"src":"993:567:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2181,"nodeType":"Block","src":"1665:498:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2137,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2127,"src":"1726:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2138,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"1726:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1726:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2136,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"1718:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1718:32:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2141,"nodeType":"ExpressionStatement","src":"1718:32:6"},{"assignments":[2143,2145],"declarations":[{"constant":false,"id":2143,"name":"success","nodeType":"VariableDeclaration","scope":2181,"src":"1762:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2142,"name":"bool","nodeType":"ElementaryTypeName","src":"1762:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2145,"name":"returnValue","nodeType":"VariableDeclaration","scope":2181,"src":"1776:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2144,"name":"bytes","nodeType":"ElementaryTypeName","src":"1776:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2156,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2150,"name":"TRANSFERFROM_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2062,"src":"1910:21:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":2151,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2129,"src":"1933:5:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2152,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2131,"src":"1940:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2153,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2133,"src":"1945:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2148,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"1887:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1887:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1887:65:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2146,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2127,"src":"1871:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1871:15:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1871:82:6","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"1761:192:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2158,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2143,"src":"2021:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2157,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2013:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2013:16:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2160,"nodeType":"ExpressionStatement","src":"2013:16:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2162,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"2076:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2076:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2098:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2076:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2166,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"2104:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2104:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"3332","id":2168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2126:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2104:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2170,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2145,"src":"2133:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2172,"indexExpression":{"argumentTypes":null,"hexValue":"3331","id":2171,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2145:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2133:15:6","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2133:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2132:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2104:50:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2177,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2103:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2076:79:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2161,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2068:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2068:88:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2180,"nodeType":"ExpressionStatement","src":"2068:88:6"}]},"documentation":null,"id":2182,"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nodeType":"FunctionDefinition","parameters":{"id":2134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2127,"name":"_erc20Addr","nodeType":"VariableDeclaration","scope":2182,"src":"1592:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2126,"name":"address","nodeType":"ElementaryTypeName","src":"1592:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2129,"name":"_from","nodeType":"VariableDeclaration","scope":2182,"src":"1612:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2128,"name":"address","nodeType":"ElementaryTypeName","src":"1612:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2131,"name":"_to","nodeType":"VariableDeclaration","scope":2182,"src":"1627:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2130,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2133,"name":"_value","nodeType":"VariableDeclaration","scope":2182,"src":"1640:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2132,"name":"uint256","nodeType":"ElementaryTypeName","src":"1640:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1591:64:6"},"returnParameters":{"id":2135,"nodeType":"ParameterList","parameters":[],"src":"1665:0:6"},"scope":2257,"src":"1566:597:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"},{"body":{"id":2255,"nodeType":"Block","src":"2253:709:6","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":2192,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2314:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":21044,"src":"2314:21:6","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$","typeString":"function (address) view returns (bool)"}},"id":2194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2314:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2191,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2306:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2306:32:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2196,"nodeType":"ExpressionStatement","src":"2306:32:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":2198,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"2479:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2489:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2479:11:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2201,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2478:13:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2207,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21141,"src":"2533:4:6","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}],"id":2206,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2525:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2525:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2209,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2186,"src":"2540:8:6","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":2203,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2503:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2202,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"2496:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2496:18:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":20980,"src":"2496:28:6","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":2210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2496:53:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2211,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2553:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2496:58:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2213,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2495:60:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2478:77:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2197,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2470:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2470:86:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2216,"nodeType":"ExpressionStatement","src":"2470:86:6"},{"assignments":[2218,2220],"declarations":[{"constant":false,"id":2218,"name":"success","nodeType":"VariableDeclaration","scope":2255,"src":"2568:12:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2217,"name":"bool","nodeType":"ElementaryTypeName","src":"2568:4:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":2220,"name":"returnValue","nodeType":"VariableDeclaration","scope":2255,"src":"2582:24:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2219,"name":"bytes","nodeType":"ElementaryTypeName","src":"2582:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":2230,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2225,"name":"APPROVE_SELECTOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"2716:16:6","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":2226,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2186,"src":"2734:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":2227,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2188,"src":"2744:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":2223,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2693:3:6","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2224,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSelector","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2693:22:6","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":2228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2693:58:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"argumentTypes":null,"id":2221,"name":"_erc20Addr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2184,"src":"2677:10:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"call","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2677:15:6","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":2229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2677:75:6","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"2567:185:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":2232,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2218,"src":"2820:7:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2231,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2812:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2233,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2812:16:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2234,"nodeType":"ExpressionStatement","src":"2812:16:6"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2236,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2875:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2875:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2897:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2875:23:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2240,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2903:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"length","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2903:18:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"3332","id":2242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2925:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"2903:24:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bytes1","typeString":"bytes1"},"id":2248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2244,"name":"returnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2220,"src":"2932:11:6","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":2246,"indexExpression":{"argumentTypes":null,"hexValue":"3331","id":2245,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2944:2:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_31_by_1","typeString":"int_const 31"},"value":"31"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2932:15:6","typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":2247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2951:1:6","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2932:20:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2249,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2931:22:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2903:50:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2251,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2902:52:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2875:79:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":2235,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2867:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":2253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2867:88:6","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2254,"nodeType":"ExpressionStatement","src":"2867:88:6"}]},"documentation":null,"id":2256,"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nodeType":"FunctionDefinition","parameters":{"id":2189,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2184,"name":"_erc20Addr","nodeType":"VariableDeclaration","scope":2256,"src":"2190:18:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2183,"name":"address","nodeType":"ElementaryTypeName","src":"2190:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2186,"name":"_spender","nodeType":"VariableDeclaration","scope":2256,"src":"2210:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2185,"name":"address","nodeType":"ElementaryTypeName","src":"2210:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":2188,"name":"_value","nodeType":"VariableDeclaration","scope":2256,"src":"2228:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2187,"name":"uint256","nodeType":"ElementaryTypeName","src":"2228:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2189:54:6"},"returnParameters":{"id":2190,"nodeType":"ParameterList","parameters":[],"src":"2253:0:6"},"scope":2257,"src":"2169:793:6","stateMutability":"nonpayable","superFunction":null,"visibility":"internal"}],"scope":2258,"src":"613:2351:6"}],"src":"462:2503:6"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.066Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeERC20Mock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeERC20Mock.json new file mode 100644 index 00000000..f07bd31a --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeERC20Mock.json @@ -0,0 +1 @@ +{"contractName":"SafeERC20Mock","abi":[{"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"constant":true,"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferWithFix","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFromWithFix","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approveWithFix","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approveWithFix\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFromWithFix\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferWithFix\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/SafeERC20Mock.sol\":\"SafeERC20Mock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/test/BadERC20.sol\":{\"keccak256\":\"0xe2fef0e26f062cbda1665222f48077a628800ed4ced9c8d3e8694309dbdf8e7e\",\"urls\":[\"bzz-raw://75cc9db0bcc322cfe89c1aa24175fc2875570dc7f2fa283ffa03aa7a019330f5\",\"dweb:/ipfs/QmbHV625rtQvYkALGN7imxknP9JVyEp6Me2EnmHRHAZcqa\"]},\"/Users/oren/daostack/arc/contracts/test/SafeERC20Mock.sol\":{\"keccak256\":\"0xf67a6e8b75c5c8699a71051b1ab96feedd65d9b1679910c87c094d737b52bbc3\",\"urls\":[\"bzz-raw://2a549a25fcd2c86d04bf29a04579e38ee6443c077c30ed92176a4bef7f040e0e\",\"dweb:/ipfs/QmXgVBhWorxBP4PSyj81NXbJjnBdTHHEdk9fDmW9nwRNQb\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"149:790:35:-;;;239:74;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:74:35;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;239:74:35;283:5;:23;;-1:-1:-1;;;;;283:23:35;;;-1:-1:-1;;;;;;283:23:35;;;;;;;;;149:790;;;;;;","deployedSourceMap":"149:790:35:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;149:790:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;784:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;784:152:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;454:144;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;454:144:35;;;;;;;;:::i;319:129::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;319:129:35;;;;;;;;:::i;604:174::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;604:174:35;;;;;;;;;;;;;;;;;:::i;212:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;212:20:35;;;;;;;;;;;;;;784:152;857:4;873:5;;:35;;-1:-1:-1;;;;;873:5:35;891:8;901:6;873:35;:17;:35;:::i;:::-;-1:-1:-1;925:4:35;784:152;;;;;:::o;454:144::-;523:4;539:5;;:31;;-1:-1:-1;;;;;539:5:35;558:3;563:6;539:31;:18;:31;:::i;319:129::-;381:4;412:5;;405:35;;;-1:-1:-1;;;405:35:35;;-1:-1:-1;;;;;405:35:35;;;;;;;;;;;;;;;412:5;;;;;405:22;;:35;;;;;;;;;;;;;;381:4;412:5;405:35;;;5:2:-1;;;;30:1;27;20:12;5:2;405:35:35;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;405:35:35;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;405:35:35;397:44;;;;;604:174;692:4;708:5;;:42;;-1:-1:-1;;;;;708:5:35;731;738:3;743:6;708:42;:22;:42;:::i;:::-;-1:-1:-1;767:4:35;604:174;;;;;:::o;212:20::-;;;-1:-1:-1;;;;;212:20:35;;:::o;2169:793:6:-;2314:23;:10;-1:-1:-1;;;;;2314:21:6;;:23::i;:::-;2306:32;;;;;;2479:11;;;2478:77;;-1:-1:-1;2496:53:6;;;-1:-1:-1;;;2496:53:6;;2533:4;2496:53;;;;-1:-1:-1;;;;;2496:53:6;;;;;;;;;:28;;;;;;:53;;;;;;;;;;;;;;;:28;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;2496:53:6;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2496:53:6;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2496:53:6;:58;2478:77;2470:86;;;;;;951:33;;;;;;;;;;;;;;;;;2693:58;;-1:-1:-1;;;;;2693:58:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;2693:58:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;2677:75:6;;;;2568:12;;2582:24;;2677:15;;;2693:58;2677:75;;;25:18:-1;2677:75:6;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;2677:75:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;2567:185:6;;;;2820:7;2812:16;;;;;;2875:18;;:23;;:79;;;2903:11;:18;2925:2;2903:24;:50;;;;;2932:11;2944:2;2932:15;;;;;;;;;;;;-1:-1:-1;;;;;;2932:15:6;:20;;2903:50;2867:88;;;;;;2169:793;;;;;:::o;993:567::-;1134:23;:10;-1:-1:-1;;;;;1134:21:6;;:23::i;:::-;1126:32;;;;;;730:34;;;;;;;;;;;;;;;;;1295:54;;-1:-1:-1;;;;;1295:54:6;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1295:54:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;1279:71:6;;;;1170:12;;1184:24;;1279:15;;;1295:54;1279:71;;;25:18:-1;1279:71:6;;25:18:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;1566:597:6;1726:23;:10;-1:-1:-1;;;;;1726:21:6;;:23::i;:::-;1718:32;;;;;;1762:12;1776:24;1871:10;-1:-1:-1;;;;;1871:15:6;837:46;;;;;;;;;;;;;;;;;827:57;;;;;;;1887:65;;;-1:-1:-1;;;;;1887:65:6;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1887:65:6;;;;;;25:18:-1;;;61:17;;-1:-1;;;;;182:15;-1:-1;;;;;;1887:65:6;;;179:29:-1;;;;160:49;;1871:82:6;;;;;;;;;25:18:-1;36:153;66:2;61:3;58:11;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;1871:82:6;;;;;;;;;;;;;;;;;;;;;;;;14:1:-1;21;16:31;;;;75:4;69:11;64:16;;144:4;140:9;133:4;115:16;111:27;107:43;104:1;100:51;94:4;87:65;169:16;166:1;159:27;225:16;222:1;215:4;212:1;208:12;193:49;7:242;;16:31;36:4;31:9;;7:242;;1761:192:6;;;;2021:7;2013:16;;;;;;2076:18;;:23;;:79;;;2104:11;:18;2126:2;2104:24;:50;;;;;2133:11;2145:2;2133:15;;;;;;;;;;;;-1:-1:-1;;;;;;2133:15:6;:20;;2104:50;2068:88;;;;;;1566:597;;;;;;:::o;557:797:71:-;617:4;1265:20;;1110:66;1304:15;;;;;:42;;;1335:11;1323:8;:23;;1304:42;1296:51;557:797;-1:-1:-1;;;;557:797:71:o","source":"pragma solidity 0.5.13;\n\nimport \"./BadERC20.sol\";\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"../libs/SafeERC20.sol\";\n\n\ncontract SafeERC20Mock {\n using SafeERC20 for address;\n\n address public token;\n\n constructor(IERC20 _token) public {\n token = address(_token);\n }\n\n function transfer(address _to, uint256 _value) public returns(bool) {\n require(IERC20(token).transfer(_to, _value));\n }\n\n function transferWithFix(address _to, uint256 _value) public returns(bool) {\n token.safeTransfer(_to, _value);\n return true;\n }\n\n function transferFromWithFix(address _from, address _to, uint256 _value) public returns(bool) {\n token.safeTransferFrom(_from, _to, _value);\n return true;\n }\n\n function approveWithFix(address _spender, uint256 _value) public returns(bool) {\n token.safeApprove(_spender, _value);\n return true;\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/SafeERC20Mock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/SafeERC20Mock.sol","exportedSymbols":{"SafeERC20Mock":[9484]},"id":9485,"nodeType":"SourceUnit","nodes":[{"id":9383,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:35"},{"absolutePath":"/Users/oren/daostack/arc/contracts/test/BadERC20.sol","file":"./BadERC20.sol","id":9384,"nodeType":"ImportDirective","scope":9485,"sourceUnit":8911,"src":"25:24:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":9385,"nodeType":"ImportDirective","scope":9485,"sourceUnit":21018,"src":"50:64:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":9386,"nodeType":"ImportDirective","scope":9485,"sourceUnit":2258,"src":"115:31:35","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9484,"linearizedBaseContracts":[9484],"name":"SafeERC20Mock","nodeType":"ContractDefinition","nodes":[{"id":9389,"libraryName":{"contractScope":null,"id":9387,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"184:9:35","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"178:28:35","typeName":{"id":9388,"name":"address","nodeType":"ElementaryTypeName","src":"198:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":9391,"name":"token","nodeType":"VariableDeclaration","scope":9484,"src":"212:20:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9390,"name":"address","nodeType":"ElementaryTypeName","src":"212:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":9402,"nodeType":"Block","src":"273:40:35","statements":[{"expression":{"argumentTypes":null,"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9396,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"283:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9398,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9393,"src":"299:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":9397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"291:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"291:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"283:23:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9401,"nodeType":"ExpressionStatement","src":"283:23:35"}]},"documentation":null,"id":9403,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":9394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9393,"name":"_token","nodeType":"VariableDeclaration","scope":9403,"src":"251:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9392,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"251:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"src":"250:15:35"},"returnParameters":{"id":9395,"nodeType":"ParameterList","parameters":[],"src":"273:0:35"},"scope":9484,"src":"239:74:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9422,"nodeType":"Block","src":"387:61:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9417,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"428:3:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9418,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"433:6:35","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":9414,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"412:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9413,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"405:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":9415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"405:13:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":9416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"405:22:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"405:35:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"397:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"397:44:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9421,"nodeType":"ExpressionStatement","src":"397:44:35"}]},"documentation":null,"id":9423,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":9408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9405,"name":"_to","nodeType":"VariableDeclaration","scope":9423,"src":"337:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9404,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9407,"name":"_value","nodeType":"VariableDeclaration","scope":9423,"src":"350:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9406,"name":"uint256","nodeType":"ElementaryTypeName","src":"350:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"336:29:35"},"returnParameters":{"id":9411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9410,"name":"","nodeType":"VariableDeclaration","scope":9423,"src":"381:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9409,"name":"bool","nodeType":"ElementaryTypeName","src":"381:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"380:6:35"},"scope":9484,"src":"319:129:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9441,"nodeType":"Block","src":"529:69:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9435,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"558:3:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9436,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9427,"src":"563:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9432,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"539:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"539:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":9437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"539:31:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9438,"nodeType":"ExpressionStatement","src":"539:31:35"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"587:4:35","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9431,"id":9440,"nodeType":"Return","src":"580:11:35"}]},"documentation":null,"id":9442,"implemented":true,"kind":"function","modifiers":[],"name":"transferWithFix","nodeType":"FunctionDefinition","parameters":{"id":9428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9425,"name":"_to","nodeType":"VariableDeclaration","scope":9442,"src":"479:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9424,"name":"address","nodeType":"ElementaryTypeName","src":"479:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9427,"name":"_value","nodeType":"VariableDeclaration","scope":9442,"src":"492:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9426,"name":"uint256","nodeType":"ElementaryTypeName","src":"492:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"478:29:35"},"returnParameters":{"id":9431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9430,"name":"","nodeType":"VariableDeclaration","scope":9442,"src":"523:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9429,"name":"bool","nodeType":"ElementaryTypeName","src":"523:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"522:6:35"},"scope":9484,"src":"454:144:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9463,"nodeType":"Block","src":"698:80:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9456,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9444,"src":"731:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9457,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9446,"src":"738:3:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9458,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"743:6:35","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":9453,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"708:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"708:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"708:42:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9460,"nodeType":"ExpressionStatement","src":"708:42:35"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"767:4:35","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9452,"id":9462,"nodeType":"Return","src":"760:11:35"}]},"documentation":null,"id":9464,"implemented":true,"kind":"function","modifiers":[],"name":"transferFromWithFix","nodeType":"FunctionDefinition","parameters":{"id":9449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9444,"name":"_from","nodeType":"VariableDeclaration","scope":9464,"src":"633:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9443,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9446,"name":"_to","nodeType":"VariableDeclaration","scope":9464,"src":"648:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9445,"name":"address","nodeType":"ElementaryTypeName","src":"648:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9448,"name":"_value","nodeType":"VariableDeclaration","scope":9464,"src":"661:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9447,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"632:44:35"},"returnParameters":{"id":9452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9451,"name":"","nodeType":"VariableDeclaration","scope":9464,"src":"692:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9450,"name":"bool","nodeType":"ElementaryTypeName","src":"692:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"691:6:35"},"scope":9484,"src":"604:174:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9482,"nodeType":"Block","src":"863:73:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9476,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9466,"src":"891:8:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9477,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"901:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9473,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"873:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"873:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":9478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"873:35:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9479,"nodeType":"ExpressionStatement","src":"873:35:35"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"925:4:35","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9472,"id":9481,"nodeType":"Return","src":"918:11:35"}]},"documentation":null,"id":9483,"implemented":true,"kind":"function","modifiers":[],"name":"approveWithFix","nodeType":"FunctionDefinition","parameters":{"id":9469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9466,"name":"_spender","nodeType":"VariableDeclaration","scope":9483,"src":"808:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9465,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9468,"name":"_value","nodeType":"VariableDeclaration","scope":9483,"src":"826:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9467,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"807:34:35"},"returnParameters":{"id":9472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9471,"name":"","nodeType":"VariableDeclaration","scope":9483,"src":"857:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9470,"name":"bool","nodeType":"ElementaryTypeName","src":"857:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"856:6:35"},"scope":9484,"src":"784:152:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":9485,"src":"149:790:35"}],"src":"0:940:35"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/SafeERC20Mock.sol","exportedSymbols":{"SafeERC20Mock":[9484]},"id":9485,"nodeType":"SourceUnit","nodes":[{"id":9383,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:35"},{"absolutePath":"/Users/oren/daostack/arc/contracts/test/BadERC20.sol","file":"./BadERC20.sol","id":9384,"nodeType":"ImportDirective","scope":9485,"sourceUnit":8911,"src":"25:24:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":9385,"nodeType":"ImportDirective","scope":9485,"sourceUnit":21018,"src":"50:64:35","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol","file":"../libs/SafeERC20.sol","id":9386,"nodeType":"ImportDirective","scope":9485,"sourceUnit":2258,"src":"115:31:35","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9484,"linearizedBaseContracts":[9484],"name":"SafeERC20Mock","nodeType":"ContractDefinition","nodes":[{"id":9389,"libraryName":{"contractScope":null,"id":9387,"name":"SafeERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":2257,"src":"184:9:35","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$2257","typeString":"library SafeERC20"}},"nodeType":"UsingForDirective","src":"178:28:35","typeName":{"id":9388,"name":"address","nodeType":"ElementaryTypeName","src":"198:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"constant":false,"id":9391,"name":"token","nodeType":"VariableDeclaration","scope":9484,"src":"212:20:35","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9390,"name":"address","nodeType":"ElementaryTypeName","src":"212:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"public"},{"body":{"id":9402,"nodeType":"Block","src":"273:40:35","statements":[{"expression":{"argumentTypes":null,"id":9400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":9396,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"283:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9398,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9393,"src":"299:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}],"id":9397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"291:7:35","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"291:15:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"283:23:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9401,"nodeType":"ExpressionStatement","src":"283:23:35"}]},"documentation":null,"id":9403,"implemented":true,"kind":"constructor","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":9394,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9393,"name":"_token","nodeType":"VariableDeclaration","scope":9403,"src":"251:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":9392,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"251:6:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"}],"src":"250:15:35"},"returnParameters":{"id":9395,"nodeType":"ParameterList","parameters":[],"src":"273:0:35"},"scope":9484,"src":"239:74:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9422,"nodeType":"Block","src":"387:61:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9417,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9405,"src":"428:3:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9418,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9407,"src":"433:6:35","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":9414,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"412:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9413,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"405:6:35","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":9415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"405:13:35","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":9416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":20971,"src":"405:22:35","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":9419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"405:35:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":9412,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"397:7:35","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":9420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"397:44:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9421,"nodeType":"ExpressionStatement","src":"397:44:35"}]},"documentation":null,"id":9423,"implemented":true,"kind":"function","modifiers":[],"name":"transfer","nodeType":"FunctionDefinition","parameters":{"id":9408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9405,"name":"_to","nodeType":"VariableDeclaration","scope":9423,"src":"337:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9404,"name":"address","nodeType":"ElementaryTypeName","src":"337:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9407,"name":"_value","nodeType":"VariableDeclaration","scope":9423,"src":"350:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9406,"name":"uint256","nodeType":"ElementaryTypeName","src":"350:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"336:29:35"},"returnParameters":{"id":9411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9410,"name":"","nodeType":"VariableDeclaration","scope":9423,"src":"381:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9409,"name":"bool","nodeType":"ElementaryTypeName","src":"381:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"380:6:35"},"scope":9484,"src":"319:129:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9441,"nodeType":"Block","src":"529:69:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9435,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9425,"src":"558:3:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9436,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9427,"src":"563:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9432,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"539:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":2125,"src":"539:18:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":9437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"539:31:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9438,"nodeType":"ExpressionStatement","src":"539:31:35"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"587:4:35","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9431,"id":9440,"nodeType":"Return","src":"580:11:35"}]},"documentation":null,"id":9442,"implemented":true,"kind":"function","modifiers":[],"name":"transferWithFix","nodeType":"FunctionDefinition","parameters":{"id":9428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9425,"name":"_to","nodeType":"VariableDeclaration","scope":9442,"src":"479:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9424,"name":"address","nodeType":"ElementaryTypeName","src":"479:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9427,"name":"_value","nodeType":"VariableDeclaration","scope":9442,"src":"492:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9426,"name":"uint256","nodeType":"ElementaryTypeName","src":"492:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"478:29:35"},"returnParameters":{"id":9431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9430,"name":"","nodeType":"VariableDeclaration","scope":9442,"src":"523:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9429,"name":"bool","nodeType":"ElementaryTypeName","src":"523:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"522:6:35"},"scope":9484,"src":"454:144:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9463,"nodeType":"Block","src":"698:80:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9456,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9444,"src":"731:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9457,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9446,"src":"738:3:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9458,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9448,"src":"743:6:35","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":9453,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"708:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":2182,"src":"708:22:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,address,uint256)"}},"id":9459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"708:42:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9460,"nodeType":"ExpressionStatement","src":"708:42:35"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"767:4:35","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9452,"id":9462,"nodeType":"Return","src":"760:11:35"}]},"documentation":null,"id":9464,"implemented":true,"kind":"function","modifiers":[],"name":"transferFromWithFix","nodeType":"FunctionDefinition","parameters":{"id":9449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9444,"name":"_from","nodeType":"VariableDeclaration","scope":9464,"src":"633:13:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9443,"name":"address","nodeType":"ElementaryTypeName","src":"633:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9446,"name":"_to","nodeType":"VariableDeclaration","scope":9464,"src":"648:11:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9445,"name":"address","nodeType":"ElementaryTypeName","src":"648:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9448,"name":"_value","nodeType":"VariableDeclaration","scope":9464,"src":"661:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9447,"name":"uint256","nodeType":"ElementaryTypeName","src":"661:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"632:44:35"},"returnParameters":{"id":9452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9451,"name":"","nodeType":"VariableDeclaration","scope":9464,"src":"692:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9450,"name":"bool","nodeType":"ElementaryTypeName","src":"692:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"691:6:35"},"scope":9484,"src":"604:174:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9482,"nodeType":"Block","src":"863:73:35","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9476,"name":"_spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9466,"src":"891:8:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9477,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9468,"src":"901:6:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9473,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9391,"src":"873:5:35","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":9475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"safeApprove","nodeType":"MemberAccess","referencedDeclaration":2256,"src":"873:17:35","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$bound_to$_t_address_$","typeString":"function (address,address,uint256)"}},"id":9478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"873:35:35","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9479,"nodeType":"ExpressionStatement","src":"873:35:35"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":9480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"925:4:35","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":9472,"id":9481,"nodeType":"Return","src":"918:11:35"}]},"documentation":null,"id":9483,"implemented":true,"kind":"function","modifiers":[],"name":"approveWithFix","nodeType":"FunctionDefinition","parameters":{"id":9469,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9466,"name":"_spender","nodeType":"VariableDeclaration","scope":9483,"src":"808:16:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9465,"name":"address","nodeType":"ElementaryTypeName","src":"808:7:35","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9468,"name":"_value","nodeType":"VariableDeclaration","scope":9483,"src":"826:14:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9467,"name":"uint256","nodeType":"ElementaryTypeName","src":"826:7:35","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"807:34:35"},"returnParameters":{"id":9472,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9471,"name":"","nodeType":"VariableDeclaration","scope":9483,"src":"857:4:35","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9470,"name":"bool","nodeType":"ElementaryTypeName","src":"857:4:35","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"856:6:35"},"scope":9484,"src":"784:152:35","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":9485,"src":"149:790:35"}],"src":"0:940:35"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.156Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeMath.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeMath.json new file mode 100644 index 00000000..c5bef415 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SafeMath.json @@ -0,0 +1 @@ +{"contractName":"SafeMath","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]}},\"version\":1}","sourceMap":"589:4708:66:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24","deployedSourceMap":"589:4708:66:-;;;;;;;;","source":"pragma solidity ^0.5.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n return sub(a, b, \"SafeMath: subtraction overflow\");\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n * - Subtraction cannot overflow.\n *\n * _Available since v2.4.0._\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n uint256 c = a - b;\n\n return c;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) {\n return 0;\n }\n\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n return div(a, b, \"SafeMath: division by zero\");\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers. Reverts with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n *\n * _Available since v2.4.0._\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n // Solidity only automatically asserts when dividing by 0\n require(b > 0, errorMessage);\n uint256 c = a / b;\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\n\n return c;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n return mod(a, b, \"SafeMath: modulo by zero\");\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * Reverts with custom message when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n * - The divisor cannot be zero.\n *\n * _Available since v2.4.0._\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b != 0, errorMessage);\n return a % b;\n }\n}\n","sourcePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","ast":{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","exportedSymbols":{"SafeMath":[20395]},"id":20396,"nodeType":"SourceUnit","nodes":[{"id":20210,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:66"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.","fullyImplemented":true,"id":20395,"linearizedBaseContracts":[20395],"name":"SafeMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":20234,"nodeType":"Block","src":"901:109:66","statements":[{"assignments":[20220],"declarations":[{"constant":false,"id":20220,"name":"c","nodeType":"VariableDeclaration","scope":20234,"src":"911:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20219,"name":"uint256","nodeType":"ElementaryTypeName","src":"911:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20224,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20221,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20212,"src":"923:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":20222,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20214,"src":"927:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"923:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"911:17:66"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20226,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20220,"src":"946:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":20227,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20212,"src":"951:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"946:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","id":20229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"954:29:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""},"value":"SafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""}],"id":20225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"938:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"938:46:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20231,"nodeType":"ExpressionStatement","src":"938:46:66"},{"expression":{"argumentTypes":null,"id":20232,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20220,"src":"1002:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20218,"id":20233,"nodeType":"Return","src":"995:8:66"}]},"documentation":"@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.","id":20235,"implemented":true,"kind":"function","modifiers":[],"name":"add","nodeType":"FunctionDefinition","parameters":{"id":20215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20212,"name":"a","nodeType":"VariableDeclaration","scope":20235,"src":"847:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20211,"name":"uint256","nodeType":"ElementaryTypeName","src":"847:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20214,"name":"b","nodeType":"VariableDeclaration","scope":20235,"src":"858:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20213,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"846:22:66"},"returnParameters":{"id":20218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20217,"name":"","nodeType":"VariableDeclaration","scope":20235,"src":"892:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20216,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"891:9:66"},"scope":20395,"src":"834:176:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20250,"nodeType":"Block","src":"1341:67:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20245,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20237,"src":"1362:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":20246,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20239,"src":"1365:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":20247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1368:32:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""},"value":"SafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""}],"id":20244,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[20251,20278],"referencedDeclaration":20278,"src":"1358:3:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1358:43:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20243,"id":20249,"nodeType":"Return","src":"1351:50:66"}]},"documentation":"@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.","id":20251,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":20240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20237,"name":"a","nodeType":"VariableDeclaration","scope":20251,"src":"1287:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20239,"name":"b","nodeType":"VariableDeclaration","scope":20251,"src":"1298:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20238,"name":"uint256","nodeType":"ElementaryTypeName","src":"1298:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1286:22:66"},"returnParameters":{"id":20243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20242,"name":"","nodeType":"VariableDeclaration","scope":20251,"src":"1332:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20241,"name":"uint256","nodeType":"ElementaryTypeName","src":"1332:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1331:9:66"},"scope":20395,"src":"1274:134:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20277,"nodeType":"Block","src":"1827:92:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20263,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20255,"src":"1845:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":20264,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20253,"src":"1850:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1845:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":20266,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20257,"src":"1853:12:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1837:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:29:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20268,"nodeType":"ExpressionStatement","src":"1837:29:66"},{"assignments":[20270],"declarations":[{"constant":false,"id":20270,"name":"c","nodeType":"VariableDeclaration","scope":20277,"src":"1876:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20269,"name":"uint256","nodeType":"ElementaryTypeName","src":"1876:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20274,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20271,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20253,"src":"1888:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":20272,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20255,"src":"1892:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1888:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1876:17:66"},{"expression":{"argumentTypes":null,"id":20275,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20270,"src":"1911:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20261,"id":20276,"nodeType":"Return","src":"1904:8:66"}]},"documentation":"@dev Returns the subtraction of two unsigned integers, reverting with custom message on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.\n * _Available since v2.4.0._","id":20278,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":20258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20253,"name":"a","nodeType":"VariableDeclaration","scope":20278,"src":"1745:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20252,"name":"uint256","nodeType":"ElementaryTypeName","src":"1745:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20255,"name":"b","nodeType":"VariableDeclaration","scope":20278,"src":"1756:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20254,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20257,"name":"errorMessage","nodeType":"VariableDeclaration","scope":20278,"src":"1767:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20256,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1744:50:66"},"returnParameters":{"id":20261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20260,"name":"","nodeType":"VariableDeclaration","scope":20278,"src":"1818:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20259,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1817:9:66"},"scope":20395,"src":"1732:187:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20311,"nodeType":"Block","src":"2226:392:66","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20280,"src":"2458:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":20288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2458:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20293,"nodeType":"IfStatement","src":"2454:45:66","trueBody":{"id":20292,"nodeType":"Block","src":"2466:33:66","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":20290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2487:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":20286,"id":20291,"nodeType":"Return","src":"2480:8:66"}]}},{"assignments":[20295],"declarations":[{"constant":false,"id":20295,"name":"c","nodeType":"VariableDeclaration","scope":20311,"src":"2509:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20299,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20296,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20280,"src":"2521:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":20297,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20282,"src":"2525:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2521:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2509:17:66"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20301,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20295,"src":"2544:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":20302,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20280,"src":"2548:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2544:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":20304,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20282,"src":"2553:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2544:10:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":20306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2556:35:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""},"value":"SafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""}],"id":20300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2536:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2536:56:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20308,"nodeType":"ExpressionStatement","src":"2536:56:66"},{"expression":{"argumentTypes":null,"id":20309,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20295,"src":"2610:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20286,"id":20310,"nodeType":"Return","src":"2603:8:66"}]},"documentation":"@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.","id":20312,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":20283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20280,"name":"a","nodeType":"VariableDeclaration","scope":20312,"src":"2172:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20279,"name":"uint256","nodeType":"ElementaryTypeName","src":"2172:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20282,"name":"b","nodeType":"VariableDeclaration","scope":20312,"src":"2183:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20281,"name":"uint256","nodeType":"ElementaryTypeName","src":"2183:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2171:22:66"},"returnParameters":{"id":20286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20285,"name":"","nodeType":"VariableDeclaration","scope":20312,"src":"2217:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2217:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2216:9:66"},"scope":20395,"src":"2159:459:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20327,"nodeType":"Block","src":"3140:63:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20322,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20314,"src":"3161:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":20323,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20316,"src":"3164:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206469766973696f6e206279207a65726f","id":20324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3167:28:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""},"value":"SafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""}],"id":20321,"name":"div","nodeType":"Identifier","overloadedDeclarations":[20328,20355],"referencedDeclaration":20355,"src":"3157:3:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3157:39:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20320,"id":20326,"nodeType":"Return","src":"3150:46:66"}]},"documentation":"@dev Returns the integer division of two unsigned integers. Reverts on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.","id":20328,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":20317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20314,"name":"a","nodeType":"VariableDeclaration","scope":20328,"src":"3086:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3086:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20316,"name":"b","nodeType":"VariableDeclaration","scope":20328,"src":"3097:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20315,"name":"uint256","nodeType":"ElementaryTypeName","src":"3097:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3085:22:66"},"returnParameters":{"id":20320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20319,"name":"","nodeType":"VariableDeclaration","scope":20328,"src":"3131:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20318,"name":"uint256","nodeType":"ElementaryTypeName","src":"3131:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3130:9:66"},"scope":20395,"src":"3073:130:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20354,"nodeType":"Block","src":"3813:243:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20340,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20332,"src":"3897:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":20341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3901:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3897:5:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":20343,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20334,"src":"3904:12:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3889:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3889:28:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20345,"nodeType":"ExpressionStatement","src":"3889:28:66"},{"assignments":[20347],"declarations":[{"constant":false,"id":20347,"name":"c","nodeType":"VariableDeclaration","scope":20354,"src":"3927:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3927:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20351,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20330,"src":"3939:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":20349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20332,"src":"3943:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3939:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3927:17:66"},{"expression":{"argumentTypes":null,"id":20352,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"4048:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20338,"id":20353,"nodeType":"Return","src":"4041:8:66"}]},"documentation":"@dev Returns the integer division of two unsigned integers. Reverts with custom message on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._","id":20355,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":20335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20330,"name":"a","nodeType":"VariableDeclaration","scope":20355,"src":"3731:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20329,"name":"uint256","nodeType":"ElementaryTypeName","src":"3731:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20332,"name":"b","nodeType":"VariableDeclaration","scope":20355,"src":"3742:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20331,"name":"uint256","nodeType":"ElementaryTypeName","src":"3742:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20334,"name":"errorMessage","nodeType":"VariableDeclaration","scope":20355,"src":"3753:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20333,"name":"string","nodeType":"ElementaryTypeName","src":"3753:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3730:50:66"},"returnParameters":{"id":20338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20337,"name":"","nodeType":"VariableDeclaration","scope":20355,"src":"3804:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3803:9:66"},"scope":20395,"src":"3718:338:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20370,"nodeType":"Block","src":"4567:61:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20365,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20357,"src":"4588:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":20366,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20359,"src":"4591:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206d6f64756c6f206279207a65726f","id":20367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4594:26:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""},"value":"SafeMath: modulo by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""}],"id":20364,"name":"mod","nodeType":"Identifier","overloadedDeclarations":[20371,20394],"referencedDeclaration":20394,"src":"4584:3:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4584:37:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20363,"id":20369,"nodeType":"Return","src":"4577:44:66"}]},"documentation":"@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.","id":20371,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nodeType":"FunctionDefinition","parameters":{"id":20360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20357,"name":"a","nodeType":"VariableDeclaration","scope":20371,"src":"4513:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20356,"name":"uint256","nodeType":"ElementaryTypeName","src":"4513:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20359,"name":"b","nodeType":"VariableDeclaration","scope":20371,"src":"4524:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20358,"name":"uint256","nodeType":"ElementaryTypeName","src":"4524:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4512:22:66"},"returnParameters":{"id":20363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20362,"name":"","nodeType":"VariableDeclaration","scope":20371,"src":"4558:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20361,"name":"uint256","nodeType":"ElementaryTypeName","src":"4558:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4557:9:66"},"scope":20395,"src":"4500:128:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20393,"nodeType":"Block","src":"5227:68:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20383,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20375,"src":"5245:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":20384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5250:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5245:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":20386,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20377,"src":"5253:12:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5237:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5237:29:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20388,"nodeType":"ExpressionStatement","src":"5237:29:66"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20389,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20373,"src":"5283:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"id":20390,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20375,"src":"5287:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5283:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20381,"id":20392,"nodeType":"Return","src":"5276:12:66"}]},"documentation":"@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._","id":20394,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nodeType":"FunctionDefinition","parameters":{"id":20378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20373,"name":"a","nodeType":"VariableDeclaration","scope":20394,"src":"5145:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20372,"name":"uint256","nodeType":"ElementaryTypeName","src":"5145:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20375,"name":"b","nodeType":"VariableDeclaration","scope":20394,"src":"5156:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20374,"name":"uint256","nodeType":"ElementaryTypeName","src":"5156:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20377,"name":"errorMessage","nodeType":"VariableDeclaration","scope":20394,"src":"5167:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20376,"name":"string","nodeType":"ElementaryTypeName","src":"5167:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5144:50:66"},"returnParameters":{"id":20381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20380,"name":"","nodeType":"VariableDeclaration","scope":20394,"src":"5218:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20379,"name":"uint256","nodeType":"ElementaryTypeName","src":"5218:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5217:9:66"},"scope":20395,"src":"5132:163:66","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":20396,"src":"589:4708:66"}],"src":"0:5298:66"},"legacyAST":{"absolutePath":"openzeppelin-solidity/contracts/math/SafeMath.sol","exportedSymbols":{"SafeMath":[20395]},"id":20396,"nodeType":"SourceUnit","nodes":[{"id":20210,"literals":["solidity","^","0.5",".0"],"nodeType":"PragmaDirective","src":"0:23:66"},{"baseContracts":[],"contractDependencies":[],"contractKind":"library","documentation":"@dev Wrappers over Solidity's arithmetic operations with added overflow\nchecks.\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\nin bugs, because programmers usually assume that an overflow raises an\nerror, which is the standard behavior in high level programming languages.\n`SafeMath` restores this intuition by reverting the transaction when an\noperation overflows.\n * Using this library instead of the unchecked operations eliminates an entire\nclass of bugs, so it's recommended to use it always.","fullyImplemented":true,"id":20395,"linearizedBaseContracts":[20395],"name":"SafeMath","nodeType":"ContractDefinition","nodes":[{"body":{"id":20234,"nodeType":"Block","src":"901:109:66","statements":[{"assignments":[20220],"declarations":[{"constant":false,"id":20220,"name":"c","nodeType":"VariableDeclaration","scope":20234,"src":"911:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20219,"name":"uint256","nodeType":"ElementaryTypeName","src":"911:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20224,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20221,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20212,"src":"923:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"argumentTypes":null,"id":20222,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20214,"src":"927:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"923:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"911:17:66"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20226,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20220,"src":"946:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":20227,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20212,"src":"951:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"946:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206164646974696f6e206f766572666c6f77","id":20229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"954:29:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""},"value":"SafeMath: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a","typeString":"literal_string \"SafeMath: addition overflow\""}],"id":20225,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"938:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"938:46:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20231,"nodeType":"ExpressionStatement","src":"938:46:66"},{"expression":{"argumentTypes":null,"id":20232,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20220,"src":"1002:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20218,"id":20233,"nodeType":"Return","src":"995:8:66"}]},"documentation":"@dev Returns the addition of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `+` operator.\n * Requirements:\n- Addition cannot overflow.","id":20235,"implemented":true,"kind":"function","modifiers":[],"name":"add","nodeType":"FunctionDefinition","parameters":{"id":20215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20212,"name":"a","nodeType":"VariableDeclaration","scope":20235,"src":"847:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20211,"name":"uint256","nodeType":"ElementaryTypeName","src":"847:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20214,"name":"b","nodeType":"VariableDeclaration","scope":20235,"src":"858:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20213,"name":"uint256","nodeType":"ElementaryTypeName","src":"858:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"846:22:66"},"returnParameters":{"id":20218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20217,"name":"","nodeType":"VariableDeclaration","scope":20235,"src":"892:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20216,"name":"uint256","nodeType":"ElementaryTypeName","src":"892:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"891:9:66"},"scope":20395,"src":"834:176:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20250,"nodeType":"Block","src":"1341:67:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20245,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20237,"src":"1362:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":20246,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20239,"src":"1365:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"536166654d6174683a207375627472616374696f6e206f766572666c6f77","id":20247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1368:32:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""},"value":"SafeMath: subtraction overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862","typeString":"literal_string \"SafeMath: subtraction overflow\""}],"id":20244,"name":"sub","nodeType":"Identifier","overloadedDeclarations":[20251,20278],"referencedDeclaration":20278,"src":"1358:3:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1358:43:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20243,"id":20249,"nodeType":"Return","src":"1351:50:66"}]},"documentation":"@dev Returns the subtraction of two unsigned integers, reverting on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.","id":20251,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":20240,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20237,"name":"a","nodeType":"VariableDeclaration","scope":20251,"src":"1287:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20236,"name":"uint256","nodeType":"ElementaryTypeName","src":"1287:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20239,"name":"b","nodeType":"VariableDeclaration","scope":20251,"src":"1298:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20238,"name":"uint256","nodeType":"ElementaryTypeName","src":"1298:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1286:22:66"},"returnParameters":{"id":20243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20242,"name":"","nodeType":"VariableDeclaration","scope":20251,"src":"1332:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20241,"name":"uint256","nodeType":"ElementaryTypeName","src":"1332:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1331:9:66"},"scope":20395,"src":"1274:134:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20277,"nodeType":"Block","src":"1827:92:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20263,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20255,"src":"1845:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":20264,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20253,"src":"1850:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1845:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":20266,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20257,"src":"1853:12:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20262,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1837:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1837:29:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20268,"nodeType":"ExpressionStatement","src":"1837:29:66"},{"assignments":[20270],"declarations":[{"constant":false,"id":20270,"name":"c","nodeType":"VariableDeclaration","scope":20277,"src":"1876:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20269,"name":"uint256","nodeType":"ElementaryTypeName","src":"1876:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20274,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20271,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20253,"src":"1888:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"argumentTypes":null,"id":20272,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20255,"src":"1892:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1888:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"1876:17:66"},{"expression":{"argumentTypes":null,"id":20275,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20270,"src":"1911:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20261,"id":20276,"nodeType":"Return","src":"1904:8:66"}]},"documentation":"@dev Returns the subtraction of two unsigned integers, reverting with custom message on\noverflow (when the result is negative).\n * Counterpart to Solidity's `-` operator.\n * Requirements:\n- Subtraction cannot overflow.\n * _Available since v2.4.0._","id":20278,"implemented":true,"kind":"function","modifiers":[],"name":"sub","nodeType":"FunctionDefinition","parameters":{"id":20258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20253,"name":"a","nodeType":"VariableDeclaration","scope":20278,"src":"1745:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20252,"name":"uint256","nodeType":"ElementaryTypeName","src":"1745:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20255,"name":"b","nodeType":"VariableDeclaration","scope":20278,"src":"1756:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20254,"name":"uint256","nodeType":"ElementaryTypeName","src":"1756:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20257,"name":"errorMessage","nodeType":"VariableDeclaration","scope":20278,"src":"1767:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20256,"name":"string","nodeType":"ElementaryTypeName","src":"1767:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"1744:50:66"},"returnParameters":{"id":20261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20260,"name":"","nodeType":"VariableDeclaration","scope":20278,"src":"1818:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20259,"name":"uint256","nodeType":"ElementaryTypeName","src":"1818:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1817:9:66"},"scope":20395,"src":"1732:187:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20311,"nodeType":"Block","src":"2226:392:66","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20280,"src":"2458:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":20288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2463:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2458:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":20293,"nodeType":"IfStatement","src":"2454:45:66","trueBody":{"id":20292,"nodeType":"Block","src":"2466:33:66","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":20290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2487:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":20286,"id":20291,"nodeType":"Return","src":"2480:8:66"}]}},{"assignments":[20295],"declarations":[{"constant":false,"id":20295,"name":"c","nodeType":"VariableDeclaration","scope":20311,"src":"2509:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20294,"name":"uint256","nodeType":"ElementaryTypeName","src":"2509:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20299,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20296,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20280,"src":"2521:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"argumentTypes":null,"id":20297,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20282,"src":"2525:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2521:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2509:17:66"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20303,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20301,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20295,"src":"2544:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":20302,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20280,"src":"2548:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2544:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"id":20304,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20282,"src":"2553:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2544:10:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77","id":20306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2556:35:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""},"value":"SafeMath: multiplication overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3","typeString":"literal_string \"SafeMath: multiplication overflow\""}],"id":20300,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2536:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2536:56:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20308,"nodeType":"ExpressionStatement","src":"2536:56:66"},{"expression":{"argumentTypes":null,"id":20309,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20295,"src":"2610:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20286,"id":20310,"nodeType":"Return","src":"2603:8:66"}]},"documentation":"@dev Returns the multiplication of two unsigned integers, reverting on\noverflow.\n * Counterpart to Solidity's `*` operator.\n * Requirements:\n- Multiplication cannot overflow.","id":20312,"implemented":true,"kind":"function","modifiers":[],"name":"mul","nodeType":"FunctionDefinition","parameters":{"id":20283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20280,"name":"a","nodeType":"VariableDeclaration","scope":20312,"src":"2172:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20279,"name":"uint256","nodeType":"ElementaryTypeName","src":"2172:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20282,"name":"b","nodeType":"VariableDeclaration","scope":20312,"src":"2183:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20281,"name":"uint256","nodeType":"ElementaryTypeName","src":"2183:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2171:22:66"},"returnParameters":{"id":20286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20285,"name":"","nodeType":"VariableDeclaration","scope":20312,"src":"2217:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20284,"name":"uint256","nodeType":"ElementaryTypeName","src":"2217:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2216:9:66"},"scope":20395,"src":"2159:459:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20327,"nodeType":"Block","src":"3140:63:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20322,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20314,"src":"3161:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":20323,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20316,"src":"3164:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206469766973696f6e206279207a65726f","id":20324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3167:28:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""},"value":"SafeMath: division by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f","typeString":"literal_string \"SafeMath: division by zero\""}],"id":20321,"name":"div","nodeType":"Identifier","overloadedDeclarations":[20328,20355],"referencedDeclaration":20355,"src":"3157:3:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20325,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3157:39:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20320,"id":20326,"nodeType":"Return","src":"3150:46:66"}]},"documentation":"@dev Returns the integer division of two unsigned integers. Reverts on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.","id":20328,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":20317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20314,"name":"a","nodeType":"VariableDeclaration","scope":20328,"src":"3086:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20313,"name":"uint256","nodeType":"ElementaryTypeName","src":"3086:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20316,"name":"b","nodeType":"VariableDeclaration","scope":20328,"src":"3097:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20315,"name":"uint256","nodeType":"ElementaryTypeName","src":"3097:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3085:22:66"},"returnParameters":{"id":20320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20319,"name":"","nodeType":"VariableDeclaration","scope":20328,"src":"3131:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20318,"name":"uint256","nodeType":"ElementaryTypeName","src":"3131:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3130:9:66"},"scope":20395,"src":"3073:130:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20354,"nodeType":"Block","src":"3813:243:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20340,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20332,"src":"3897:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"hexValue":"30","id":20341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3901:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3897:5:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":20343,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20334,"src":"3904:12:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20339,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"3889:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3889:28:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20345,"nodeType":"ExpressionStatement","src":"3889:28:66"},{"assignments":[20347],"declarations":[{"constant":false,"id":20347,"name":"c","nodeType":"VariableDeclaration","scope":20354,"src":"3927:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20346,"name":"uint256","nodeType":"ElementaryTypeName","src":"3927:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":20351,"initialValue":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20348,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20330,"src":"3939:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"argumentTypes":null,"id":20349,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20332,"src":"3943:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3939:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3927:17:66"},{"expression":{"argumentTypes":null,"id":20352,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20347,"src":"4048:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20338,"id":20353,"nodeType":"Return","src":"4041:8:66"}]},"documentation":"@dev Returns the integer division of two unsigned integers. Reverts with custom message on\ndivision by zero. The result is rounded towards zero.\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n`revert` opcode (which leaves remaining gas untouched) while Solidity\nuses an invalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._","id":20355,"implemented":true,"kind":"function","modifiers":[],"name":"div","nodeType":"FunctionDefinition","parameters":{"id":20335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20330,"name":"a","nodeType":"VariableDeclaration","scope":20355,"src":"3731:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20329,"name":"uint256","nodeType":"ElementaryTypeName","src":"3731:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20332,"name":"b","nodeType":"VariableDeclaration","scope":20355,"src":"3742:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20331,"name":"uint256","nodeType":"ElementaryTypeName","src":"3742:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20334,"name":"errorMessage","nodeType":"VariableDeclaration","scope":20355,"src":"3753:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20333,"name":"string","nodeType":"ElementaryTypeName","src":"3753:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"3730:50:66"},"returnParameters":{"id":20338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20337,"name":"","nodeType":"VariableDeclaration","scope":20355,"src":"3804:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20336,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"3803:9:66"},"scope":20395,"src":"3718:338:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20370,"nodeType":"Block","src":"4567:61:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":20365,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20357,"src":"4588:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":20366,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20359,"src":"4591:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"536166654d6174683a206d6f64756c6f206279207a65726f","id":20367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4594:26:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""},"value":"SafeMath: modulo by zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832","typeString":"literal_string \"SafeMath: modulo by zero\""}],"id":20364,"name":"mod","nodeType":"Identifier","overloadedDeclarations":[20371,20394],"referencedDeclaration":20394,"src":"4584:3:66","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,uint256,string memory) pure returns (uint256)"}},"id":20368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4584:37:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20363,"id":20369,"nodeType":"Return","src":"4577:44:66"}]},"documentation":"@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.","id":20371,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nodeType":"FunctionDefinition","parameters":{"id":20360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20357,"name":"a","nodeType":"VariableDeclaration","scope":20371,"src":"4513:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20356,"name":"uint256","nodeType":"ElementaryTypeName","src":"4513:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20359,"name":"b","nodeType":"VariableDeclaration","scope":20371,"src":"4524:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20358,"name":"uint256","nodeType":"ElementaryTypeName","src":"4524:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4512:22:66"},"returnParameters":{"id":20363,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20362,"name":"","nodeType":"VariableDeclaration","scope":20371,"src":"4558:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20361,"name":"uint256","nodeType":"ElementaryTypeName","src":"4558:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"4557:9:66"},"scope":20395,"src":"4500:128:66","stateMutability":"pure","superFunction":null,"visibility":"internal"},{"body":{"id":20393,"nodeType":"Block","src":"5227:68:66","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20383,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20375,"src":"5245:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":20384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5250:1:66","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5245:6:66","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":20386,"name":"errorMessage","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20377,"src":"5253:12:66","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":20382,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"5237:7:66","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":20387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5237:29:66","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":20388,"nodeType":"ExpressionStatement","src":"5237:29:66"},{"expression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":20391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":20389,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20373,"src":"5283:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"%","rightExpression":{"argumentTypes":null,"id":20390,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20375,"src":"5287:1:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5283:5:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":20381,"id":20392,"nodeType":"Return","src":"5276:12:66"}]},"documentation":"@dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\nReverts with custom message when dividing by zero.\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\nopcode (which leaves remaining gas untouched) while Solidity uses an\ninvalid opcode to revert (consuming all remaining gas).\n * Requirements:\n- The divisor cannot be zero.\n * _Available since v2.4.0._","id":20394,"implemented":true,"kind":"function","modifiers":[],"name":"mod","nodeType":"FunctionDefinition","parameters":{"id":20378,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20373,"name":"a","nodeType":"VariableDeclaration","scope":20394,"src":"5145:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20372,"name":"uint256","nodeType":"ElementaryTypeName","src":"5145:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20375,"name":"b","nodeType":"VariableDeclaration","scope":20394,"src":"5156:9:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20374,"name":"uint256","nodeType":"ElementaryTypeName","src":"5156:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20377,"name":"errorMessage","nodeType":"VariableDeclaration","scope":20394,"src":"5167:26:66","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":20376,"name":"string","nodeType":"ElementaryTypeName","src":"5167:6:66","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5144:50:66"},"returnParameters":{"id":20381,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20380,"name":"","nodeType":"VariableDeclaration","scope":20394,"src":"5218:7:66","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20379,"name":"uint256","nodeType":"ElementaryTypeName","src":"5218:7:66","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"5217:9:66"},"scope":20395,"src":"5132:163:66","stateMutability":"pure","superFunction":null,"visibility":"internal"}],"scope":20396,"src":"589:4708:66"}],"src":"0:5298:66"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.268Z","devdoc":{"details":"Wrappers over Solidity's arithmetic operations with added overflow checks. * Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. * Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.","methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SchemeRegistrar.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SchemeRegistrar.json new file mode 100644 index 00000000..e6c27434 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SchemeRegistrar.json @@ -0,0 +1 @@ +{"contractName":"SchemeRegistrar","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"address","name":"_scheme","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_parametersHash","type":"bytes32"},{"indexed":false,"internalType":"bytes4","name":"_permissions","type":"bytes4"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"NewSchemeProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"ProposalDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"}],"name":"ProposalExecuted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"address","name":"_scheme","type":"address"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"RemoveSchemeProposal","type":"event"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationsProposals","outputs":[{"internalType":"address","name":"scheme","type":"address"},{"internalType":"bool","name":"addScheme","type":"bool"},{"internalType":"bytes32","name":"parametersHash","type":"bytes32"},{"internalType":"bytes4","name":"permissions","type":"bytes4"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"bytes32","name":"voteRegisterParams","type":"bytes32"},{"internalType":"bytes32","name":"voteRemoveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"intVote","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_param","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_voteRegisterParams","type":"bytes32"},{"internalType":"bytes32","name":"_voteRemoveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"bytes32","name":"_parametersHash","type":"bytes32"},{"internalType":"bytes4","name":"_permissions","type":"bytes4"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeScheme","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeToRemoveScheme","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_voteRegisterParams","type":"bytes32"},{"internalType":"bytes32","name":"_voteRemoveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_parametersHash\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"_permissions\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"NewSchemeProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"ProposalDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"RemoveSchemeProposal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteRegisterParams\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_voteRemoveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationsProposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"scheme\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"addScheme\",\"type\":\"bool\"},{\"internalType\":\"bytes32\",\"name\":\"parametersHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"permissions\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"voteRegisterParams\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"voteRemoveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"intVote\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_parametersHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes4\",\"name\":\"_permissions\",\"type\":\"bytes4\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeScheme\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeToRemoveScheme\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteRegisterParams\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"_voteRemoveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The SchemeRegistrar is used for registering and unregistering schemes at organizations\",\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_param\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"proposeScheme(address,address,bytes32,bytes4,string)\":{\"details\":\"create a proposal to register a schemeNB: not only proposes the vote, but also votes for it\",\"params\":{\"_avatar\":\"the address of the organization the scheme will be registered for\",\"_descriptionHash\":\"proposal's description hash\",\"_parametersHash\":\"a hash of the configuration of the _scheme\",\"_permissions\":\"the permission of the scheme to be registered\",\"_scheme\":\"the address of the scheme to be registered\"},\"return\":\"a proposal Id\"},\"proposeToRemoveScheme(address,address,string)\":{\"details\":\"propose to remove a scheme for a controller\",\"params\":{\"_avatar\":\"the address of the controller from which we want to remove a scheme\",\"_descriptionHash\":\"proposal description hash NB: not only registers the proposal, but also votes for it\",\"_scheme\":\"the address of the scheme we want to remove\"}},\"setParameters(bytes32,bytes32,address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\"}},\"title\":\"A registrar for Schemes for organizations\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/SchemeRegistrar.sol\":\"SchemeRegistrar\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/SchemeRegistrar.sol\":{\"keccak256\":\"0x7a0678d73d1cfa15a1818ee35ef8cccadd1ff61ade8f95a2df55f3aa811f53c3\",\"urls\":[\"bzz-raw://86b21a51aef9382f11f67037d52eed3874da6524532a80c2c9170079eeb9c81f\",\"dweb:/ipfs/QmU1pi44wpZiF72HPVTaAcF4rotEa9g6HZ9v3wt3warkDZ\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"429:6876:42:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;429:6876:42;;;;;;;","deployedSourceMap":"429:6876:42:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;429:6876:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1884:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1884:46:42;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;;;;1884:46:42;;;;;;;;;;;;;;1559:80;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1559:80:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1559:80:42;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1559:80:42;;;;;;;;;;;;;;3505:489;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3505:489:42;;;;;;;;;;;-1:-1:-1;;;;;3505:489:42;;:::i;:::-;;;;;;;;;;;;;;;;4511:1306;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;4511:1306:42;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;4511:1306:42;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4511:1306:42;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4511:1306:42;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4511:1306:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4511:1306:42;;-1:-1:-1;4511:1306:42;;-1:-1:-1;;;;;4511:1306:42:i;598:73:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;1973:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;7029:274:42:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7029:274:42;;;;;;;;;;;-1:-1:-1;;;;;7029:274:42;;:::i;2666:345:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2196:1206:42:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2196:1206:42;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2325:335:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;678:401::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;6168:855:42:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;6168:855:42;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;6168:855:42;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6168:855:42;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6168:855:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6168:855:42;;-1:-1:-1;6168:855:42;;-1:-1:-1;;;;;6168:855:42:i;1085:401:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;1884:46:42:-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1884:46:42;;:::o;1559:80::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1559:80:42;;;-1:-1:-1;;;1559:80:42;;;;;;;;;:::o;3505:489::-;3656:7;3679:18;3700:67;3718:19;3739:17;3758:8;3700:17;:67::i;:::-;3777:22;;;;:10;:22;;;;;;;;:63;;;3850:39;;;:59;;;3919:30;:41;;-1:-1:-1;;;;;3919:41:42;;-1:-1:-1;;;;;;3919:41:42;;;;;;3679:88;-1:-1:-1;;3505:489:42;;;;;:::o;4511:1306::-;4714:7;-1:-1:-1;;;;;4764:21:42;;4756:55;;;;;-1:-1:-1;;;4756:55:42;;;;;;;;;;;;-1:-1:-1;;;4756:55:42;;;;;;;;;;;;;;;4821:34;;:::i;:::-;4858:10;:48;4869:36;4897:7;4869:27;:36::i;:::-;4858:48;;;;;;;;;;;;;;-1:-1:-1;4858:48:42;;;4821:85;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4821:85:42;;;;;;;;;4938:160;;-1:-1:-1;;;4938:160:42;;;;;;;;;;;;;;;;5048:10;4938:160;;;;;;;;;;;;4821:85;;-1:-1:-1;;;4938:32:42;;:160;;;;;;;;;;-1:-1:-1;4821:85:42;4938:160;;;5:2:-1;;;;30:1;27;20:12;5:2;4938:160:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4938:160:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4938:160:42;;-1:-1:-1;5109:30:42;;:::i;:::-;5142:168;;;;;;;;5179:7;-1:-1:-1;;;;;5142:168:42;;;;;5256:4;5142:168;;;;;;5216:15;5142:168;;;;5287:12;-1:-1:-1;;;;;5142:168:42;;;;;5109:201;;5418:16;:24;;;-1:-1:-1;;;;;5325:222:42;5386:10;5364:7;-1:-1:-1;;;;;5325:222:42;;5457:7;5466:15;5495:12;5521:16;5325:222;;;;-1:-1:-1;;;;;5325:222:42;-1:-1:-1;;;;;5325:222:42;;;;;;;;;;;-1:-1:-1;;;;;5325:222:42;;-1:-1:-1;;;;;5325:222:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5325:222:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5557:40:42;;;;;;;:22;:40;;;;;;;;:52;;;;;;;;:63;;;;;;;;;;-1:-1:-1;;;5557:63:42;-1:-1:-1;;;;5557:63:42;;;-1:-1:-1;;;;;;5557:63:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;5557:63:42;;;;;;;;;5693:90;;;;;;;5732:12;5693:90;;;;;;;;5652:24;;;;5630:48;;;;;;;;;;:60;;;;;;;;;:153;;;;;;;;;;;;;;;;;;;;;;;;;5598:10;-1:-1:-1;4511:1306:42;;;;;;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;1973:346::-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;-1:-1:-1;;1973:346:50;;;;;:::o;7029:274:42:-;7229:66;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7229:66:42;;;;;;;;;;26:21:-1;;;22:32;;6:49;;7229:66:42;;;;;;7219:77;;;;;;7029:274::o;2666:345:50:-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2196:1206:42;443:10:50;2305:4:42;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;2284:11:42;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;2351:10:42;2321:13;2337:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2337:45:42;2392:30;;:::i;:::-;-1:-1:-1;;;;;;2425:39:42;;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2392:85;;;;;;;;;;;;;;;-1:-1:-1;;;2392:85:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2392:85:42;;;;;;2487:38;;;;;;-1:-1:-1;;;;;2542:39:42;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2535:59;;-1:-1:-1;;;;;;2535:59:42;;;;;;;;;;;;;;;-1:-1:-1;;2535:59:42;;;2609:45;2582:11;;2542:39;2609:45;;;2668:6;2678:1;2668:11;2664:642;;;2747:21;2782:6;-1:-1:-1;;;;;2782:12:42;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2782:14:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2782:14:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2782:14:42;;2843:18;;;2782:14;;-1:-1:-1;2839:286:42;;;2940:15;;2981:23;;;;;3030:20;;;;2889:203;;-1:-1:-1;;;2889:203:42;;-1:-1:-1;;;;;2889:203:42;;;;;;;;;;;;;;-1:-1:-1;;;;;;2889:203:42;;;;;;;;;;;;;;:25;;;;;;:203;;;;;;;;;;;;;;;2940:15;2889:25;:203;;;5:2:-1;;;;30:1;27;20:12;5:2;2889:203:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2889:203:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2889:203:42;2881:229;;;;;;3173:8;:18;;;3168:128;;3247:15;;3219:61;;;-1:-1:-1;;;3219:61:42;;-1:-1:-1;;;;;3219:61:42;;;;;;;;;;;;;;;;:27;;;;;;:61;;;;;;;;;;;;;;;3247:15;3219:27;:61;;;5:2:-1;;;;30:1;27;20:12;5:2;3219:61:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3219:61:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3219:61:42;3211:70;;;;;;2664:642;;3320:54;;;;;;;;3354:11;;-1:-1:-1;;;;;3320:54:42;;;;;;;;;;;;-1:-1:-1;3391:4:42;;2196:1206;-1:-1:-1;;;;;2196:1206:42:o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;678:401::-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;6168:855:42:-;6287:7;-1:-1:-1;;;;;6318:21:42;;6310:55;;;;;-1:-1:-1;;;6310:55:42;;;;;;;;;;;;-1:-1:-1;;;6310:55:42;;;;;;;;;;;;;;;6375:18;6396:36;6424:7;6396:27;:36::i;:::-;6375:57;;6442:24;;:::i;:::-;-1:-1:-1;6469:22:42;;;;:10;:22;;;;;;;;6442:49;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6442:49:42;;;;;;;;;6574:73;;-1:-1:-1;;;6574:73:42;;;;;;;;;;;;;;;;6618:10;6574:73;;;;;;;;;;;;6442:49;;;;6469:22;;6442:49;;6574:15;;:73;;;;;6469:22;6574:73;;;;;;6469:22;6442:49;6574:73;;;5:2:-1;;;;30:1;27;20:12;5:2;6574:73:42;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6574:73:42;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6574:73:42;-1:-1:-1;;;;;6657:40:42;;;;;;;:22;6574:73;6657:40;;;;;;;:52;;;;;;;;:69;;-1:-1:-1;;;;;;6657:69:42;;;;;;;;;;6741:95;;;;;;;;;;;;;;;;;;;;;;6574:73;;-1:-1:-1;6741:95:42;;;;6574:73;;6741:95;;6657:69;;6741:95;;;;;;;;;;;;;;;;;;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;6741:95:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6899:90;;;;;;;;6938:12;6899:90;;-1:-1:-1;;;;;6899:90:42;;;;;;;;;;6868:14;;;;6846:38;;-1:-1:-1;6846:38:42;;;;;;;;;:50;;;;;;;;;;:143;;;;;;;;;;;-1:-1:-1;;;;;;6846:143:42;;;;;;;;;;;;:50;6168:855;-1:-1:-1;;;;;6168:855:42:o;1085:401:50:-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;290:322:43;365:7;403;-1:-1:-1;;;;;403:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;403:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;403:15:43;392:79;;;-1:-1:-1;;;392:79:43;;447:4;392:79;;;;-1:-1:-1;;;;;392:79:43;;;;;;;;;:46;;;;;;;:79;;;;;403:15;;392:79;;;;;;;:46;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;392:79:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;392:79:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;392:79:43;384:124;;;;;-1:-1:-1;;;384:124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;-1:-1:-1;;;;;536:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;536:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;536:15:43;525:80;;;-1:-1:-1;;;525:80:43;;581:4;525:80;;;;-1:-1:-1;;;;;525:80:43;;;;;;;;;:47;;;;;;;:80;;;;;536:15;;525:80;;;;;;;:47;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;525:80:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;525:80:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;525:80:43;;290:322;-1:-1:-1;;290:322:43:o;429:6876:42:-;;;;;;;;;-1:-1:-1;429:6876:42;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;429:6876:42;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;-1:-1:-1;429:6876:42;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"./UniversalScheme.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\n/**\n * @title A registrar for Schemes for organizations\n * @dev The SchemeRegistrar is used for registering and unregistering schemes at organizations\n */\n\ncontract SchemeRegistrar is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface {\n event NewSchemeProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n address _scheme,\n bytes32 _parametersHash,\n bytes4 _permissions,\n string _descriptionHash\n );\n\n event RemoveSchemeProposal(address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n address _scheme,\n string _descriptionHash\n );\n\n event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param);\n event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n // a SchemeProposal is a proposal to add or remove a scheme to/from the an organization\n struct SchemeProposal {\n address scheme; //\n bool addScheme; // true: add a scheme, false: remove a scheme.\n bytes32 parametersHash;\n bytes4 permissions;\n }\n\n // A mapping from the organization (Avatar) address to the saved data of the organization:\n mapping(address=>mapping(bytes32=>SchemeProposal)) public organizationsProposals;\n\n // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n struct Parameters {\n bytes32 voteRegisterParams;\n bytes32 voteRemoveParams;\n IntVoteInterface intVote;\n }\n\n mapping(bytes32=>Parameters) public parameters;\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _param a parameter of the voting result, 1 yes and 2 is no.\n */\n function executeProposal(bytes32 _proposalId, int256 _param) external onlyVotingMachine(_proposalId) returns(bool) {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n SchemeProposal memory proposal = organizationsProposals[address(avatar)][_proposalId];\n require(proposal.scheme != address(0));\n delete organizationsProposals[address(avatar)][_proposalId];\n emit ProposalDeleted(address(avatar), _proposalId);\n if (_param == 1) {\n\n // Define controller and get the params:\n Controller controller = Controller(avatar.owner());\n\n // Add a scheme:\n if (proposal.addScheme) {\n require(controller.registerScheme(\n proposal.scheme,\n proposal.parametersHash,\n proposal.permissions,\n address(avatar))\n );\n }\n // Remove a scheme:\n if (!proposal.addScheme) {\n require(controller.unregisterScheme(proposal.scheme, address(avatar)));\n }\n }\n emit ProposalExecuted(address(avatar), _proposalId, _param);\n return true;\n }\n\n /**\n * @dev hash the parameters, save them if necessary, and return the hash value\n */\n function setParameters(\n bytes32 _voteRegisterParams,\n bytes32 _voteRemoveParams,\n IntVoteInterface _intVote\n ) public returns(bytes32)\n {\n bytes32 paramsHash = getParametersHash(_voteRegisterParams, _voteRemoveParams, _intVote);\n parameters[paramsHash].voteRegisterParams = _voteRegisterParams;\n parameters[paramsHash].voteRemoveParams = _voteRemoveParams;\n parameters[paramsHash].intVote = _intVote;\n return paramsHash;\n }\n\n /**\n * @dev create a proposal to register a scheme\n * @param _avatar the address of the organization the scheme will be registered for\n * @param _scheme the address of the scheme to be registered\n * @param _parametersHash a hash of the configuration of the _scheme\n * @param _permissions the permission of the scheme to be registered\n * @param _descriptionHash proposal's description hash\n * @return a proposal Id\n * @dev NB: not only proposes the vote, but also votes for it\n */\n function proposeScheme(\n Avatar _avatar,\n address _scheme,\n bytes32 _parametersHash,\n bytes4 _permissions,\n string memory _descriptionHash\n )\n public\n returns(bytes32)\n {\n // propose\n require(_scheme != address(0), \"scheme cannot be zero\");\n Parameters memory controllerParams = parameters[getParametersFromController(_avatar)];\n\n bytes32 proposalId = controllerParams.intVote.propose(\n 2,\n controllerParams.voteRegisterParams,\n msg.sender,\n address(_avatar)\n );\n\n SchemeProposal memory proposal = SchemeProposal({\n scheme: _scheme,\n parametersHash: _parametersHash,\n addScheme: true,\n permissions: _permissions\n });\n emit NewSchemeProposal(\n address(_avatar),\n proposalId,\n address(controllerParams.intVote),\n _scheme, _parametersHash,\n _permissions,\n _descriptionHash\n );\n organizationsProposals[address(_avatar)][proposalId] = proposal;\n proposalsInfo[address(controllerParams.intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return proposalId;\n }\n\n /**\n * @dev propose to remove a scheme for a controller\n * @param _avatar the address of the controller from which we want to remove a scheme\n * @param _scheme the address of the scheme we want to remove\n * @param _descriptionHash proposal description hash\n * NB: not only registers the proposal, but also votes for it\n */\n function proposeToRemoveScheme(Avatar _avatar, address _scheme, string memory _descriptionHash)\n public\n returns(bytes32)\n {\n require(_scheme != address(0), \"scheme cannot be zero\");\n bytes32 paramsHash = getParametersFromController(_avatar);\n Parameters memory params = parameters[paramsHash];\n\n IntVoteInterface intVote = params.intVote;\n bytes32 proposalId = intVote.propose(2, params.voteRemoveParams, msg.sender, address(_avatar));\n organizationsProposals[address(_avatar)][proposalId].scheme = _scheme;\n emit RemoveSchemeProposal(address(_avatar), proposalId, address(intVote), _scheme, _descriptionHash);\n proposalsInfo[address(params.intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return proposalId;\n }\n\n function getParametersHash(\n bytes32 _voteRegisterParams,\n bytes32 _voteRemoveParams,\n IntVoteInterface _intVote\n ) public pure returns(bytes32)\n {\n return keccak256(abi.encodePacked(_voteRegisterParams, _voteRemoveParams, _intVote));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/SchemeRegistrar.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/SchemeRegistrar.sol","exportedSymbols":{"SchemeRegistrar":[12587]},"id":12588,"nodeType":"SourceUnit","nodes":[{"id":12137,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:42"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":12138,"nodeType":"ImportDirective","scope":12588,"sourceUnit":19817,"src":"25:71:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":12139,"nodeType":"ImportDirective","scope":12588,"sourceUnit":20032,"src":"97:86:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":12140,"nodeType":"ImportDirective","scope":12588,"sourceUnit":12635,"src":"184:31:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":12141,"nodeType":"ImportDirective","scope":12588,"sourceUnit":14651,"src":"216:54:42","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":12142,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"457:15:42","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":12143,"nodeType":"InheritanceSpecifier","src":"457:15:42"},{"arguments":null,"baseName":{"contractScope":null,"id":12144,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"474:22:42","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":12145,"nodeType":"InheritanceSpecifier","src":"474:22:42"},{"arguments":null,"baseName":{"contractScope":null,"id":12146,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"498:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":12147,"nodeType":"InheritanceSpecifier","src":"498:24:42"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A registrar for Schemes for organizations\n@dev The SchemeRegistrar is used for registering and unregistering schemes at organizations","fullyImplemented":true,"id":12587,"linearizedBaseContracts":[12587,19828,14650,20031,12634,12645],"name":"SchemeRegistrar","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":12163,"name":"NewSchemeProposal","nodeType":"EventDefinition","parameters":{"id":12162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12163,"src":"562:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12148,"name":"address","nodeType":"ElementaryTypeName","src":"562:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12151,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12163,"src":"595:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12153,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12163,"src":"632:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12152,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12155,"indexed":false,"name":"_scheme","nodeType":"VariableDeclaration","scope":12163,"src":"675:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12154,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12157,"indexed":false,"name":"_parametersHash","nodeType":"VariableDeclaration","scope":12163,"src":"700:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"700:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12159,"indexed":false,"name":"_permissions","nodeType":"VariableDeclaration","scope":12163,"src":"733:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12158,"name":"bytes4","nodeType":"ElementaryTypeName","src":"733:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":12161,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12163,"src":"762:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12160,"name":"string","nodeType":"ElementaryTypeName","src":"762:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"552:239:42"},"src":"529:263:42"},{"anonymous":false,"documentation":null,"id":12175,"name":"RemoveSchemeProposal","nodeType":"EventDefinition","parameters":{"id":12174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12165,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12175,"src":"825:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12164,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12167,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12175,"src":"858:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"858:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12169,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12175,"src":"895:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12168,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12171,"indexed":false,"name":"_scheme","nodeType":"VariableDeclaration","scope":12175,"src":"938:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12170,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12173,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12175,"src":"963:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12172,"name":"string","nodeType":"ElementaryTypeName","src":"963:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"824:168:42"},"src":"798:195:42"},{"anonymous":false,"documentation":null,"id":12183,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":12182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12177,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12183,"src":"1022:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12176,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12179,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12183,"src":"1047:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1047:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12181,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":12183,"src":"1076:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12180,"name":"int256","nodeType":"ElementaryTypeName","src":"1076:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1021:69:42"},"src":"999:92:42"},{"anonymous":false,"documentation":null,"id":12189,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":12188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12185,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12189,"src":"1118:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12184,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12187,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12189,"src":"1143:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1143:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1117:54:42"},"src":"1096:76:42"},{"canonicalName":"SchemeRegistrar.SchemeProposal","id":12198,"members":[{"constant":false,"id":12191,"name":"scheme","nodeType":"VariableDeclaration","scope":12198,"src":"1303:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12190,"name":"address","nodeType":"ElementaryTypeName","src":"1303:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12193,"name":"addScheme","nodeType":"VariableDeclaration","scope":12198,"src":"1330:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12192,"name":"bool","nodeType":"ElementaryTypeName","src":"1330:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":12195,"name":"parametersHash","nodeType":"VariableDeclaration","scope":12198,"src":"1401:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1401:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12197,"name":"permissions","nodeType":"VariableDeclaration","scope":12198,"src":"1433:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12196,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1433:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"name":"SchemeProposal","nodeType":"StructDefinition","scope":12587,"src":"1271:187:42","visibility":"public"},{"constant":false,"id":12204,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":12587,"src":"1559:80:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal))"},"typeName":{"id":12203,"keyType":{"id":12199,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1559:50:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal))"},"valueType":{"id":12202,"keyType":{"id":12200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1584:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1576:32:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal)"},"valueType":{"contractScope":null,"id":12201,"name":"SchemeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12198,"src":"1593:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"SchemeRegistrar.Parameters","id":12211,"members":[{"constant":false,"id":12206,"name":"voteRegisterParams","nodeType":"VariableDeclaration","scope":12211,"src":"1777:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1777:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12208,"name":"voteRemoveParams","nodeType":"VariableDeclaration","scope":12211,"src":"1813:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12210,"name":"intVote","nodeType":"VariableDeclaration","scope":12211,"src":"1847:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12209,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1847:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":12587,"src":"1749:129:42","visibility":"public"},{"constant":false,"id":12215,"name":"parameters","nodeType":"VariableDeclaration","scope":12587,"src":"1884:46:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters)"},"typeName":{"id":12214,"keyType":{"id":12212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1892:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1884:28:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters)"},"valueType":{"contractScope":null,"id":12213,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12211,"src":"1901:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage_ptr","typeString":"struct SchemeRegistrar.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":12330,"nodeType":"Block","src":"2311:1091:42","statements":[{"assignments":[12228],"declarations":[{"constant":false,"id":12228,"name":"avatar","nodeType":"VariableDeclaration","scope":12330,"src":"2321:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12227,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2321:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":12236,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12229,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2337:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12232,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12230,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2351:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2351:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2337:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12234,"indexExpression":{"argumentTypes":null,"id":12233,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2363:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2337:38:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2337:45:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2321:61:42"},{"assignments":[12238],"declarations":[{"constant":false,"id":12238,"name":"proposal","nodeType":"VariableDeclaration","scope":12330,"src":"2392:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"},"typeName":{"contractScope":null,"id":12237,"name":"SchemeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12198,"src":"2392:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"}},"value":null,"visibility":"internal"}],"id":12246,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12239,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2425:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12243,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12241,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2456:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2448:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2448:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2425:39:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12245,"indexExpression":{"argumentTypes":null,"id":12244,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2465:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2425:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2392:85:42"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12248,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2495:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"2495:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2522:1:42","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":12250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2514:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2514:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2495:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2487:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2487:38:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12255,"nodeType":"ExpressionStatement","src":"2487:38:42"},{"expression":{"argumentTypes":null,"id":12263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2535:59:42","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12256,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2542:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12260,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12258,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2573:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2565:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2565:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2542:39:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12262,"indexExpression":{"argumentTypes":null,"id":12261,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2582:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2542:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12264,"nodeType":"ExpressionStatement","src":"2535:59:42"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12267,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2633:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2625:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2625:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12269,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2642:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12265,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12189,"src":"2609:15:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":12270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2609:45:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12271,"nodeType":"EmitStatement","src":"2604:50:42"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12272,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"2668:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":12273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2678:1:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2668:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12319,"nodeType":"IfStatement","src":"2664:642:42","trueBody":{"id":12318,"nodeType":"Block","src":"2681:625:42","statements":[{"assignments":[12276],"declarations":[{"constant":false,"id":12276,"name":"controller","nodeType":"VariableDeclaration","scope":12318,"src":"2747:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":12275,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2747:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":12282,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12278,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2782:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2782:12:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2782:14:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12277,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2771:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2771:26:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"2747:50:42"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12283,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2843:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addScheme","nodeType":"MemberAccess","referencedDeclaration":12193,"src":"2843:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12301,"nodeType":"IfStatement","src":"2839:286:42","trueBody":{"id":12300,"nodeType":"Block","src":"2863:262:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12288,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2940:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"2940:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12290,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2981:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parametersHash","nodeType":"MemberAccess","referencedDeclaration":12195,"src":"2981:23:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12292,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"3030:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":12197,"src":"3030:20:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12295,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"3084:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3076:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3076:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12286,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12276,"src":"2889:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"2889:25:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":12297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2889:203:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2881:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2881:229:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12299,"nodeType":"ExpressionStatement","src":"2881:229:42"}]}},{"condition":{"argumentTypes":null,"id":12304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3172:19:42","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12302,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"3173:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addScheme","nodeType":"MemberAccess","referencedDeclaration":12193,"src":"3173:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12317,"nodeType":"IfStatement","src":"3168:128:42","trueBody":{"id":12316,"nodeType":"Block","src":"3193:103:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12308,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"3247:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"3247:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12311,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"3272:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3264:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3264:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12306,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12276,"src":"3219:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"3219:27:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":12313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:61:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3211:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3211:70:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12315,"nodeType":"ExpressionStatement","src":"3211:70:42"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12322,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"3345:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3337:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3337:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12324,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"3354:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12325,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"3367:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12320,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12183,"src":"3320:16:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":12326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3320:54:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12327,"nodeType":"EmitStatement","src":"3315:59:42"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":12328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3391:4:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12226,"id":12329,"nodeType":"Return","src":"3384:11:42"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":12331,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":12222,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2284:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12223,"modifierName":{"argumentTypes":null,"id":12221,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2266:17:42","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2266:30:42"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":12220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12217,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12331,"src":"2221:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2221:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12219,"name":"_param","nodeType":"VariableDeclaration","scope":12331,"src":"2242:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12218,"name":"int256","nodeType":"ElementaryTypeName","src":"2242:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2220:36:42"},"returnParameters":{"id":12226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12225,"name":"","nodeType":"VariableDeclaration","scope":12331,"src":"2305:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12224,"name":"bool","nodeType":"ElementaryTypeName","src":"2305:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2304:6:42"},"scope":12587,"src":"2196:1206:42","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":12373,"nodeType":"Block","src":"3669:325:42","statements":[{"assignments":[12343],"declarations":[{"constant":false,"id":12343,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12373,"src":"3679:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3679:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12349,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12345,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"3718:19:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12346,"name":"_voteRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"3739:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12347,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"3758:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12344,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12586,"src":"3700:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":12348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3700:67:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3679:88:42"},{"expression":{"argumentTypes":null,"id":12355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12350,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"3777:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12352,"indexExpression":{"argumentTypes":null,"id":12351,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3788:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"id":12353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":12206,"src":"3777:41:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12354,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"3821:19:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3777:63:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12356,"nodeType":"ExpressionStatement","src":"3777:63:42"},{"expression":{"argumentTypes":null,"id":12362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12357,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"3850:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12359,"indexExpression":{"argumentTypes":null,"id":12358,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3861:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3850:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"id":12360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteRemoveParams","nodeType":"MemberAccess","referencedDeclaration":12208,"src":"3850:39:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12361,"name":"_voteRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"3892:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3850:59:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12363,"nodeType":"ExpressionStatement","src":"3850:59:42"},{"expression":{"argumentTypes":null,"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12364,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"3919:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12366,"indexExpression":{"argumentTypes":null,"id":12365,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3930:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3919:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"id":12367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"3919:30:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12368,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"3952:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3919:41:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12370,"nodeType":"ExpressionStatement","src":"3919:41:42"},{"expression":{"argumentTypes":null,"id":12371,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3977:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12341,"id":12372,"nodeType":"Return","src":"3970:17:42"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":12374,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":12338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":12374,"src":"3537:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3537:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12335,"name":"_voteRemoveParams","nodeType":"VariableDeclaration","scope":12374,"src":"3574:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3574:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12337,"name":"_intVote","nodeType":"VariableDeclaration","scope":12374,"src":"3609:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12336,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3609:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3527:113:42"},"returnParameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"name":"","nodeType":"VariableDeclaration","scope":12374,"src":"3656:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3656:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3655:9:42"},"scope":12587,"src":"3505:489:42","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12472,"nodeType":"Block","src":"4727:1090:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12390,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"4764:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4783:1:42","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":12391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4775:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4775:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4764:21:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d652063616e6e6f74206265207a65726f","id":12395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4787:23:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""},"value":"scheme cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""}],"id":12389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4756:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4756:55:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12397,"nodeType":"ExpressionStatement","src":"4756:55:42"},{"assignments":[12399],"declarations":[{"constant":false,"id":12399,"name":"controllerParams","nodeType":"VariableDeclaration","scope":12472,"src":"4821:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters"},"typeName":{"contractScope":null,"id":12398,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12211,"src":"4821:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage_ptr","typeString":"struct SchemeRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":12405,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12400,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"4858:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12404,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12402,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"4897:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12401,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"4869:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4869:36:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4858:48:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4821:85:42"},{"assignments":[12407],"declarations":[{"constant":false,"id":12407,"name":"proposalId","nodeType":"VariableDeclaration","scope":12472,"src":"4917:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4917:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12420,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":12411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4984:1:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12412,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"4999:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":12206,"src":"4999:35:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5048:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5048:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12417,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5080:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5072:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5072:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12408,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"4938:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"4938:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4938:32:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4938:160:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4917:181:42"},{"assignments":[12422],"declarations":[{"constant":false,"id":12422,"name":"proposal","nodeType":"VariableDeclaration","scope":12472,"src":"5109:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"},"typeName":{"contractScope":null,"id":12421,"name":"SchemeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12198,"src":"5109:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"}},"value":null,"visibility":"internal"}],"id":12429,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12424,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"5179:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12425,"name":"_parametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"5216:15:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"hexValue":"74727565","id":12426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5256:4:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"id":12427,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"5287:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":12423,"name":"SchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"5142:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SchemeProposal_$12198_storage_ptr_$","typeString":"type(struct SchemeRegistrar.SchemeProposal storage pointer)"}},"id":12428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["scheme","parametersHash","addScheme","permissions"],"nodeType":"FunctionCall","src":"5142:168:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"5109:201:42"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12432,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5364:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5356:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5356:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12434,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5386:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12436,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"5418:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"5418:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5410:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5410:33:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12439,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"5457:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12440,"name":"_parametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"5466:15:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12441,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"5495:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":12442,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12384,"src":"5521:16:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12430,"name":"NewSchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12163,"src":"5325:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_bytes32_$_t_bytes4_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,bytes32,bytes4,string memory)"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:222:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12444,"nodeType":"EmitStatement","src":"5320:227:42"},{"expression":{"argumentTypes":null,"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12445,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"5557:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12450,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12447,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5588:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5580:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5580:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5557:40:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12451,"indexExpression":{"argumentTypes":null,"id":12449,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5598:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5557:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12452,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12422,"src":"5612:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"src":"5557:63:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"id":12454,"nodeType":"ExpressionStatement","src":"5557:63:42"},{"expression":{"argumentTypes":null,"id":12468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12455,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5630:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12461,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12457,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"5652:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"5652:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5644:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5644:33:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5630:48:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12462,"indexExpression":{"argumentTypes":null,"id":12460,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5679:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5630:60:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12464,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5732:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5732:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12466,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5765:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12463,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5693:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":12467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5693:90:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5630:153:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12469,"nodeType":"ExpressionStatement","src":"5630:153:42"},{"expression":{"argumentTypes":null,"id":12470,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5800:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12388,"id":12471,"nodeType":"Return","src":"5793:17:42"}]},"documentation":"@dev create a proposal to register a scheme\n@param _avatar the address of the organization the scheme will be registered for\n@param _scheme the address of the scheme to be registered\n@param _parametersHash a hash of the configuration of the _scheme\n@param _permissions the permission of the scheme to be registered\n@param _descriptionHash proposal's description hash\n@return a proposal Id\n@dev NB: not only proposes the vote, but also votes for it","id":12473,"implemented":true,"kind":"function","modifiers":[],"name":"proposeScheme","nodeType":"FunctionDefinition","parameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12376,"name":"_avatar","nodeType":"VariableDeclaration","scope":12473,"src":"4543:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12375,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4543:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12378,"name":"_scheme","nodeType":"VariableDeclaration","scope":12473,"src":"4567:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12377,"name":"address","nodeType":"ElementaryTypeName","src":"4567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12380,"name":"_parametersHash","nodeType":"VariableDeclaration","scope":12473,"src":"4592:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4592:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12382,"name":"_permissions","nodeType":"VariableDeclaration","scope":12473,"src":"4625:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12381,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4625:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":12384,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12473,"src":"4654:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12383,"name":"string","nodeType":"ElementaryTypeName","src":"4654:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4533:157:42"},"returnParameters":{"id":12388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12387,"name":"","nodeType":"VariableDeclaration","scope":12473,"src":"4714:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4714:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4713:9:42"},"scope":12587,"src":"4511:1306:42","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12564,"nodeType":"Block","src":"6300:723:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12485,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12477,"src":"6318:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6337:1:42","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":12486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6329:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6329:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6318:21:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d652063616e6e6f74206265207a65726f","id":12490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6341:23:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""},"value":"scheme cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""}],"id":12484,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6310:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6310:55:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12492,"nodeType":"ExpressionStatement","src":"6310:55:42"},{"assignments":[12494],"declarations":[{"constant":false,"id":12494,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12564,"src":"6375:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6375:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12498,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12496,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6424:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12495,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"6396:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6396:36:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6375:57:42"},{"assignments":[12500],"declarations":[{"constant":false,"id":12500,"name":"params","nodeType":"VariableDeclaration","scope":12564,"src":"6442:24:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters"},"typeName":{"contractScope":null,"id":12499,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12211,"src":"6442:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage_ptr","typeString":"struct SchemeRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":12504,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12501,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"6469:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12503,"indexExpression":{"argumentTypes":null,"id":12502,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12494,"src":"6480:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6469:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6442:49:42"},{"assignments":[12506],"declarations":[{"constant":false,"id":12506,"name":"intVote","nodeType":"VariableDeclaration","scope":12564,"src":"6502:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12505,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"6502:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":12509,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12507,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"6529:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"6529:14:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"6502:41:42"},{"assignments":[12511],"declarations":[{"constant":false,"id":12511,"name":"proposalId","nodeType":"VariableDeclaration","scope":12564,"src":"6553:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6553:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12523,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":12514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12515,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"6593:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteRemoveParams","nodeType":"MemberAccess","referencedDeclaration":12208,"src":"6593:23:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6618:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6618:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12520,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6638:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6630:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6630:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12512,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12506,"src":"6574:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"6574:15:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":12522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6574:73:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6553:94:42"},{"expression":{"argumentTypes":null,"id":12533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12524,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"6657:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12529,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12526,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6688:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6680:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6680:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6657:40:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12530,"indexExpression":{"argumentTypes":null,"id":12528,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"6698:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6657:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"id":12531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"6657:59:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12532,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12477,"src":"6719:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6657:69:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12534,"nodeType":"ExpressionStatement","src":"6657:69:42"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12537,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6770:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6762:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6762:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12539,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"6780:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12541,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12506,"src":"6800:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6792:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6792:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12543,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12477,"src":"6810:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12544,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"6819:16:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12535,"name":"RemoveSchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"6741:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,string memory)"}},"id":12545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6741:95:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12546,"nodeType":"EmitStatement","src":"6736:100:42"},{"expression":{"argumentTypes":null,"id":12560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12547,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6846:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12553,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12549,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"6868:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"6868:14:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6860:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6860:23:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6846:38:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12554,"indexExpression":{"argumentTypes":null,"id":12552,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"6885:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6846:50:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12556,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"6938:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6938:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12558,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6971:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12555,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"6899:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":12559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"6899:90:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6846:143:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12561,"nodeType":"ExpressionStatement","src":"6846:143:42"},{"expression":{"argumentTypes":null,"id":12562,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"7006:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12483,"id":12563,"nodeType":"Return","src":"6999:17:42"}]},"documentation":"@dev propose to remove a scheme for a controller\n@param _avatar the address of the controller from which we want to remove a scheme\n@param _scheme the address of the scheme we want to remove\n@param _descriptionHash proposal description hash\nNB: not only registers the proposal, but also votes for it","id":12565,"implemented":true,"kind":"function","modifiers":[],"name":"proposeToRemoveScheme","nodeType":"FunctionDefinition","parameters":{"id":12480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12475,"name":"_avatar","nodeType":"VariableDeclaration","scope":12565,"src":"6199:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12474,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6199:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12477,"name":"_scheme","nodeType":"VariableDeclaration","scope":12565,"src":"6215:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12476,"name":"address","nodeType":"ElementaryTypeName","src":"6215:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12479,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12565,"src":"6232:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12478,"name":"string","nodeType":"ElementaryTypeName","src":"6232:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"6198:65:42"},"returnParameters":{"id":12483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12482,"name":"","nodeType":"VariableDeclaration","scope":12565,"src":"6287:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6287:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6286:9:42"},"scope":12587,"src":"6168:855:42","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12585,"nodeType":"Block","src":"7202:101:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12579,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"7246:19:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12580,"name":"_voteRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12569,"src":"7267:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12581,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"7286:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":12577,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7229:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7229:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7229:66:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12576,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7219:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7219:77:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12575,"id":12584,"nodeType":"Return","src":"7212:84:42"}]},"documentation":null,"id":12586,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":12572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12567,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":12586,"src":"7065:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7065:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12569,"name":"_voteRemoveParams","nodeType":"VariableDeclaration","scope":12586,"src":"7102:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7102:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12571,"name":"_intVote","nodeType":"VariableDeclaration","scope":12586,"src":"7137:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12570,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"7137:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"7055:113:42"},"returnParameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12574,"name":"","nodeType":"VariableDeclaration","scope":12586,"src":"7189:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7188:9:42"},"scope":12587,"src":"7029:274:42","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":12588,"src":"429:6876:42"}],"src":"0:7306:42"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/SchemeRegistrar.sol","exportedSymbols":{"SchemeRegistrar":[12587]},"id":12588,"nodeType":"SourceUnit","nodes":[{"id":12137,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:42"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":12138,"nodeType":"ImportDirective","scope":12588,"sourceUnit":19817,"src":"25:71:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":12139,"nodeType":"ImportDirective","scope":12588,"sourceUnit":20032,"src":"97:86:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":12140,"nodeType":"ImportDirective","scope":12588,"sourceUnit":12635,"src":"184:31:42","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":12141,"nodeType":"ImportDirective","scope":12588,"sourceUnit":14651,"src":"216:54:42","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":12142,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"457:15:42","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":12143,"nodeType":"InheritanceSpecifier","src":"457:15:42"},{"arguments":null,"baseName":{"contractScope":null,"id":12144,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"474:22:42","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":12145,"nodeType":"InheritanceSpecifier","src":"474:22:42"},{"arguments":null,"baseName":{"contractScope":null,"id":12146,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"498:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":12147,"nodeType":"InheritanceSpecifier","src":"498:24:42"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A registrar for Schemes for organizations\n@dev The SchemeRegistrar is used for registering and unregistering schemes at organizations","fullyImplemented":true,"id":12587,"linearizedBaseContracts":[12587,19828,14650,20031,12634,12645],"name":"SchemeRegistrar","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":12163,"name":"NewSchemeProposal","nodeType":"EventDefinition","parameters":{"id":12162,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12149,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12163,"src":"562:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12148,"name":"address","nodeType":"ElementaryTypeName","src":"562:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12151,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12163,"src":"595:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12153,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12163,"src":"632:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12152,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12155,"indexed":false,"name":"_scheme","nodeType":"VariableDeclaration","scope":12163,"src":"675:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12154,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12157,"indexed":false,"name":"_parametersHash","nodeType":"VariableDeclaration","scope":12163,"src":"700:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12156,"name":"bytes32","nodeType":"ElementaryTypeName","src":"700:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12159,"indexed":false,"name":"_permissions","nodeType":"VariableDeclaration","scope":12163,"src":"733:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12158,"name":"bytes4","nodeType":"ElementaryTypeName","src":"733:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":12161,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12163,"src":"762:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12160,"name":"string","nodeType":"ElementaryTypeName","src":"762:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"552:239:42"},"src":"529:263:42"},{"anonymous":false,"documentation":null,"id":12175,"name":"RemoveSchemeProposal","nodeType":"EventDefinition","parameters":{"id":12174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12165,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12175,"src":"825:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12164,"name":"address","nodeType":"ElementaryTypeName","src":"825:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12167,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12175,"src":"858:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12166,"name":"bytes32","nodeType":"ElementaryTypeName","src":"858:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12169,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12175,"src":"895:33:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12168,"name":"address","nodeType":"ElementaryTypeName","src":"895:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12171,"indexed":false,"name":"_scheme","nodeType":"VariableDeclaration","scope":12175,"src":"938:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12170,"name":"address","nodeType":"ElementaryTypeName","src":"938:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12173,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12175,"src":"963:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12172,"name":"string","nodeType":"ElementaryTypeName","src":"963:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"824:168:42"},"src":"798:195:42"},{"anonymous":false,"documentation":null,"id":12183,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":12182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12177,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12183,"src":"1022:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12176,"name":"address","nodeType":"ElementaryTypeName","src":"1022:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12179,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12183,"src":"1047:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12178,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1047:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12181,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":12183,"src":"1076:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12180,"name":"int256","nodeType":"ElementaryTypeName","src":"1076:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1021:69:42"},"src":"999:92:42"},{"anonymous":false,"documentation":null,"id":12189,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":12188,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12185,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12189,"src":"1118:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12184,"name":"address","nodeType":"ElementaryTypeName","src":"1118:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12187,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12189,"src":"1143:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12186,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1143:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1117:54:42"},"src":"1096:76:42"},{"canonicalName":"SchemeRegistrar.SchemeProposal","id":12198,"members":[{"constant":false,"id":12191,"name":"scheme","nodeType":"VariableDeclaration","scope":12198,"src":"1303:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12190,"name":"address","nodeType":"ElementaryTypeName","src":"1303:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12193,"name":"addScheme","nodeType":"VariableDeclaration","scope":12198,"src":"1330:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12192,"name":"bool","nodeType":"ElementaryTypeName","src":"1330:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":12195,"name":"parametersHash","nodeType":"VariableDeclaration","scope":12198,"src":"1401:22:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12194,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1401:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12197,"name":"permissions","nodeType":"VariableDeclaration","scope":12198,"src":"1433:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12196,"name":"bytes4","nodeType":"ElementaryTypeName","src":"1433:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"name":"SchemeProposal","nodeType":"StructDefinition","scope":12587,"src":"1271:187:42","visibility":"public"},{"constant":false,"id":12204,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":12587,"src":"1559:80:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal))"},"typeName":{"id":12203,"keyType":{"id":12199,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1559:50:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal))"},"valueType":{"id":12202,"keyType":{"id":12200,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1584:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1576:32:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal)"},"valueType":{"contractScope":null,"id":12201,"name":"SchemeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12198,"src":"1593:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"SchemeRegistrar.Parameters","id":12211,"members":[{"constant":false,"id":12206,"name":"voteRegisterParams","nodeType":"VariableDeclaration","scope":12211,"src":"1777:26:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12205,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1777:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12208,"name":"voteRemoveParams","nodeType":"VariableDeclaration","scope":12211,"src":"1813:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12207,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1813:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12210,"name":"intVote","nodeType":"VariableDeclaration","scope":12211,"src":"1847:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12209,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1847:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":12587,"src":"1749:129:42","visibility":"public"},{"constant":false,"id":12215,"name":"parameters","nodeType":"VariableDeclaration","scope":12587,"src":"1884:46:42","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters)"},"typeName":{"id":12214,"keyType":{"id":12212,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1892:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1884:28:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters)"},"valueType":{"contractScope":null,"id":12213,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12211,"src":"1901:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage_ptr","typeString":"struct SchemeRegistrar.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":12330,"nodeType":"Block","src":"2311:1091:42","statements":[{"assignments":[12228],"declarations":[{"constant":false,"id":12228,"name":"avatar","nodeType":"VariableDeclaration","scope":12330,"src":"2321:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12227,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2321:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":12236,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12229,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2337:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12232,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12230,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2351:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2351:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2337:25:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12234,"indexExpression":{"argumentTypes":null,"id":12233,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2363:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2337:38:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2337:45:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2321:61:42"},{"assignments":[12238],"declarations":[{"constant":false,"id":12238,"name":"proposal","nodeType":"VariableDeclaration","scope":12330,"src":"2392:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"},"typeName":{"contractScope":null,"id":12237,"name":"SchemeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12198,"src":"2392:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"}},"value":null,"visibility":"internal"}],"id":12246,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12239,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2425:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12243,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12241,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2456:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2448:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2448:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2425:39:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12245,"indexExpression":{"argumentTypes":null,"id":12244,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2465:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2425:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2392:85:42"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12248,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2495:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12249,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"2495:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2522:1:42","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":12250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2514:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12252,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2514:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"2495:29:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12247,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2487:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2487:38:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12255,"nodeType":"ExpressionStatement","src":"2487:38:42"},{"expression":{"argumentTypes":null,"id":12263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2535:59:42","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12256,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"2542:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12260,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12258,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2573:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2565:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2565:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2542:39:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12262,"indexExpression":{"argumentTypes":null,"id":12261,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2582:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2542:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12264,"nodeType":"ExpressionStatement","src":"2535:59:42"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12267,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2633:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2625:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2625:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12269,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2642:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12265,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12189,"src":"2609:15:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":12270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2609:45:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12271,"nodeType":"EmitStatement","src":"2604:50:42"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12272,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"2668:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":12273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2678:1:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2668:11:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12319,"nodeType":"IfStatement","src":"2664:642:42","trueBody":{"id":12318,"nodeType":"Block","src":"2681:625:42","statements":[{"assignments":[12276],"declarations":[{"constant":false,"id":12276,"name":"controller","nodeType":"VariableDeclaration","scope":12318,"src":"2747:21:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":12275,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2747:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":12282,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12278,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"2782:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2782:12:42","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2782:14:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12277,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2771:10:42","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2771:26:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"2747:50:42"},{"condition":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12283,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2843:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12284,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addScheme","nodeType":"MemberAccess","referencedDeclaration":12193,"src":"2843:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12301,"nodeType":"IfStatement","src":"2839:286:42","trueBody":{"id":12300,"nodeType":"Block","src":"2863:262:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12288,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2940:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12289,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"2940:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12290,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"2981:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12291,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"parametersHash","nodeType":"MemberAccess","referencedDeclaration":12195,"src":"2981:23:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12292,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"3030:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12293,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"permissions","nodeType":"MemberAccess","referencedDeclaration":12197,"src":"3030:20:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12295,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"3084:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12294,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3076:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3076:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12286,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12276,"src":"2889:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"2889:25:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":12297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2889:203:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12285,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2881:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2881:229:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12299,"nodeType":"ExpressionStatement","src":"2881:229:42"}]}},{"condition":{"argumentTypes":null,"id":12304,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3172:19:42","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12302,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"3173:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"addScheme","nodeType":"MemberAccess","referencedDeclaration":12193,"src":"3173:18:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12317,"nodeType":"IfStatement","src":"3168:128:42","trueBody":{"id":12316,"nodeType":"Block","src":"3193:103:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12308,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12238,"src":"3247:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"id":12309,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"3247:15:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12311,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"3272:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3264:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3264:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12306,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12276,"src":"3219:10:42","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterScheme","nodeType":"MemberAccess","referencedDeclaration":960,"src":"3219:27:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) external returns (bool)"}},"id":12313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:61:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12305,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3211:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3211:70:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12315,"nodeType":"ExpressionStatement","src":"3211:70:42"}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12322,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12228,"src":"3345:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12321,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3337:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3337:15:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12324,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"3354:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12325,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12219,"src":"3367:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12320,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12183,"src":"3320:16:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":12326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3320:54:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12327,"nodeType":"EmitStatement","src":"3315:59:42"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":12328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3391:4:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12226,"id":12329,"nodeType":"Return","src":"3384:11:42"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":12331,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":12222,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12217,"src":"2284:11:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12223,"modifierName":{"argumentTypes":null,"id":12221,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2266:17:42","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2266:30:42"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":12220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12217,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12331,"src":"2221:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12216,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2221:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12219,"name":"_param","nodeType":"VariableDeclaration","scope":12331,"src":"2242:13:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12218,"name":"int256","nodeType":"ElementaryTypeName","src":"2242:6:42","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2220:36:42"},"returnParameters":{"id":12226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12225,"name":"","nodeType":"VariableDeclaration","scope":12331,"src":"2305:4:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12224,"name":"bool","nodeType":"ElementaryTypeName","src":"2305:4:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2304:6:42"},"scope":12587,"src":"2196:1206:42","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":12373,"nodeType":"Block","src":"3669:325:42","statements":[{"assignments":[12343],"declarations":[{"constant":false,"id":12343,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12373,"src":"3679:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12342,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3679:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12349,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12345,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"3718:19:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12346,"name":"_voteRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"3739:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12347,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"3758:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12344,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12586,"src":"3700:17:42","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":12348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3700:67:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3679:88:42"},{"expression":{"argumentTypes":null,"id":12355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12350,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"3777:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12352,"indexExpression":{"argumentTypes":null,"id":12351,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3788:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3777:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"id":12353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":12206,"src":"3777:41:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12354,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12333,"src":"3821:19:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3777:63:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12356,"nodeType":"ExpressionStatement","src":"3777:63:42"},{"expression":{"argumentTypes":null,"id":12362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12357,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"3850:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12359,"indexExpression":{"argumentTypes":null,"id":12358,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3861:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3850:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"id":12360,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteRemoveParams","nodeType":"MemberAccess","referencedDeclaration":12208,"src":"3850:39:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12361,"name":"_voteRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12335,"src":"3892:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3850:59:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12363,"nodeType":"ExpressionStatement","src":"3850:59:42"},{"expression":{"argumentTypes":null,"id":12369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12364,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"3919:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12366,"indexExpression":{"argumentTypes":null,"id":12365,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3930:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3919:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"id":12367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"3919:30:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12368,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12337,"src":"3952:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3919:41:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12370,"nodeType":"ExpressionStatement","src":"3919:41:42"},{"expression":{"argumentTypes":null,"id":12371,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12343,"src":"3977:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12341,"id":12372,"nodeType":"Return","src":"3970:17:42"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":12374,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":12338,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12333,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":12374,"src":"3537:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12332,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3537:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12335,"name":"_voteRemoveParams","nodeType":"VariableDeclaration","scope":12374,"src":"3574:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12334,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3574:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12337,"name":"_intVote","nodeType":"VariableDeclaration","scope":12374,"src":"3609:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12336,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3609:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3527:113:42"},"returnParameters":{"id":12341,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12340,"name":"","nodeType":"VariableDeclaration","scope":12374,"src":"3656:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12339,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3656:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3655:9:42"},"scope":12587,"src":"3505:489:42","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12472,"nodeType":"Block","src":"4727:1090:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12390,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"4764:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12392,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4783:1:42","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":12391,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4775:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4775:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"4764:21:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d652063616e6e6f74206265207a65726f","id":12395,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4787:23:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""},"value":"scheme cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""}],"id":12389,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4756:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4756:55:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12397,"nodeType":"ExpressionStatement","src":"4756:55:42"},{"assignments":[12399],"declarations":[{"constant":false,"id":12399,"name":"controllerParams","nodeType":"VariableDeclaration","scope":12472,"src":"4821:34:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters"},"typeName":{"contractScope":null,"id":12398,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12211,"src":"4821:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage_ptr","typeString":"struct SchemeRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":12405,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12400,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"4858:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12404,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12402,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"4897:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12401,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"4869:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4869:36:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4858:48:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4821:85:42"},{"assignments":[12407],"declarations":[{"constant":false,"id":12407,"name":"proposalId","nodeType":"VariableDeclaration","scope":12472,"src":"4917:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12406,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4917:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12420,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":12411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4984:1:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12412,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"4999:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteRegisterParams","nodeType":"MemberAccess","referencedDeclaration":12206,"src":"4999:35:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"5048:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5048:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12417,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5080:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12416,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5072:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5072:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12408,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"4938:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"4938:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4938:32:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":12419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4938:160:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4917:181:42"},{"assignments":[12422],"declarations":[{"constant":false,"id":12422,"name":"proposal","nodeType":"VariableDeclaration","scope":12472,"src":"5109:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"},"typeName":{"contractScope":null,"id":12421,"name":"SchemeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12198,"src":"5109:14:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage_ptr","typeString":"struct SchemeRegistrar.SchemeProposal"}},"value":null,"visibility":"internal"}],"id":12429,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12424,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"5179:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12425,"name":"_parametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"5216:15:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"hexValue":"74727565","id":12426,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5256:4:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"argumentTypes":null,"id":12427,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"5287:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"id":12423,"name":"SchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12198,"src":"5142:14:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_SchemeProposal_$12198_storage_ptr_$","typeString":"type(struct SchemeRegistrar.SchemeProposal storage pointer)"}},"id":12428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["scheme","parametersHash","addScheme","permissions"],"nodeType":"FunctionCall","src":"5142:168:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"5109:201:42"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12432,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5364:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5356:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5356:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12434,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5386:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12436,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"5418:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12437,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"5418:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5410:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5410:33:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12439,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12378,"src":"5457:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12440,"name":"_parametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12380,"src":"5466:15:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12441,"name":"_permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12382,"src":"5495:12:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"id":12442,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12384,"src":"5521:16:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12430,"name":"NewSchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12163,"src":"5325:17:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_bytes32_$_t_bytes4_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,bytes32,bytes4,string memory)"}},"id":12443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5325:222:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12444,"nodeType":"EmitStatement","src":"5320:227:42"},{"expression":{"argumentTypes":null,"id":12453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12445,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"5557:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12450,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12447,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5588:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5580:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5580:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5557:40:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12451,"indexExpression":{"argumentTypes":null,"id":12449,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5598:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5557:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12452,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12422,"src":"5612:8:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_memory_ptr","typeString":"struct SchemeRegistrar.SchemeProposal memory"}},"src":"5557:63:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"id":12454,"nodeType":"ExpressionStatement","src":"5557:63:42"},{"expression":{"argumentTypes":null,"id":12468,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12455,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5630:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12461,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12457,"name":"controllerParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12399,"src":"5652:16:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"5652:24:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12456,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5644:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5644:33:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5630:48:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12462,"indexExpression":{"argumentTypes":null,"id":12460,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5679:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5630:60:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12464,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5732:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5732:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12466,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12376,"src":"5765:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12463,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5693:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":12467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5693:90:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5630:153:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12469,"nodeType":"ExpressionStatement","src":"5630:153:42"},{"expression":{"argumentTypes":null,"id":12470,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12407,"src":"5800:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12388,"id":12471,"nodeType":"Return","src":"5793:17:42"}]},"documentation":"@dev create a proposal to register a scheme\n@param _avatar the address of the organization the scheme will be registered for\n@param _scheme the address of the scheme to be registered\n@param _parametersHash a hash of the configuration of the _scheme\n@param _permissions the permission of the scheme to be registered\n@param _descriptionHash proposal's description hash\n@return a proposal Id\n@dev NB: not only proposes the vote, but also votes for it","id":12473,"implemented":true,"kind":"function","modifiers":[],"name":"proposeScheme","nodeType":"FunctionDefinition","parameters":{"id":12385,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12376,"name":"_avatar","nodeType":"VariableDeclaration","scope":12473,"src":"4543:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12375,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4543:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12378,"name":"_scheme","nodeType":"VariableDeclaration","scope":12473,"src":"4567:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12377,"name":"address","nodeType":"ElementaryTypeName","src":"4567:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12380,"name":"_parametersHash","nodeType":"VariableDeclaration","scope":12473,"src":"4592:23:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12379,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4592:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12382,"name":"_permissions","nodeType":"VariableDeclaration","scope":12473,"src":"4625:19:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12381,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4625:6:42","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"},{"constant":false,"id":12384,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12473,"src":"4654:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12383,"name":"string","nodeType":"ElementaryTypeName","src":"4654:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4533:157:42"},"returnParameters":{"id":12388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12387,"name":"","nodeType":"VariableDeclaration","scope":12473,"src":"4714:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4714:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4713:9:42"},"scope":12587,"src":"4511:1306:42","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12564,"nodeType":"Block","src":"6300:723:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12485,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12477,"src":"6318:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6337:1:42","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":12486,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6329:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6329:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"6318:21:42","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d652063616e6e6f74206265207a65726f","id":12490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6341:23:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""},"value":"scheme cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cafaf033626ff48a9876b5f035bd8ede5133563907af6e0eef67843384d1e6c9","typeString":"literal_string \"scheme cannot be zero\""}],"id":12484,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"6310:7:42","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6310:55:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12492,"nodeType":"ExpressionStatement","src":"6310:55:42"},{"assignments":[12494],"declarations":[{"constant":false,"id":12494,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12564,"src":"6375:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12493,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6375:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12498,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12496,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6424:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12495,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"6396:27:42","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6396:36:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6375:57:42"},{"assignments":[12500],"declarations":[{"constant":false,"id":12500,"name":"params","nodeType":"VariableDeclaration","scope":12564,"src":"6442:24:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters"},"typeName":{"contractScope":null,"id":12499,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12211,"src":"6442:10:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage_ptr","typeString":"struct SchemeRegistrar.Parameters"}},"value":null,"visibility":"internal"}],"id":12504,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12501,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12215,"src":"6469:10:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12211_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.Parameters storage ref)"}},"id":12503,"indexExpression":{"argumentTypes":null,"id":12502,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12494,"src":"6480:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6469:22:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_storage","typeString":"struct SchemeRegistrar.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"6442:49:42"},{"assignments":[12506],"declarations":[{"constant":false,"id":12506,"name":"intVote","nodeType":"VariableDeclaration","scope":12564,"src":"6502:24:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12505,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"6502:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":12509,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12507,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"6529:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"6529:14:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"6502:41:42"},{"assignments":[12511],"declarations":[{"constant":false,"id":12511,"name":"proposalId","nodeType":"VariableDeclaration","scope":12564,"src":"6553:18:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12510,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6553:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12523,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":12514,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6590:1:42","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12515,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"6593:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteRemoveParams","nodeType":"MemberAccess","referencedDeclaration":12208,"src":"6593:23:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6618:3:42","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6618:10:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12520,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6638:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6630:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6630:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12512,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12506,"src":"6574:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"6574:15:42","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":12522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6574:73:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6553:94:42"},{"expression":{"argumentTypes":null,"id":12533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12524,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12204,"src":"6657:22:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref))"}},"id":12529,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12526,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6688:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6680:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6680:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6657:40:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_SchemeProposal_$12198_storage_$","typeString":"mapping(bytes32 => struct SchemeRegistrar.SchemeProposal storage ref)"}},"id":12530,"indexExpression":{"argumentTypes":null,"id":12528,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"6698:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6657:52:42","typeDescriptions":{"typeIdentifier":"t_struct$_SchemeProposal_$12198_storage","typeString":"struct SchemeRegistrar.SchemeProposal storage ref"}},"id":12531,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"scheme","nodeType":"MemberAccess","referencedDeclaration":12191,"src":"6657:59:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12532,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12477,"src":"6719:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6657:69:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":12534,"nodeType":"ExpressionStatement","src":"6657:69:42"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12537,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6770:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6762:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6762:16:42","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12539,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"6780:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12541,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12506,"src":"6800:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12540,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6792:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6792:16:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12543,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12477,"src":"6810:7:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12544,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12479,"src":"6819:16:42","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12535,"name":"RemoveSchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12175,"src":"6741:20:42","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,string memory)"}},"id":12545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6741:95:42","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12546,"nodeType":"EmitStatement","src":"6736:100:42"},{"expression":{"argumentTypes":null,"id":12560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12547,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6846:13:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12553,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12549,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12500,"src":"6868:6:42","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12211_memory_ptr","typeString":"struct SchemeRegistrar.Parameters memory"}},"id":12550,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12210,"src":"6868:14:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6860:7:42","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6860:23:42","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6846:38:42","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12554,"indexExpression":{"argumentTypes":null,"id":12552,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"6885:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6846:50:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12556,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"6938:5:42","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6938:12:42","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12558,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12475,"src":"6971:7:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12555,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"6899:12:42","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":12559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"6899:90:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6846:143:42","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12561,"nodeType":"ExpressionStatement","src":"6846:143:42"},{"expression":{"argumentTypes":null,"id":12562,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12511,"src":"7006:10:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12483,"id":12563,"nodeType":"Return","src":"6999:17:42"}]},"documentation":"@dev propose to remove a scheme for a controller\n@param _avatar the address of the controller from which we want to remove a scheme\n@param _scheme the address of the scheme we want to remove\n@param _descriptionHash proposal description hash\nNB: not only registers the proposal, but also votes for it","id":12565,"implemented":true,"kind":"function","modifiers":[],"name":"proposeToRemoveScheme","nodeType":"FunctionDefinition","parameters":{"id":12480,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12475,"name":"_avatar","nodeType":"VariableDeclaration","scope":12565,"src":"6199:14:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12474,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"6199:6:42","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12477,"name":"_scheme","nodeType":"VariableDeclaration","scope":12565,"src":"6215:15:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12476,"name":"address","nodeType":"ElementaryTypeName","src":"6215:7:42","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12479,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12565,"src":"6232:30:42","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12478,"name":"string","nodeType":"ElementaryTypeName","src":"6232:6:42","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"6198:65:42"},"returnParameters":{"id":12483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12482,"name":"","nodeType":"VariableDeclaration","scope":12565,"src":"6287:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12481,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6287:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"6286:9:42"},"scope":12587,"src":"6168:855:42","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12585,"nodeType":"Block","src":"7202:101:42","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12579,"name":"_voteRegisterParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12567,"src":"7246:19:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12580,"name":"_voteRemoveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12569,"src":"7267:17:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12581,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12571,"src":"7286:8:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":12577,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7229:3:42","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":12578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7229:16:42","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":12582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7229:66:42","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":12576,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7219:9:42","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":12583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7219:77:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12575,"id":12584,"nodeType":"Return","src":"7212:84:42"}]},"documentation":null,"id":12586,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":12572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12567,"name":"_voteRegisterParams","nodeType":"VariableDeclaration","scope":12586,"src":"7065:27:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12566,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7065:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12569,"name":"_voteRemoveParams","nodeType":"VariableDeclaration","scope":12586,"src":"7102:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12568,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7102:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12571,"name":"_intVote","nodeType":"VariableDeclaration","scope":12586,"src":"7137:25:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12570,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"7137:16:42","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"7055:113:42"},"returnParameters":{"id":12575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12574,"name":"","nodeType":"VariableDeclaration","scope":12586,"src":"7189:7:42","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12573,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7189:7:42","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7188:9:42"},"scope":12587,"src":"7029:274:42","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":12588,"src":"429:6876:42"}],"src":"0:7306:42"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.197Z","devdoc":{"details":"The SchemeRegistrar is used for registering and unregistering schemes at organizations","methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_param":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"}},"proposeScheme(address,address,bytes32,bytes4,string)":{"details":"create a proposal to register a schemeNB: not only proposes the vote, but also votes for it","params":{"_avatar":"the address of the organization the scheme will be registered for","_descriptionHash":"proposal's description hash","_parametersHash":"a hash of the configuration of the _scheme","_permissions":"the permission of the scheme to be registered","_scheme":"the address of the scheme to be registered"},"return":"a proposal Id"},"proposeToRemoveScheme(address,address,string)":{"details":"propose to remove a scheme for a controller","params":{"_avatar":"the address of the controller from which we want to remove a scheme","_descriptionHash":"proposal description hash NB: not only registers the proposal, but also votes for it","_scheme":"the address of the scheme we want to remove"}},"setParameters(bytes32,bytes32,address)":{"details":"hash the parameters, save them if necessary, and return the hash value"}},"title":"A registrar for Schemes for organizations"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SignalScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SignalScheme.json new file mode 100644 index 00000000..f259862f --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/SignalScheme.json @@ -0,0 +1 @@ +{"contractName":"SignalScheme","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"_signalType","type":"uint256"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"NewSignalProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"_signalType","type":"uint256"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"Signal","type":"event"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"params","outputs":[{"internalType":"bytes32","name":"voteApproveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"intVote","type":"address"},{"internalType":"uint256","name":"signalType","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"string","name":"descriptionHash","type":"string"},{"internalType":"bool","name":"executed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"uint256","name":"_signalType","type":"uint256"},{"internalType":"bytes32","name":"_voteApproveParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeSignal","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_param","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_signalType\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"NewSignalProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"_signalType\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"Signal\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_signalType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_voteApproveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"params\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"voteApproveParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"intVote\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"signalType\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"descriptionHash\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeSignal\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_param\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"initialize(address,uint256,bytes32,address)\":{\"details\":\"initialize\",\"params\":{\"_avatar\":\"the scheme avatar\",\"_intVote\":\"voting machine address\",\"_signalType\":\"- signal types\",\"_voteApproveParams\":\"voting machine params\"}},\"proposeSignal(string)\":{\"details\":\"Submit a proposal for a dao signal\",\"params\":{\"_descriptionHash\":\"A hash of the proposal's description\"}}},\"title\":\"A scheme for proposing a signal on behalkf of the daoCreator\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/schemes/SignalScheme.sol\":\"SignalScheme\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/schemes/SignalScheme.sol\":{\"keccak256\":\"0x46f6dd07dafca4e4ade9f228815a29f5be913b5455d6b8b77caef3505e65fc38\",\"urls\":[\"bzz-raw://221cc1e144257d62f9e558bb169bcd57156b4d4e7cefd809e294a83b104ae642\",\"dweb:/ipfs/QmfP6eEXYmLWVq3Ey332yH6pgPY7Pym8tvRB2jdjHqPtMo\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"356:3253:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;356:3253:23;;;;;;;","deployedSourceMap":"356:3253:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;356:3253:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1321:533;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1321:533:23;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1013:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1013:47:23;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;1013:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;598:73:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;1973:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1988:841:23;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1988:841:23;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;1988:841:23;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;1988:841:23;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;-1:-1;1988:841:23;;-1:-1:-1;1988:841:23;-1:-1:-1;1988:841:23;:::i;2666:345:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;3094:513:23:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3094:513:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2325:335:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;1067:24:23:-;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1067:24:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;678:401:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;1085:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;1321:533:23:-;1536:13;;-1:-1:-1;;;;;1536:13:23;:26;1528:66;;;;;-1:-1:-1;;;1528:66:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1612:20:23;;1604:54;;;;;-1:-1:-1;;;1604:54:23;;;;;;;;;;;;-1:-1:-1;;;1604:54:23;;;;;;;;;;;;;;;1677:170;;;;;;;;;;;-1:-1:-1;;;;;1677:170:23;;;;;;;;;;;;;;;;;;;;;;;;;;1668:6;:179;;;;;;;-1:-1:-1;;;;;;1668:179:23;;;;;;;;;;;;;;;;;;;;;;;;1321:533::o;1013:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1013:47:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1013:47:23;;;;;;;-1:-1:-1;;1013:47:23;;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;1973:346::-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;-1:-1:-1;;1973:346:50;;;;;:::o;1988:841:23:-;2126:13;;:21;;;-1:-1:-1;;;2126:21:23;;;;2084:7;;-1:-1:-1;;;;;2126:13:23;;:19;;:21;;;;;;;;;;;;;;:13;:21;;;5:2:-1;;;;30:1;27;20:12;5:2;2126:21:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2126:21:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2126:21:23;2191:13;;2115:91;;;-1:-1:-1;;;2115:91:23;;2176:4;2115:91;;;;-1:-1:-1;;;;;2191:13:23;;;2115:91;;;;;;:52;;;;;;;:91;;;;;2126:21;;2115:91;;;;;;;:52;:91;;;5:2:-1;;;;30:1;27;20:12;5:2;2115:91:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2115:91:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2115:91:23;2107:136;;;;;-1:-1:-1;;;2107:136:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;2275:14;;:6;2318:24;;2380:13;;2275:129;;;-1:-1:-1;;;2275:129:23;;;;;;;;;;;;;;;;2352:10;2275:129;;;;-1:-1:-1;;;;;2380:13:23;;;2275:129;;;;;;2254:18;;2275:14;;;;;:22;;:129;;;;;;;;;;;;;;2254:18;2275:14;:129;;;5:2:-1;;;;30:1;27;20:12;5:2;2275:129:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2275:129:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2275:129:23;2415:21;;;;:9;2275:129;2415:21;;;;2275:129;;-1:-1:-1;2415:56:23;;2455:16;;2415:56;:::i;:::-;-1:-1:-1;2578:17:23;;2526:13;;2487:148;;;;;;;;;;;;2554:10;;-1:-1:-1;;;;;2526:13:23;;2487:148;;2609:16;;;;2487:148;;;;;2609:16;;;;2487:148;1:33:-1;99:1;81:16;;;74:27;2487:148:23;;137:4:-1;117:14;;;-1:-1;;113:30;157:16;;;2487:148:23;;;;-1:-1:-1;2487:148:23;;-1:-1:-1;;;;2487:148:23;2699:96;;;;;;;;2738:12;2699:96;;2771:13;;-1:-1:-1;;;;;2771:13:23;;;2699:96;;;;;;;2771:13;2668:14;;;-1:-1:-1;2646:38:23;;;;;;;;;:50;;;;;;;;;;:149;;;;;;2771:13;2646:149;;;;;-1:-1:-1;;;;;;2646:149:23;;;;;;;;:50;1988:841;-1:-1:-1;;;1988:841:23:o;2666:345:50:-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;3094:513:23;443:10:50;3203:4:23;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;3182:11:23;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;3228:22:23;;;;:9;:22;;;;;;;;:31;;;;3227:32;3219:41;;;;;;3270:22;;;;3304:4;3270:22;;;;;;;;:31;;:38;;-1:-1:-1;;3270:38:23;;;;;3363:11;;3359:221;;;3487:17;;3410:13;;;3530:22;;;3410:13;3530:22;;;;;;;;;3395:174;;;;;;;3487:6;-1:-1:-1;;3395:174:23;;;;3410:13;3395:174;;;;;;;;;;;;;;;;3450:11;;-1:-1:-1;;;;;3410:13:23;;3395:174;;3530:22;;3395:174;;;;;3530:22;;3395:174;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3359:221;-1:-1:-1;3596:4:23;;3094:513;-1:-1:-1;;;3094:513:23:o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;1067:24:23:-;;;;;;;;;-1:-1:-1;;;;;1067:24:23;;;;;;:::o;678:401:50:-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;1085:::-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;356:3253:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;356:3253:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;356:3253:23;;;-1:-1:-1;356:3253:23;:::i;:::-;;;:::o;:::-;;;;;;;;;;-1:-1:-1;356:3253:23;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\nimport \"../controller/Avatar.sol\";\n\n\n/**\n * @title A scheme for proposing a signal on behalkf of the daoCreator\n */\n\ncontract SignalScheme is VotingMachineCallbacks, ProposalExecuteInterface {\n\n event NewSignalProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n uint256 indexed _signalType,\n string _descriptionHash\n );\n\n event Signal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n uint256 indexed _signalType,\n string _descriptionHash\n );\n\n struct Proposal {\n string descriptionHash;\n bool executed;\n }\n\n struct Parameters {\n bytes32 voteApproveParams;\n IntVoteInterface intVote;\n uint256 signalType;\n Avatar avatar;\n }\n\n mapping(bytes32 => Proposal) public proposals;\n\n Parameters public params;\n\n /**\n * @dev initialize\n * @param _avatar the scheme avatar\n * @param _signalType - signal types\n * @param _voteApproveParams voting machine params\n * @param _intVote voting machine address\n */\n function initialize(Avatar _avatar,\n uint256 _signalType,\n bytes32 _voteApproveParams,\n IntVoteInterface _intVote)\n external {\n require(params.avatar == Avatar(0), \"can be called only one time\");\n require(_avatar != Avatar(0), \"avatar cannot be zero\");\n params = Parameters({\n voteApproveParams: _voteApproveParams,\n signalType: _signalType,\n intVote: _intVote,\n avatar: _avatar\n });\n }\n\n /**\n * @dev Submit a proposal for a dao signal\n * @param _descriptionHash A hash of the proposal's description\n */\n function proposeSignal(\n string calldata _descriptionHash\n )\n external\n returns(bytes32)\n {\n require(Controller(params.avatar.owner()).isSchemeRegistered(address(this), address(params.avatar)),\n \"scheme is not registered\");\n\n bytes32 proposalId = params.intVote.propose(\n 2,\n params.voteApproveParams,\n msg.sender,\n address(params.avatar)\n );\n\n proposals[proposalId].descriptionHash = _descriptionHash;\n\n emit NewSignalProposal(\n address(params.avatar),\n proposalId,\n params.signalType,\n _descriptionHash\n );\n\n proposalsInfo[address(params.intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:params.avatar\n });\n return proposalId;\n }\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _param a parameter of the voting result, 1 yes and 2 is no.\n */\n function executeProposal(bytes32 _proposalId, int256 _param) external onlyVotingMachine(_proposalId) returns(bool) {\n require(!proposals[_proposalId].executed);\n proposals[_proposalId].executed = true;\n // Check if vote was successful:\n if (_param == 1) {\n emit Signal(address(params.avatar),\n _proposalId,\n params.signalType,\n proposals[_proposalId].descriptionHash);\n }\n return true;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/schemes/SignalScheme.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/SignalScheme.sol","exportedSymbols":{"SignalScheme":[8639]},"id":8640,"nodeType":"SourceUnit","nodes":[{"id":8422,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:23"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":8423,"nodeType":"ImportDirective","scope":8640,"sourceUnit":19817,"src":"25:71:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":8424,"nodeType":"ImportDirective","scope":8640,"sourceUnit":20032,"src":"97:86:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":8425,"nodeType":"ImportDirective","scope":8640,"sourceUnit":14651,"src":"184:54:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":8426,"nodeType":"ImportDirective","scope":8640,"sourceUnit":338,"src":"239:34:23","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8427,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"381:22:23","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":8428,"nodeType":"InheritanceSpecifier","src":"381:22:23"},{"arguments":null,"baseName":{"contractScope":null,"id":8429,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"405:24:23","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":8430,"nodeType":"InheritanceSpecifier","src":"405:24:23"}],"contractDependencies":[14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme for proposing a signal on behalkf of the daoCreator","fullyImplemented":true,"id":8639,"linearizedBaseContracts":[8639,19828,14650,20031],"name":"SignalScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8440,"name":"NewSignalProposal","nodeType":"EventDefinition","parameters":{"id":8439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8432,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":8440,"src":"470:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8431,"name":"address","nodeType":"ElementaryTypeName","src":"470:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8434,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8440,"src":"503:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"503:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8436,"indexed":true,"name":"_signalType","nodeType":"VariableDeclaration","scope":8440,"src":"540:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8435,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8438,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":8440,"src":"577:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8437,"name":"string","nodeType":"ElementaryTypeName","src":"577:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"460:146:23"},"src":"437:170:23"},{"anonymous":false,"documentation":null,"id":8450,"name":"Signal","nodeType":"EventDefinition","parameters":{"id":8449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8442,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":8450,"src":"635:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8441,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8444,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8450,"src":"668:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"668:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8446,"indexed":true,"name":"_signalType","nodeType":"VariableDeclaration","scope":8450,"src":"705:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8445,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8448,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":8450,"src":"742:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8447,"name":"string","nodeType":"ElementaryTypeName","src":"742:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"625:146:23"},"src":"613:159:23"},{"canonicalName":"SignalScheme.Proposal","id":8455,"members":[{"constant":false,"id":8452,"name":"descriptionHash","nodeType":"VariableDeclaration","scope":8455,"src":"804:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8451,"name":"string","nodeType":"ElementaryTypeName","src":"804:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":8454,"name":"executed","nodeType":"VariableDeclaration","scope":8455,"src":"836:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8453,"name":"bool","nodeType":"ElementaryTypeName","src":"836:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":8639,"src":"778:78:23","visibility":"public"},{"canonicalName":"SignalScheme.Parameters","id":8464,"members":[{"constant":false,"id":8457,"name":"voteApproveParams","nodeType":"VariableDeclaration","scope":8464,"src":"890:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"890:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8459,"name":"intVote","nodeType":"VariableDeclaration","scope":8464,"src":"925:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":8458,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"925:16:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":8461,"name":"signalType","nodeType":"VariableDeclaration","scope":8464,"src":"959:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8460,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8463,"name":"avatar","nodeType":"VariableDeclaration","scope":8464,"src":"987:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8462,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"987:6:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":8639,"src":"862:145:23","visibility":"public"},{"constant":false,"id":8468,"name":"proposals","nodeType":"VariableDeclaration","scope":8639,"src":"1013:47:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal)"},"typeName":{"id":8467,"keyType":{"id":8465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1021:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1013:30:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal)"},"valueType":{"contractScope":null,"id":8466,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":8455,"src":"1034:8:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage_ptr","typeString":"struct SignalScheme.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":8470,"name":"params","nodeType":"VariableDeclaration","scope":8639,"src":"1067:24:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters"},"typeName":{"contractScope":null,"id":8469,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":8464,"src":"1067:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage_ptr","typeString":"struct SignalScheme.Parameters"}},"value":null,"visibility":"public"},{"body":{"id":8509,"nodeType":"Block","src":"1518:336:23","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8482,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"1536:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"1536:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1560:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8484,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1553:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1553:9:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1536:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1564:29:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":8481,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1528:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1528:66:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8490,"nodeType":"ExpressionStatement","src":"1528:66:23"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8492,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"1612:7:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1630:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8493,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1623:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1623:9:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1612:20:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":8497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1634:23:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":8491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1604:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1604:54:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8499,"nodeType":"ExpressionStatement","src":"1604:54:23"},{"expression":{"argumentTypes":null,"id":8507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8500,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"1668:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8502,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8476,"src":"1721:18:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":8503,"name":"_signalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"1765:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8504,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8478,"src":"1799:8:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},{"argumentTypes":null,"id":8505,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"1829:7:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8501,"name":"Parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8464,"src":"1677:10:23","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Parameters_$8464_storage_ptr_$","typeString":"type(struct SignalScheme.Parameters storage pointer)"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["voteApproveParams","signalType","intVote","avatar"],"nodeType":"FunctionCall","src":"1677:170:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_memory","typeString":"struct SignalScheme.Parameters memory"}},"src":"1668:179:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8508,"nodeType":"ExpressionStatement","src":"1668:179:23"}]},"documentation":"@dev initialize\n@param _avatar the scheme avatar\n@param _signalType - signal types\n@param _voteApproveParams voting machine params\n@param _intVote voting machine address","id":8510,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":8479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8472,"name":"_avatar","nodeType":"VariableDeclaration","scope":8510,"src":"1341:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8471,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1341:6:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":8474,"name":"_signalType","nodeType":"VariableDeclaration","scope":8510,"src":"1381:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1381:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8476,"name":"_voteApproveParams","nodeType":"VariableDeclaration","scope":8510,"src":"1426:26:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8478,"name":"_intVote","nodeType":"VariableDeclaration","scope":8510,"src":"1478:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":8477,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1478:16:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"1340:164:23"},"returnParameters":{"id":8480,"nodeType":"ParameterList","parameters":[],"src":"1518:0:23"},"scope":8639,"src":"1321:533:23","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8588,"nodeType":"Block","src":"2097:732:23","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8526,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21205,"src":"2176:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_SignalScheme_$8639","typeString":"contract SignalScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignalScheme_$8639","typeString":"contract SignalScheme"}],"id":8525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2168:13:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8529,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2191:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2191:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2183:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2183:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8519,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2126:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2126:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2126:19:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2126:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8518,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2115:10:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2115:33:23","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSchemeRegistered","nodeType":"MemberAccess","referencedDeclaration":1653,"src":"2115:52:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2115:91:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d65206973206e6f742072656769737465726564","id":8533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2216:26:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""},"value":"scheme is not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""}],"id":8517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2107:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2107:136:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8535,"nodeType":"ExpressionStatement","src":"2107:136:23"},{"assignments":[8537],"declarations":[{"constant":false,"id":8537,"name":"proposalId","nodeType":"VariableDeclaration","scope":8588,"src":"2254:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2254:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":8551,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":8541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2307:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8542,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2318:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteApproveParams","nodeType":"MemberAccess","referencedDeclaration":8457,"src":"2318:24:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8544,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2352:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2352:10:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8547,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2380:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2380:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2372:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2372:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8538,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2275:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":8459,"src":"2275:14:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":8540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"2275:22:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":8550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2275:129:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2254:150:23"},{"expression":{"argumentTypes":null,"id":8557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8552,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"2415:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8554,"indexExpression":{"argumentTypes":null,"id":8553,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2425:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2415:21:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"descriptionHash","nodeType":"MemberAccess","referencedDeclaration":8452,"src":"2415:37:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8556,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"2455:16:23","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"2415:56:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8558,"nodeType":"ExpressionStatement","src":"2415:56:23"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8561,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2526:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2526:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2518:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":8564,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2554:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8565,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2578:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signalType","nodeType":"MemberAccess","referencedDeclaration":8461,"src":"2578:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8567,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"2609:16:23","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":8559,"name":"NewSignalProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"2487:17:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,uint256,string memory)"}},"id":8568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2487:148:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8569,"nodeType":"EmitStatement","src":"2482:153:23"},{"expression":{"argumentTypes":null,"id":8584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8570,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2646:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":8576,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8572,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2668:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":8459,"src":"2668:14:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":8571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2660:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2660:23:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2646:38:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":8577,"indexExpression":{"argumentTypes":null,"id":8575,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2685:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2646:50:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8579,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2738:5:23","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2738:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2771:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2771:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8578,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"2699:12:23","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":8583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"2699:96:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"2646:149:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":8585,"nodeType":"ExpressionStatement","src":"2646:149:23"},{"expression":{"argumentTypes":null,"id":8586,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2812:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8516,"id":8587,"nodeType":"Return","src":"2805:17:23"}]},"documentation":"@dev Submit a proposal for a dao signal\n@param _descriptionHash A hash of the proposal's description","id":8589,"implemented":true,"kind":"function","modifiers":[],"name":"proposeSignal","nodeType":"FunctionDefinition","parameters":{"id":8513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8512,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":8589,"src":"2020:32:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8511,"name":"string","nodeType":"ElementaryTypeName","src":"2020:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"2010:48:23"},"returnParameters":{"id":8516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8515,"name":"","nodeType":"VariableDeclaration","scope":8589,"src":"2084:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2084:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2083:9:23"},"scope":8639,"src":"1988:841:23","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8637,"nodeType":"Block","src":"3209:398:23","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3227:32:23","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8602,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"3228:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8604,"indexExpression":{"argumentTypes":null,"id":8603,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3238:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3228:22:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":8454,"src":"3228:31:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3219:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:41:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8608,"nodeType":"ExpressionStatement","src":"3219:41:23"},{"expression":{"argumentTypes":null,"id":8614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8609,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"3270:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8611,"indexExpression":{"argumentTypes":null,"id":8610,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3280:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3270:22:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":8454,"src":"3270:31:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":8613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3304:4:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3270:38:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8615,"nodeType":"ExpressionStatement","src":"3270:38:23"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8616,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8593,"src":"3363:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":8617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3373:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3363:11:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8634,"nodeType":"IfStatement","src":"3359:221:23","trueBody":{"id":8633,"nodeType":"Block","src":"3376:204:23","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8621,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"3410:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"3410:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3402:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3402:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":8624,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3450:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8625,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"3487:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signalType","nodeType":"MemberAccess","referencedDeclaration":8461,"src":"3487:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8627,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"3530:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8629,"indexExpression":{"argumentTypes":null,"id":8628,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3540:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3530:22:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"descriptionHash","nodeType":"MemberAccess","referencedDeclaration":8452,"src":"3530:38:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":8619,"name":"Signal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8450,"src":"3395:6:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,uint256,string memory)"}},"id":8631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3395:174:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8632,"nodeType":"EmitStatement","src":"3390:179:23"}]}},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":8635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3596:4:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8600,"id":8636,"nodeType":"Return","src":"3589:11:23"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":8638,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":8596,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3182:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8597,"modifierName":{"argumentTypes":null,"id":8595,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"3164:17:23","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3164:30:23"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":8594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8638,"src":"3119:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3119:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8593,"name":"_param","nodeType":"VariableDeclaration","scope":8638,"src":"3140:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8592,"name":"int256","nodeType":"ElementaryTypeName","src":"3140:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"3118:36:23"},"returnParameters":{"id":8600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8599,"name":"","nodeType":"VariableDeclaration","scope":8638,"src":"3203:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8598,"name":"bool","nodeType":"ElementaryTypeName","src":"3203:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3202:6:23"},"scope":8639,"src":"3094:513:23","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"}],"scope":8640,"src":"356:3253:23"}],"src":"0:3610:23"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/schemes/SignalScheme.sol","exportedSymbols":{"SignalScheme":[8639]},"id":8640,"nodeType":"SourceUnit","nodes":[{"id":8422,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:23"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":8423,"nodeType":"ImportDirective","scope":8640,"sourceUnit":19817,"src":"25:71:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":8424,"nodeType":"ImportDirective","scope":8640,"sourceUnit":20032,"src":"97:86:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":8425,"nodeType":"ImportDirective","scope":8640,"sourceUnit":14651,"src":"184:54:23","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":8426,"nodeType":"ImportDirective","scope":8640,"sourceUnit":338,"src":"239:34:23","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":8427,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"381:22:23","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":8428,"nodeType":"InheritanceSpecifier","src":"381:22:23"},{"arguments":null,"baseName":{"contractScope":null,"id":8429,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"405:24:23","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":8430,"nodeType":"InheritanceSpecifier","src":"405:24:23"}],"contractDependencies":[14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme for proposing a signal on behalkf of the daoCreator","fullyImplemented":true,"id":8639,"linearizedBaseContracts":[8639,19828,14650,20031],"name":"SignalScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":8440,"name":"NewSignalProposal","nodeType":"EventDefinition","parameters":{"id":8439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8432,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":8440,"src":"470:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8431,"name":"address","nodeType":"ElementaryTypeName","src":"470:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8434,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8440,"src":"503:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8433,"name":"bytes32","nodeType":"ElementaryTypeName","src":"503:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8436,"indexed":true,"name":"_signalType","nodeType":"VariableDeclaration","scope":8440,"src":"540:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8435,"name":"uint256","nodeType":"ElementaryTypeName","src":"540:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8438,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":8440,"src":"577:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8437,"name":"string","nodeType":"ElementaryTypeName","src":"577:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"460:146:23"},"src":"437:170:23"},{"anonymous":false,"documentation":null,"id":8450,"name":"Signal","nodeType":"EventDefinition","parameters":{"id":8449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8442,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":8450,"src":"635:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":8441,"name":"address","nodeType":"ElementaryTypeName","src":"635:7:23","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":8444,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8450,"src":"668:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8443,"name":"bytes32","nodeType":"ElementaryTypeName","src":"668:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8446,"indexed":true,"name":"_signalType","nodeType":"VariableDeclaration","scope":8450,"src":"705:27:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8445,"name":"uint256","nodeType":"ElementaryTypeName","src":"705:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8448,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":8450,"src":"742:23:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":8447,"name":"string","nodeType":"ElementaryTypeName","src":"742:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"625:146:23"},"src":"613:159:23"},{"canonicalName":"SignalScheme.Proposal","id":8455,"members":[{"constant":false,"id":8452,"name":"descriptionHash","nodeType":"VariableDeclaration","scope":8455,"src":"804:22:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":8451,"name":"string","nodeType":"ElementaryTypeName","src":"804:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"},{"constant":false,"id":8454,"name":"executed","nodeType":"VariableDeclaration","scope":8455,"src":"836:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8453,"name":"bool","nodeType":"ElementaryTypeName","src":"836:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"Proposal","nodeType":"StructDefinition","scope":8639,"src":"778:78:23","visibility":"public"},{"canonicalName":"SignalScheme.Parameters","id":8464,"members":[{"constant":false,"id":8457,"name":"voteApproveParams","nodeType":"VariableDeclaration","scope":8464,"src":"890:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8456,"name":"bytes32","nodeType":"ElementaryTypeName","src":"890:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8459,"name":"intVote","nodeType":"VariableDeclaration","scope":8464,"src":"925:24:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":8458,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"925:16:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":8461,"name":"signalType","nodeType":"VariableDeclaration","scope":8464,"src":"959:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8460,"name":"uint256","nodeType":"ElementaryTypeName","src":"959:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8463,"name":"avatar","nodeType":"VariableDeclaration","scope":8464,"src":"987:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8462,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"987:6:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":8639,"src":"862:145:23","visibility":"public"},{"constant":false,"id":8468,"name":"proposals","nodeType":"VariableDeclaration","scope":8639,"src":"1013:47:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal)"},"typeName":{"id":8467,"keyType":{"id":8465,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1021:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1013:30:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal)"},"valueType":{"contractScope":null,"id":8466,"name":"Proposal","nodeType":"UserDefinedTypeName","referencedDeclaration":8455,"src":"1034:8:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage_ptr","typeString":"struct SignalScheme.Proposal"}}},"value":null,"visibility":"public"},{"constant":false,"id":8470,"name":"params","nodeType":"VariableDeclaration","scope":8639,"src":"1067:24:23","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters"},"typeName":{"contractScope":null,"id":8469,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":8464,"src":"1067:10:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage_ptr","typeString":"struct SignalScheme.Parameters"}},"value":null,"visibility":"public"},{"body":{"id":8509,"nodeType":"Block","src":"1518:336:23","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8482,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"1536:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8483,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"1536:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1560:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8484,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1553:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1553:9:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1536:26:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"63616e2062652063616c6c6564206f6e6c79206f6e652074696d65","id":8488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1564:29:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""},"value":"can be called only one time"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_61459d8c2e83c03ac4ccaf4013950b2282c585e1eb42ab84ceae1eecfe85edd8","typeString":"literal_string \"can be called only one time\""}],"id":8481,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1528:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1528:66:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8490,"nodeType":"ExpressionStatement","src":"1528:66:23"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":8496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8492,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"1612:7:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":8494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1630:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":8493,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1623:6:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":8495,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1623:9:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1612:20:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6176617461722063616e6e6f74206265207a65726f","id":8497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1634:23:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""},"value":"avatar cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3338e04ce106ab83a89a6f78ac95362796c47f8acb99702d3b473607a80d58e0","typeString":"literal_string \"avatar cannot be zero\""}],"id":8491,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"1604:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1604:54:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8499,"nodeType":"ExpressionStatement","src":"1604:54:23"},{"expression":{"argumentTypes":null,"id":8507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"id":8500,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"1668:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8502,"name":"_voteApproveParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8476,"src":"1721:18:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":8503,"name":"_signalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8474,"src":"1765:11:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8504,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8478,"src":"1799:8:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},{"argumentTypes":null,"id":8505,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8472,"src":"1829:7:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8501,"name":"Parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8464,"src":"1677:10:23","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Parameters_$8464_storage_ptr_$","typeString":"type(struct SignalScheme.Parameters storage pointer)"}},"id":8506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["voteApproveParams","signalType","intVote","avatar"],"nodeType":"FunctionCall","src":"1677:170:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_memory","typeString":"struct SignalScheme.Parameters memory"}},"src":"1668:179:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8508,"nodeType":"ExpressionStatement","src":"1668:179:23"}]},"documentation":"@dev initialize\n@param _avatar the scheme avatar\n@param _signalType - signal types\n@param _voteApproveParams voting machine params\n@param _intVote voting machine address","id":8510,"implemented":true,"kind":"function","modifiers":[],"name":"initialize","nodeType":"FunctionDefinition","parameters":{"id":8479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8472,"name":"_avatar","nodeType":"VariableDeclaration","scope":8510,"src":"1341:14:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":8471,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1341:6:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":8474,"name":"_signalType","nodeType":"VariableDeclaration","scope":8510,"src":"1381:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":8473,"name":"uint256","nodeType":"ElementaryTypeName","src":"1381:7:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":8476,"name":"_voteApproveParams","nodeType":"VariableDeclaration","scope":8510,"src":"1426:26:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8475,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1426:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8478,"name":"_intVote","nodeType":"VariableDeclaration","scope":8510,"src":"1478:25:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":8477,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1478:16:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"1340:164:23"},"returnParameters":{"id":8480,"nodeType":"ParameterList","parameters":[],"src":"1518:0:23"},"scope":8639,"src":"1321:533:23","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8588,"nodeType":"Block","src":"2097:732:23","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8526,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21205,"src":"2176:4:23","typeDescriptions":{"typeIdentifier":"t_contract$_SignalScheme_$8639","typeString":"contract SignalScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SignalScheme_$8639","typeString":"contract SignalScheme"}],"id":8525,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2168:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8527,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2168:13:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8529,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2191:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8530,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2191:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2183:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2183:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8519,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2126:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8520,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2126:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":8521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2126:19:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":8522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2126:21:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":8518,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2115:10:23","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":8523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2115:33:23","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":8524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSchemeRegistered","nodeType":"MemberAccess","referencedDeclaration":1653,"src":"2115:52:23","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":8532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2115:91:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d65206973206e6f742072656769737465726564","id":8533,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2216:26:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""},"value":"scheme is not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""}],"id":8517,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"2107:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":8534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2107:136:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8535,"nodeType":"ExpressionStatement","src":"2107:136:23"},{"assignments":[8537],"declarations":[{"constant":false,"id":8537,"name":"proposalId","nodeType":"VariableDeclaration","scope":8588,"src":"2254:18:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8536,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2254:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":8551,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":8541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2307:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8542,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2318:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteApproveParams","nodeType":"MemberAccess","referencedDeclaration":8457,"src":"2318:24:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8544,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2352:3:23","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":8545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2352:10:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8547,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2380:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8548,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2380:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2372:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2372:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8538,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2275:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8539,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":8459,"src":"2275:14:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":8540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"2275:22:23","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":8550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2275:129:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"2254:150:23"},{"expression":{"argumentTypes":null,"id":8557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8552,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"2415:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8554,"indexExpression":{"argumentTypes":null,"id":8553,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2425:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2415:21:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"descriptionHash","nodeType":"MemberAccess","referencedDeclaration":8452,"src":"2415:37:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":8556,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"2455:16:23","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"2415:56:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":8558,"nodeType":"ExpressionStatement","src":"2415:56:23"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8561,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2526:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8562,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2526:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8560,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2518:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2518:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":8564,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2554:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8565,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2578:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8566,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signalType","nodeType":"MemberAccess","referencedDeclaration":8461,"src":"2578:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":8567,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8512,"src":"2609:16:23","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":8559,"name":"NewSignalProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8440,"src":"2487:17:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,uint256,string memory)"}},"id":8568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2487:148:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8569,"nodeType":"EmitStatement","src":"2482:153:23"},{"expression":{"argumentTypes":null,"id":8584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8570,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2646:13:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":8576,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8572,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2668:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":8459,"src":"2668:14:23","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":8571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2660:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2660:23:23","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2646:38:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":8577,"indexExpression":{"argumentTypes":null,"id":8575,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2685:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2646:50:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8579,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"2738:5:23","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":8580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2738:12:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8581,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"2771:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8582,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"2771:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8578,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"2699:12:23","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":8583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"2699:96:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"2646:149:23","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":8585,"nodeType":"ExpressionStatement","src":"2646:149:23"},{"expression":{"argumentTypes":null,"id":8586,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8537,"src":"2812:10:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":8516,"id":8587,"nodeType":"Return","src":"2805:17:23"}]},"documentation":"@dev Submit a proposal for a dao signal\n@param _descriptionHash A hash of the proposal's description","id":8589,"implemented":true,"kind":"function","modifiers":[],"name":"proposeSignal","nodeType":"FunctionDefinition","parameters":{"id":8513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8512,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":8589,"src":"2020:32:23","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":8511,"name":"string","nodeType":"ElementaryTypeName","src":"2020:6:23","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"2010:48:23"},"returnParameters":{"id":8516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8515,"name":"","nodeType":"VariableDeclaration","scope":8589,"src":"2084:7:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8514,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2084:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2083:9:23"},"scope":8639,"src":"1988:841:23","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":{"id":8637,"nodeType":"Block","src":"3209:398:23","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":8606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3227:32:23","subExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8602,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"3228:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8604,"indexExpression":{"argumentTypes":null,"id":8603,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3238:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3228:22:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8605,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":8454,"src":"3228:31:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":8601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3219:7:23","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":8607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3219:41:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8608,"nodeType":"ExpressionStatement","src":"3219:41:23"},{"expression":{"argumentTypes":null,"id":8614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8609,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"3270:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8611,"indexExpression":{"argumentTypes":null,"id":8610,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3280:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3270:22:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8612,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"executed","nodeType":"MemberAccess","referencedDeclaration":8454,"src":"3270:31:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"hexValue":"74727565","id":8613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3304:4:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"3270:38:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":8615,"nodeType":"ExpressionStatement","src":"3270:38:23"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":8618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":8616,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8593,"src":"3363:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":8617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3373:1:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"3363:11:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":8634,"nodeType":"IfStatement","src":"3359:221:23","trueBody":{"id":8633,"nodeType":"Block","src":"3376:204:23","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8621,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"3410:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8622,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":8463,"src":"3410:13:23","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":8620,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3402:7:23","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":8623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3402:22:23","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":8624,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3450:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":8625,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8470,"src":"3487:6:23","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$8464_storage","typeString":"struct SignalScheme.Parameters storage ref"}},"id":8626,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"signalType","nodeType":"MemberAccess","referencedDeclaration":8461,"src":"3487:17:23","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":8627,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8468,"src":"3530:9:23","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Proposal_$8455_storage_$","typeString":"mapping(bytes32 => struct SignalScheme.Proposal storage ref)"}},"id":8629,"indexExpression":{"argumentTypes":null,"id":8628,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3540:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3530:22:23","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$8455_storage","typeString":"struct SignalScheme.Proposal storage ref"}},"id":8630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"descriptionHash","nodeType":"MemberAccess","referencedDeclaration":8452,"src":"3530:38:23","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":8619,"name":"Signal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8450,"src":"3395:6:23","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,uint256,string memory)"}},"id":8631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3395:174:23","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":8632,"nodeType":"EmitStatement","src":"3390:179:23"}]}},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":8635,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3596:4:23","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":8600,"id":8636,"nodeType":"Return","src":"3589:11:23"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":8638,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":8596,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":8591,"src":"3182:11:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":8597,"modifierName":{"argumentTypes":null,"id":8595,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"3164:17:23","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"3164:30:23"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":8594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8591,"name":"_proposalId","nodeType":"VariableDeclaration","scope":8638,"src":"3119:19:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":8590,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3119:7:23","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":8593,"name":"_param","nodeType":"VariableDeclaration","scope":8638,"src":"3140:13:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":8592,"name":"int256","nodeType":"ElementaryTypeName","src":"3140:6:23","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"3118:36:23"},"returnParameters":{"id":8600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":8599,"name":"","nodeType":"VariableDeclaration","scope":8638,"src":"3203:4:23","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":8598,"name":"bool","nodeType":"ElementaryTypeName","src":"3203:4:23","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"3202:6:23"},"scope":8639,"src":"3094:513:23","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"}],"scope":8640,"src":"356:3253:23"}],"src":"0:3610:23"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.138Z","devdoc":{"methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_param":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"}},"initialize(address,uint256,bytes32,address)":{"details":"initialize","params":{"_avatar":"the scheme avatar","_intVote":"voting machine address","_signalType":"- signal types","_voteApproveParams":"voting machine params"}},"proposeSignal(string)":{"details":"Submit a proposal for a dao signal","params":{"_descriptionHash":"A hash of the proposal's description"}}},"title":"A scheme for proposing a signal on behalkf of the daoCreator"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/TokenCapGC.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/TokenCapGC.json new file mode 100644 index 00000000..82171bfa --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/TokenCapGC.json @@ -0,0 +1 @@ +{"contractName":"TokenCapGC","abi":[{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"contract IERC20","name":"token","type":"address"},{"internalType":"uint256","name":"cap","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_token","type":"address"},{"internalType":"uint256","name":"_cap","type":"uint256"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"pre","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"_paramsHash","type":"bytes32"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"post","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"when","outputs":[{"internalType":"enum GlobalConstraintInterface.CallPhase","name":"","type":"uint8"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"cap\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"post\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"pre\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_cap\",\"type\":\"uint256\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"when\",\"outputs\":[{\"internalType\":\"enum GlobalConstraintInterface.CallPhase\",\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A simple global constraint to cap the number of tokens.\",\"methods\":{\"getParametersHash(address,uint256)\":{\"details\":\"calculate and returns the hash of the given parameters\",\"params\":{\"_cap\":\"the cap to check the total supply against.\",\"_token\":\"the token to add to the params.\"},\"return\":\"the calculated parameters hash\"},\"post(address,bytes32,bytes32)\":{\"details\":\"check the total supply cap.\",\"params\":{\"_paramsHash\":\"the parameters hash to check the total supply cap against.\"},\"return\":\"bool which represents a success\"},\"pre(address,bytes32,bytes32)\":{\"details\":\"check the constraint after the action. This global constraint only checks the state after the action, so here we just return true:\",\"return\":\"true\"},\"setParameters(address,uint256)\":{\"details\":\"adding a new set of parameters\",\"params\":{\"_cap\":\"the cap to check the total supply against.\",\"_token\":\"the token to add to the params.\"},\"return\":\"the calculated parameters hash\"},\"when()\":{\"details\":\"when return if this globalConstraints is pre, post or both.\",\"return\":\"CallPhase enum indication Pre, Post or PreAndPost.\"}},\"title\":\"Token Cap Global Constraint\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/globalConstraints/TokenCapGC.sol\":\"TokenCapGC\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/TokenCapGC.sol\":{\"keccak256\":\"0x1d448583feded201277d4616fddee953604237d4a4a501f22ffc4033f1a683be\",\"urls\":[\"bzz-raw://d563e66e41214580375a44c130a2009ece3404185f460ec75878264e40f18322\",\"dweb:/ipfs/QmcoccCgQq564B6t8meQGYHzrzUNB1V1MCW77m7xdoufmR\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"245:2254:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:2254:5;;;;;;;","deployedSourceMap":"245:2254:5:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;245:2254:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:47;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;484:47:5;;:::i;:::-;;;;-1:-1:-1;;;;;484:47:5;;;;;;;;;;;;;;;;;;;;;1272:152;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1272:152:5;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1905:294;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1905:294:5;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1616:94;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1616:94:5;;;;;;;;;;;;;:::i;759:262::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;759:262:5;;;;;;;;:::i;2360:137::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;484:47;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;484:47:5;;;;;:::o;1272:152::-;1385:30;;;;;;;;-1:-1:-1;;1385:30:5;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;1385:30:5;;;;;;1375:41;;;;;;1272:152::o;1905:294::-;1978:4;1999:23;;;;;;;;;;:29;-1:-1:-1;;;;;1999:29:5;:42;;;;1998:135;;-1:-1:-1;2105:10:5;:23;;;;;;;;;;;;:27;;;;2059:29;;:43;;-1:-1:-1;;;2059:43:5;;;;2105:27;;-1:-1:-1;;;;;2059:29:5;;;;:41;;:43;;;;;;;;;;:29;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;2059:43:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2059:43:5;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2059:43:5;:73;1998:135;1994:178;;;-1:-1:-1;2156:5:5;2149:12;;1994:178;-1:-1:-1;2188:4:5;1905:294;;;;;;:::o;1616:94::-;1699:4;1616:94;;;;;:::o;759:262::-;826:7;845:18;866:31;884:6;892:4;866:17;:31::i;:::-;907:10;:22;;;;;;;;;;:37;;-1:-1:-1;;;;;907:37:5;;-1:-1:-1;;;;;;907:37:5;;;;;;;954:26;:33;;;845:52;-1:-1:-1;;759:262:5;;;;:::o;2360:137::-;2450:40;2360:137;:::o","source":"pragma solidity 0.5.13;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\nimport \"./GlobalConstraintInterface.sol\";\n\n\n/**\n * @title Token Cap Global Constraint\n * @dev A simple global constraint to cap the number of tokens.\n */\n\ncontract TokenCapGC {\n // A set of parameters, on which the cap will be checked:\n struct Parameters {\n IERC20 token;\n uint256 cap;\n }\n\n // Mapping from the hash of the parameters to the parameters themselves:\n mapping (bytes32=>Parameters) public parameters;\n\n /**\n * @dev adding a new set of parameters\n * @param _token the token to add to the params.\n * @param _cap the cap to check the total supply against.\n * @return the calculated parameters hash\n */\n function setParameters(IERC20 _token, uint256 _cap) public returns(bytes32) {\n bytes32 paramsHash = getParametersHash(_token, _cap);\n parameters[paramsHash].token = _token;\n parameters[paramsHash].cap = _cap;\n return paramsHash;\n }\n\n /**\n * @dev calculate and returns the hash of the given parameters\n * @param _token the token to add to the params.\n * @param _cap the cap to check the total supply against.\n * @return the calculated parameters hash\n */\n function getParametersHash(IERC20 _token, uint256 _cap) public pure returns(bytes32) {\n return (keccak256(abi.encodePacked(_token, _cap)));\n }\n\n /**\n * @dev check the constraint after the action.\n * This global constraint only checks the state after the action, so here we just return true:\n * @return true\n */\n function pre(address, bytes32, bytes32) public pure returns(bool) {\n return true;\n }\n\n /**\n * @dev check the total supply cap.\n * @param _paramsHash the parameters hash to check the total supply cap against.\n * @return bool which represents a success\n */\n function post(address, bytes32 _paramsHash, bytes32) public view returns(bool) {\n if ((parameters[_paramsHash].token != IERC20(0)) &&\n (parameters[_paramsHash].token.totalSupply() > parameters[_paramsHash].cap)) {\n return false;\n }\n return true;\n }\n\n /**\n * @dev when return if this globalConstraints is pre, post or both.\n * @return CallPhase enum indication Pre, Post or PreAndPost.\n */\n function when() public pure returns(GlobalConstraintInterface.CallPhase) {\n return GlobalConstraintInterface.CallPhase.Post;\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/globalConstraints/TokenCapGC.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/TokenCapGC.sol","exportedSymbols":{"TokenCapGC":[2037]},"id":2038,"nodeType":"SourceUnit","nodes":[{"id":1909,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:5"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":1910,"nodeType":"ImportDirective","scope":2038,"sourceUnit":21018,"src":"25:64:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","file":"./GlobalConstraintInterface.sol","id":1911,"nodeType":"ImportDirective","scope":2038,"sourceUnit":1908,"src":"90:41:5","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title Token Cap Global Constraint\n@dev A simple global constraint to cap the number of tokens.","fullyImplemented":true,"id":2037,"linearizedBaseContracts":[2037],"name":"TokenCapGC","nodeType":"ContractDefinition","nodes":[{"canonicalName":"TokenCapGC.Parameters","id":1916,"members":[{"constant":false,"id":1913,"name":"token","nodeType":"VariableDeclaration","scope":1916,"src":"361:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1912,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"361:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1915,"name":"cap","nodeType":"VariableDeclaration","scope":1916,"src":"383:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1914,"name":"uint256","nodeType":"ElementaryTypeName","src":"383:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":2037,"src":"333:68:5","visibility":"public"},{"constant":false,"id":1920,"name":"parameters","nodeType":"VariableDeclaration","scope":2037,"src":"484:47:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters)"},"typeName":{"id":1919,"keyType":{"id":1917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"484:29:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters)"},"valueType":{"contractScope":null,"id":1918,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":1916,"src":"502:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage_ptr","typeString":"struct TokenCapGC.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":1952,"nodeType":"Block","src":"835:186:5","statements":[{"assignments":[1930],"declarations":[{"constant":false,"id":1930,"name":"paramsHash","nodeType":"VariableDeclaration","scope":1952,"src":"845:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"845:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":1935,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1932,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1922,"src":"884:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1933,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"892:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1931,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"866:17:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IERC20_$21017_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (contract IERC20,uint256) pure returns (bytes32)"}},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"866:31:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"845:52:5"},{"expression":{"argumentTypes":null,"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1936,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"907:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":1938,"indexExpression":{"argumentTypes":null,"id":1937,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"918:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"907:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":1939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1913,"src":"907:28:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1940,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1922,"src":"938:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"907:37:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":1942,"nodeType":"ExpressionStatement","src":"907:37:5"},{"expression":{"argumentTypes":null,"id":1948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1943,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"954:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":1945,"indexExpression":{"argumentTypes":null,"id":1944,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"965:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"954:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":1946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"cap","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"954:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1947,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"983:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"954:33:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1949,"nodeType":"ExpressionStatement","src":"954:33:5"},{"expression":{"argumentTypes":null,"id":1950,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"1004:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1928,"id":1951,"nodeType":"Return","src":"997:17:5"}]},"documentation":"@dev adding a new set of parameters\n@param _token the token to add to the params.\n@param _cap the cap to check the total supply against.\n@return the calculated parameters hash","id":1953,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":1925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1922,"name":"_token","nodeType":"VariableDeclaration","scope":1953,"src":"782:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1921,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"782:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1924,"name":"_cap","nodeType":"VariableDeclaration","scope":1953,"src":"797:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1923,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"781:29:5"},"returnParameters":{"id":1928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1927,"name":"","nodeType":"VariableDeclaration","scope":1953,"src":"826:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"826:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"825:9:5"},"scope":2037,"src":"759:262:5","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1971,"nodeType":"Block","src":"1357:67:5","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1965,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"1402:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1966,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1410:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"1385:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1385:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1385:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1962,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"1375:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1375:41:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1969,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1374:43:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1961,"id":1970,"nodeType":"Return","src":"1367:50:5"}]},"documentation":"@dev calculate and returns the hash of the given parameters\n@param _token the token to add to the params.\n@param _cap the cap to check the total supply against.\n@return the calculated parameters hash","id":1972,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":1958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1955,"name":"_token","nodeType":"VariableDeclaration","scope":1972,"src":"1299:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1954,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1299:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1957,"name":"_cap","nodeType":"VariableDeclaration","scope":1972,"src":"1314:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1956,"name":"uint256","nodeType":"ElementaryTypeName","src":"1314:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1298:29:5"},"returnParameters":{"id":1961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1960,"name":"","nodeType":"VariableDeclaration","scope":1972,"src":"1348:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1348:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1347:9:5"},"scope":2037,"src":"1272:152:5","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":1985,"nodeType":"Block","src":"1682:28:5","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1699:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1982,"id":1984,"nodeType":"Return","src":"1692:11:5"}]},"documentation":"@dev check the constraint after the action.\nThis global constraint only checks the state after the action, so here we just return true:\n@return true","id":1986,"implemented":true,"kind":"function","modifiers":[],"name":"pre","nodeType":"FunctionDefinition","parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1974,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1629:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1973,"name":"address","nodeType":"ElementaryTypeName","src":"1629:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1976,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1638:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1638:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1978,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1647:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1647:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1628:27:5"},"returnParameters":{"id":1982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1981,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1676:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1980,"name":"bool","nodeType":"ElementaryTypeName","src":"1676:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1675:6:5"},"scope":2037,"src":"1616:94:5","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":2025,"nodeType":"Block","src":"1984:215:5","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1997,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"1999:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":1999,"indexExpression":{"argumentTypes":null,"id":1998,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"2010:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1999:23:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":2000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1913,"src":"1999:29:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2039: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":2001,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"2032:6:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":2003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2032:9:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"1999:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2005,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1998:44:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2006,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"2059:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":2008,"indexExpression":{"argumentTypes":null,"id":2007,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"2070:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2059:23:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":2009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1913,"src":"2059:29:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":20955,"src":"2059:41:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2059:43:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2012,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"2105:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":2014,"indexExpression":{"argumentTypes":null,"id":2013,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"2116:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2105:23:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":2015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cap","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"2105:27:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2059:73:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2058:75:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1998:135:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2022,"nodeType":"IfStatement","src":"1994:178:5","trueBody":{"id":2021,"nodeType":"Block","src":"2135:37:5","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":2019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2156:5:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1996,"id":2020,"nodeType":"Return","src":"2149:12:5"}]}},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2188:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1996,"id":2024,"nodeType":"Return","src":"2181:11:5"}]},"documentation":"@dev check the total supply cap.\n@param _paramsHash the parameters hash to check the total supply cap against.\n@return bool which represents a success","id":2026,"implemented":true,"kind":"function","modifiers":[],"name":"post","nodeType":"FunctionDefinition","parameters":{"id":1993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1988,"name":"","nodeType":"VariableDeclaration","scope":2026,"src":"1919:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1987,"name":"address","nodeType":"ElementaryTypeName","src":"1919:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1990,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":2026,"src":"1928:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1928:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1992,"name":"","nodeType":"VariableDeclaration","scope":2026,"src":"1949:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1949:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1918:39:5"},"returnParameters":{"id":1996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1995,"name":"","nodeType":"VariableDeclaration","scope":2026,"src":"1978:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1994,"name":"bool","nodeType":"ElementaryTypeName","src":"1978:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1977:6:5"},"scope":2037,"src":"1905:294:5","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":2035,"nodeType":"Block","src":"2433:64:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2031,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"2450:25:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"2450:35:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":2033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2450:40:5","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"functionReturnParameters":2030,"id":2034,"nodeType":"Return","src":"2443:47:5"}]},"documentation":"@dev when return if this globalConstraints is pre, post or both.\n@return CallPhase enum indication Pre, Post or PreAndPost.","id":2036,"implemented":true,"kind":"function","modifiers":[],"name":"when","nodeType":"FunctionDefinition","parameters":{"id":2027,"nodeType":"ParameterList","parameters":[],"src":"2373:2:5"},"returnParameters":{"id":2030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2029,"name":"","nodeType":"VariableDeclaration","scope":2036,"src":"2396:35:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":2028,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"2396:35:5","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"2395:37:5"},"scope":2037,"src":"2360:137:5","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":2038,"src":"245:2254:5"}],"src":"0:2500:5"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/TokenCapGC.sol","exportedSymbols":{"TokenCapGC":[2037]},"id":2038,"nodeType":"SourceUnit","nodes":[{"id":1909,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:5"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":1910,"nodeType":"ImportDirective","scope":2038,"sourceUnit":21018,"src":"25:64:5","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol","file":"./GlobalConstraintInterface.sol","id":1911,"nodeType":"ImportDirective","scope":2038,"sourceUnit":1908,"src":"90:41:5","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":"@title Token Cap Global Constraint\n@dev A simple global constraint to cap the number of tokens.","fullyImplemented":true,"id":2037,"linearizedBaseContracts":[2037],"name":"TokenCapGC","nodeType":"ContractDefinition","nodes":[{"canonicalName":"TokenCapGC.Parameters","id":1916,"members":[{"constant":false,"id":1913,"name":"token","nodeType":"VariableDeclaration","scope":1916,"src":"361:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1912,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"361:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1915,"name":"cap","nodeType":"VariableDeclaration","scope":1916,"src":"383:11:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1914,"name":"uint256","nodeType":"ElementaryTypeName","src":"383:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":2037,"src":"333:68:5","visibility":"public"},{"constant":false,"id":1920,"name":"parameters","nodeType":"VariableDeclaration","scope":2037,"src":"484:47:5","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters)"},"typeName":{"id":1919,"keyType":{"id":1917,"name":"bytes32","nodeType":"ElementaryTypeName","src":"493:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"484:29:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters)"},"valueType":{"contractScope":null,"id":1918,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":1916,"src":"502:10:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage_ptr","typeString":"struct TokenCapGC.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":1952,"nodeType":"Block","src":"835:186:5","statements":[{"assignments":[1930],"declarations":[{"constant":false,"id":1930,"name":"paramsHash","nodeType":"VariableDeclaration","scope":1952,"src":"845:18:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1929,"name":"bytes32","nodeType":"ElementaryTypeName","src":"845:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":1935,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1932,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1922,"src":"884:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1933,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"892:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1931,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"866:17:5","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_contract$_IERC20_$21017_$_t_uint256_$returns$_t_bytes32_$","typeString":"function (contract IERC20,uint256) pure returns (bytes32)"}},"id":1934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"866:31:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"845:52:5"},{"expression":{"argumentTypes":null,"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1936,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"907:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":1938,"indexExpression":{"argumentTypes":null,"id":1937,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"918:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"907:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":1939,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1913,"src":"907:28:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1940,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1922,"src":"938:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"907:37:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":1942,"nodeType":"ExpressionStatement","src":"907:37:5"},{"expression":{"argumentTypes":null,"id":1948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1943,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"954:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":1945,"indexExpression":{"argumentTypes":null,"id":1944,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"965:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"954:22:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":1946,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"cap","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"954:26:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":1947,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"983:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"954:33:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1949,"nodeType":"ExpressionStatement","src":"954:33:5"},{"expression":{"argumentTypes":null,"id":1950,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1930,"src":"1004:10:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1928,"id":1951,"nodeType":"Return","src":"997:17:5"}]},"documentation":"@dev adding a new set of parameters\n@param _token the token to add to the params.\n@param _cap the cap to check the total supply against.\n@return the calculated parameters hash","id":1953,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":1925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1922,"name":"_token","nodeType":"VariableDeclaration","scope":1953,"src":"782:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1921,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"782:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1924,"name":"_cap","nodeType":"VariableDeclaration","scope":1953,"src":"797:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1923,"name":"uint256","nodeType":"ElementaryTypeName","src":"797:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"781:29:5"},"returnParameters":{"id":1928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1927,"name":"","nodeType":"VariableDeclaration","scope":1953,"src":"826:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1926,"name":"bytes32","nodeType":"ElementaryTypeName","src":"826:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"825:9:5"},"scope":2037,"src":"759:262:5","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":1971,"nodeType":"Block","src":"1357:67:5","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":1965,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1955,"src":"1402:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":1966,"name":"_cap","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1957,"src":"1410:4:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":1963,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"1385:3:5","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1964,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1385:16:5","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":1967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1385:30:5","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":1962,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"1375:9:5","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1375:41:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1969,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1374:43:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1961,"id":1970,"nodeType":"Return","src":"1367:50:5"}]},"documentation":"@dev calculate and returns the hash of the given parameters\n@param _token the token to add to the params.\n@param _cap the cap to check the total supply against.\n@return the calculated parameters hash","id":1972,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":1958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1955,"name":"_token","nodeType":"VariableDeclaration","scope":1972,"src":"1299:13:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":1954,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1299:6:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":1957,"name":"_cap","nodeType":"VariableDeclaration","scope":1972,"src":"1314:12:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1956,"name":"uint256","nodeType":"ElementaryTypeName","src":"1314:7:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"1298:29:5"},"returnParameters":{"id":1961,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1960,"name":"","nodeType":"VariableDeclaration","scope":1972,"src":"1348:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1959,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1348:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1347:9:5"},"scope":2037,"src":"1272:152:5","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":1985,"nodeType":"Block","src":"1682:28:5","statements":[{"expression":{"argumentTypes":null,"hexValue":"74727565","id":1983,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1699:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1982,"id":1984,"nodeType":"Return","src":"1692:11:5"}]},"documentation":"@dev check the constraint after the action.\nThis global constraint only checks the state after the action, so here we just return true:\n@return true","id":1986,"implemented":true,"kind":"function","modifiers":[],"name":"pre","nodeType":"FunctionDefinition","parameters":{"id":1979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1974,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1629:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1973,"name":"address","nodeType":"ElementaryTypeName","src":"1629:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1976,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1638:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1638:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1978,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1647:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1977,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1647:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1628:27:5"},"returnParameters":{"id":1982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1981,"name":"","nodeType":"VariableDeclaration","scope":1986,"src":"1676:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1980,"name":"bool","nodeType":"ElementaryTypeName","src":"1676:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1675:6:5"},"scope":2037,"src":"1616:94:5","stateMutability":"pure","superFunction":null,"visibility":"public"},{"body":{"id":2025,"nodeType":"Block","src":"1984:215:5","statements":[{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":2018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"id":2004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":1997,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"1999:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":1999,"indexExpression":{"argumentTypes":null,"id":1998,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"2010:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1999:23:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":2000,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1913,"src":"1999:29:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":2002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2039: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":2001,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21017,"src":"2032:6:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$21017_$","typeString":"type(contract IERC20)"}},"id":2003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2032:9:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"src":"1999:42:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2005,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1998:44:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"components":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2006,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"2059:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":2008,"indexExpression":{"argumentTypes":null,"id":2007,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"2070:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2059:23:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":2009,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"token","nodeType":"MemberAccess","referencedDeclaration":1913,"src":"2059:29:5","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":2010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":20955,"src":"2059:41:5","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2059:43:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":2012,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1920,"src":"2105:10:5","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$1916_storage_$","typeString":"mapping(bytes32 => struct TokenCapGC.Parameters storage ref)"}},"id":2014,"indexExpression":{"argumentTypes":null,"id":2013,"name":"_paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"2116:11:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2105:23:5","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$1916_storage","typeString":"struct TokenCapGC.Parameters storage ref"}},"id":2015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"cap","nodeType":"MemberAccess","referencedDeclaration":1915,"src":"2105:27:5","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2059:73:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":2017,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2058:75:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"1998:135:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":2022,"nodeType":"IfStatement","src":"1994:178:5","trueBody":{"id":2021,"nodeType":"Block","src":"2135:37:5","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":2019,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2156:5:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":1996,"id":2020,"nodeType":"Return","src":"2149:12:5"}]}},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":2023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2188:4:5","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":1996,"id":2024,"nodeType":"Return","src":"2181:11:5"}]},"documentation":"@dev check the total supply cap.\n@param _paramsHash the parameters hash to check the total supply cap against.\n@return bool which represents a success","id":2026,"implemented":true,"kind":"function","modifiers":[],"name":"post","nodeType":"FunctionDefinition","parameters":{"id":1993,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1988,"name":"","nodeType":"VariableDeclaration","scope":2026,"src":"1919:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1987,"name":"address","nodeType":"ElementaryTypeName","src":"1919:7:5","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":1990,"name":"_paramsHash","nodeType":"VariableDeclaration","scope":2026,"src":"1928:19:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1989,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1928:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":1992,"name":"","nodeType":"VariableDeclaration","scope":2026,"src":"1949:7:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1991,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1949:7:5","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1918:39:5"},"returnParameters":{"id":1996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1995,"name":"","nodeType":"VariableDeclaration","scope":2026,"src":"1978:4:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1994,"name":"bool","nodeType":"ElementaryTypeName","src":"1978:4:5","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1977:6:5"},"scope":2037,"src":"1905:294:5","stateMutability":"view","superFunction":null,"visibility":"public"},{"body":{"id":2035,"nodeType":"Block","src":"2433:64:5","statements":[{"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":2031,"name":"GlobalConstraintInterface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1907,"src":"2450:25:5","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_GlobalConstraintInterface_$1907_$","typeString":"type(contract GlobalConstraintInterface)"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"CallPhase","nodeType":"MemberAccess","referencedDeclaration":1879,"src":"2450:35:5","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_CallPhase_$1879_$","typeString":"type(enum GlobalConstraintInterface.CallPhase)"}},"id":2033,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"Post","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2450:40:5","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"functionReturnParameters":2030,"id":2034,"nodeType":"Return","src":"2443:47:5"}]},"documentation":"@dev when return if this globalConstraints is pre, post or both.\n@return CallPhase enum indication Pre, Post or PreAndPost.","id":2036,"implemented":true,"kind":"function","modifiers":[],"name":"when","nodeType":"FunctionDefinition","parameters":{"id":2027,"nodeType":"ParameterList","parameters":[],"src":"2373:2:5"},"returnParameters":{"id":2030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2029,"name":"","nodeType":"VariableDeclaration","scope":2036,"src":"2396:35:5","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"},"typeName":{"contractScope":null,"id":2028,"name":"GlobalConstraintInterface.CallPhase","nodeType":"UserDefinedTypeName","referencedDeclaration":1879,"src":"2396:35:5","typeDescriptions":{"typeIdentifier":"t_enum$_CallPhase_$1879","typeString":"enum GlobalConstraintInterface.CallPhase"}},"value":null,"visibility":"internal"}],"src":"2395:37:5"},"scope":2037,"src":"2360:137:5","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":2038,"src":"245:2254:5"}],"src":"0:2500:5"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.064Z","devdoc":{"details":"A simple global constraint to cap the number of tokens.","methods":{"getParametersHash(address,uint256)":{"details":"calculate and returns the hash of the given parameters","params":{"_cap":"the cap to check the total supply against.","_token":"the token to add to the params."},"return":"the calculated parameters hash"},"post(address,bytes32,bytes32)":{"details":"check the total supply cap.","params":{"_paramsHash":"the parameters hash to check the total supply cap against."},"return":"bool which represents a success"},"pre(address,bytes32,bytes32)":{"details":"check the constraint after the action. This global constraint only checks the state after the action, so here we just return true:","return":"true"},"setParameters(address,uint256)":{"details":"adding a new set of parameters","params":{"_cap":"the cap to check the total supply against.","_token":"the token to add to the params."},"return":"the calculated parameters hash"},"when()":{"details":"when return if this globalConstraints is pre, post or both.","return":"CallPhase enum indication Pre, Post or PreAndPost."}},"title":"Token Cap Global Constraint"},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalScheme.json new file mode 100644 index 00000000..9b494e44 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalScheme.json @@ -0,0 +1 @@ +{"contractName":"UniversalScheme","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":\"UniversalScheme\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"142:472:43:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;142:472:43;;;;;;;","deployedSourceMap":"142:472:43:-;;;;;","source":"pragma solidity 0.5.13;\n\nimport \"./UniversalSchemeInterface.sol\";\nimport \"../controller/Controller.sol\";\nimport \"../controller/Avatar.sol\";\n\n\ncontract UniversalScheme is UniversalSchemeInterface {\n /**\n * @dev get the parameters for the current scheme from the controller\n */\n function getParametersFromController(Avatar _avatar) internal view returns(bytes32) {\n require(Controller(_avatar.owner()).isSchemeRegistered(address(this), address(_avatar)),\n \"scheme is not registered\");\n return Controller(_avatar.owner()).getSchemeParameters(address(this), address(_avatar));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","exportedSymbols":{"UniversalScheme":[12634]},"id":12635,"nodeType":"SourceUnit","nodes":[{"id":12589,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:43"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol","file":"./UniversalSchemeInterface.sol","id":12590,"nodeType":"ImportDirective","scope":12635,"sourceUnit":12646,"src":"25:40:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":12591,"nodeType":"ImportDirective","scope":12635,"sourceUnit":1798,"src":"66:38:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":12592,"nodeType":"ImportDirective","scope":12635,"sourceUnit":338,"src":"105:34:43","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":12593,"name":"UniversalSchemeInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":12645,"src":"170:24:43","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalSchemeInterface_$12645","typeString":"contract UniversalSchemeInterface"}},"id":12594,"nodeType":"InheritanceSpecifier","src":"170:24:43"}],"contractDependencies":[12645],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":12634,"linearizedBaseContracts":[12634,12645],"name":"UniversalScheme","nodeType":"ContractDefinition","nodes":[{"body":{"id":12632,"nodeType":"Block","src":"374:238:43","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12609,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21161,"src":"447:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}],"id":12608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"439:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"439:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12612,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"462:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"454:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"454:16:43","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12603,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"403:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"403:13:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"403:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12602,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"392:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"392:27:43","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSchemeRegistered","nodeType":"MemberAccess","referencedDeclaration":1653,"src":"392:46:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":12614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"392:79:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d65206973206e6f742072656769737465726564","id":12615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:26:43","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""},"value":"scheme is not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""}],"id":12601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"384:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"384:124:43","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12617,"nodeType":"ExpressionStatement","src":"384:124:43"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12625,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21161,"src":"581:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}],"id":12624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"573:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"573:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12628,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"596:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"588:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"588:16:43","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12619,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"536:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"536:13:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"536:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12618,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"525:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"525:27:43","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getSchemeParameters","nodeType":"MemberAccess","referencedDeclaration":1671,"src":"525:47:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (address,address) view external returns (bytes32)"}},"id":12630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"525:80:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12600,"id":12631,"nodeType":"Return","src":"518:87:43"}]},"documentation":" @dev get the parameters for the current scheme from the controller","id":12633,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersFromController","nodeType":"FunctionDefinition","parameters":{"id":12597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12596,"name":"_avatar","nodeType":"VariableDeclaration","scope":12633,"src":"327:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12595,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"327:6:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"326:16:43"},"returnParameters":{"id":12600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12599,"name":"","nodeType":"VariableDeclaration","scope":12633,"src":"365:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"364:9:43"},"scope":12634,"src":"290:322:43","stateMutability":"view","superFunction":12644,"visibility":"internal"}],"scope":12635,"src":"142:472:43"}],"src":"0:615:43"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","exportedSymbols":{"UniversalScheme":[12634]},"id":12635,"nodeType":"SourceUnit","nodes":[{"id":12589,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:43"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol","file":"./UniversalSchemeInterface.sol","id":12590,"nodeType":"ImportDirective","scope":12635,"sourceUnit":12646,"src":"25:40:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":12591,"nodeType":"ImportDirective","scope":12635,"sourceUnit":1798,"src":"66:38:43","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":12592,"nodeType":"ImportDirective","scope":12635,"sourceUnit":338,"src":"105:34:43","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":12593,"name":"UniversalSchemeInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":12645,"src":"170:24:43","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalSchemeInterface_$12645","typeString":"contract UniversalSchemeInterface"}},"id":12594,"nodeType":"InheritanceSpecifier","src":"170:24:43"}],"contractDependencies":[12645],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":12634,"linearizedBaseContracts":[12634,12645],"name":"UniversalScheme","nodeType":"ContractDefinition","nodes":[{"body":{"id":12632,"nodeType":"Block","src":"374:238:43","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12609,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21161,"src":"447:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}],"id":12608,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"439:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"439:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12612,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"462:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"454:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12613,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"454:16:43","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12603,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"403:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"403:13:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"403:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12602,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"392:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"392:27:43","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"isSchemeRegistered","nodeType":"MemberAccess","referencedDeclaration":1653,"src":"392:46:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":12614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"392:79:43","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"736368656d65206973206e6f742072656769737465726564","id":12615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:26:43","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""},"value":"scheme is not registered"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f49accaed0fc85cca97fe84c1d1aed7770001ae630847b7bcf2d35045e44c8d1","typeString":"literal_string \"scheme is not registered\""}],"id":12601,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"384:7:43","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":12616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"384:124:43","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12617,"nodeType":"ExpressionStatement","src":"384:124:43"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12625,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21161,"src":"581:4:43","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}],"id":12624,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"573:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"573:13:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12628,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"596:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12627,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"588:7:43","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"588:16:43","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12619,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12596,"src":"536:7:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"536:13:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"536:15:43","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12618,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"525:10:43","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"525:27:43","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getSchemeParameters","nodeType":"MemberAccess","referencedDeclaration":1671,"src":"525:47:43","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (address,address) view external returns (bytes32)"}},"id":12630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"525:80:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12600,"id":12631,"nodeType":"Return","src":"518:87:43"}]},"documentation":" @dev get the parameters for the current scheme from the controller","id":12633,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersFromController","nodeType":"FunctionDefinition","parameters":{"id":12597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12596,"name":"_avatar","nodeType":"VariableDeclaration","scope":12633,"src":"327:14:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12595,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"327:6:43","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"326:16:43"},"returnParameters":{"id":12600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12599,"name":"","nodeType":"VariableDeclaration","scope":12633,"src":"365:7:43","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12598,"name":"bytes32","nodeType":"ElementaryTypeName","src":"365:7:43","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"364:9:43"},"scope":12634,"src":"290:322:43","stateMutability":"view","superFunction":12644,"visibility":"internal"}],"scope":12635,"src":"142:472:43"}],"src":"0:615:43"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.202Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalSchemeInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalSchemeInterface.json new file mode 100644 index 00000000..a8f25a09 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalSchemeInterface.json @@ -0,0 +1 @@ +{"contractName":"UniversalSchemeInterface","abi":[],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":\"UniversalSchemeInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity 0.5.13;\n\nimport \"../controller/Avatar.sol\";\n\ncontract UniversalSchemeInterface {\n\n function getParametersFromController(Avatar _avatar) internal view returns(bytes32);\n \n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol","exportedSymbols":{"UniversalSchemeInterface":[12645]},"id":12646,"nodeType":"SourceUnit","nodes":[{"id":12636,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:44"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":12637,"nodeType":"ImportDirective","scope":12646,"sourceUnit":338,"src":"25:34:44","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":12645,"linearizedBaseContracts":[12645],"name":"UniversalSchemeInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":12644,"implemented":false,"kind":"function","modifiers":[],"name":"getParametersFromController","nodeType":"FunctionDefinition","parameters":{"id":12640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12639,"name":"_avatar","nodeType":"VariableDeclaration","scope":12644,"src":"139:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12638,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"139:6:44","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"138:16:44"},"returnParameters":{"id":12643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12642,"name":"","nodeType":"VariableDeclaration","scope":12644,"src":"177:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"176:9:44"},"scope":12645,"src":"102:84:44","stateMutability":"view","superFunction":null,"visibility":"internal"}],"scope":12646,"src":"61:132:44"}],"src":"0:194:44"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol","exportedSymbols":{"UniversalSchemeInterface":[12645]},"id":12646,"nodeType":"SourceUnit","nodes":[{"id":12636,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:44"},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Avatar.sol","file":"../controller/Avatar.sol","id":12637,"nodeType":"ImportDirective","scope":12646,"sourceUnit":338,"src":"25:34:44","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"contract","documentation":null,"fullyImplemented":false,"id":12645,"linearizedBaseContracts":[12645],"name":"UniversalSchemeInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":12644,"implemented":false,"kind":"function","modifiers":[],"name":"getParametersFromController","nodeType":"FunctionDefinition","parameters":{"id":12640,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12639,"name":"_avatar","nodeType":"VariableDeclaration","scope":12644,"src":"139:14:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12638,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"139:6:44","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"src":"138:16:44"},"returnParameters":{"id":12643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12642,"name":"","nodeType":"VariableDeclaration","scope":12644,"src":"177:7:44","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12641,"name":"bytes32","nodeType":"ElementaryTypeName","src":"177:7:44","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"176:9:44"},"scope":12645,"src":"102:84:44","stateMutability":"view","superFunction":null,"visibility":"internal"}],"scope":12646,"src":"61:132:44"}],"src":"0:194:44"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.209Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalSchemeMock.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalSchemeMock.json new file mode 100644 index 00000000..81e3983b --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UniversalSchemeMock.json @@ -0,0 +1 @@ +{"contractName":"UniversalSchemeMock","abi":[{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_contract","type":"address"},{"internalType":"uint256","name":"_a","type":"uint256"},{"internalType":"address","name":"_b","type":"address"},{"internalType":"bytes32","name":"_c","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"genericCall","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_contract","type":"address"},{"internalType":"uint256","name":"_a","type":"uint256"},{"internalType":"address","name":"_b","type":"address"},{"internalType":"bytes32","name":"_c","type":"bytes32"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"genericCallDirect","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"bytes","name":"","type":"bytes"}],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_a\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_b\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_c\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"genericCall\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_contract\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_a\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_b\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_c\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"genericCallDirect\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/UniversalSchemeMock.sol\":\"UniversalSchemeMock\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/test/UniversalSchemeMock.sol\":{\"keccak256\":\"0x997b22ddcba7ae1c452b57b8aed0c6c55fc732f4656ce4f81295e3b21e0890db\",\"urls\":[\"bzz-raw://9a524ea8ba052e061ec141eed11ca043f89f47c3cacf74c9c8bdd5233c6df6c8\",\"dweb:/ipfs/QmR8SV4nBfgWugX2wb1dSem9jFVDvgurgGxtRuHxbXpr4e\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"116:740:36:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:740:36;;;;;;;","deployedSourceMap":"116:740:36:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;116:740:36;;;;;;;;;;;;;;;;;;;;;;;;540:314;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;540:314:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;540:314:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;171:363;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;171:363:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;540:314::-;762:68;;;;;;;;;;-1:-1:-1;;;;;762:68:36;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;6:49;;762:68:36;;;;;;;25:18:-1;;61:17;;-1:-1;;;;;182:15;-1:-1;;;179:29;160:49;;714:133:36;;-1:-1:-1;;;714:133:36;;;;;;;;;;;;;;;;;679:12;714:133;;;;;;;;;;;;;;;;;673:4;;679:12;;714:19;;;;;;743:9;;762:68;;840:6;;714:133;;;;;;25:18:-1;714:133:36;;25:18:-1;673:4:36;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;714:133:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;714:133:36;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;714:133:36;;;;;;39:16:-1;36:1;17:17;2:54;101:4;714:133:36;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;714:133:36;;;;;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;714:133:36;;420:4:-1;411:14;;;;714:133:36;;;;;411:14:-1;714:133:36;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;714:133:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;707:140;;;;540:314;;;;;;;;;:::o;171:363::-;298:4;304:12;333:18;354:7;-1:-1:-1;;;;;354:13:36;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;354:15:36;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;354:15:36;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;354:15:36;;;;;;;;;;;;;;;;333:36;;397:10;-1:-1:-1;;;;;386:34:36;;430:9;498:2;502;506;441:68;;;;;;;;;;;-1:-1:-1;;;;;441:68:36;-1:-1:-1;;;;;441:68:36;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;441:68:36;;;-1:-1:-1;;;;;;;;441:68:36;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;441:68:36;511:7;520:6;386:141;;;;;;;;;;;;;-1:-1:-1;;;;;386:141:36;-1:-1:-1;;;;;386:141:36;;;;;;;;;-1:-1:-1;;;;;386:141:36;-1:-1:-1;;;;;386:141:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;386:141:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;386:141:36;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;386:141:36;;;;;;39:16:-1;36:1;17:17;2:54;101:4;386:141:36;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;386:141:36;;;;;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;386:141:36;;420:4:-1;411:14;;;;386:141:36;;;;;411:14:-1;386:141:36;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;386:141:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;379:148;;;;;171:363;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"../universalSchemes/UniversalScheme.sol\";\nimport \"../controller/Controller.sol\";\n\n\ncontract UniversalSchemeMock is UniversalScheme {\n\n function genericCall(Avatar _avatar, address _contract, uint256 _a, address _b, bytes32 _c, uint256 _value)\n public returns(bool, bytes memory)\n {\n\n address controller = _avatar.owner();\n return Controller(controller).genericCall(\n _contract, abi.encodeWithSignature(\"test(uint256,address,bytes32)\", _a, _b, _c), _avatar, _value);\n }\n\n function genericCallDirect(Avatar _avatar, address _contract, uint256 _a, address _b, bytes32 _c, uint256 _value)\n public returns(bool, bytes memory)\n {\n return _avatar.genericCall(\n _contract,\n abi.encodeWithSignature(\"test(uint256,address,bytes32)\", _a, _b, _c),\n _value);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/UniversalSchemeMock.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/UniversalSchemeMock.sol","exportedSymbols":{"UniversalSchemeMock":[9566]},"id":9567,"nodeType":"SourceUnit","nodes":[{"id":9486,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:36"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"../universalSchemes/UniversalScheme.sol","id":9487,"nodeType":"ImportDirective","scope":9567,"sourceUnit":12635,"src":"25:49:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":9488,"nodeType":"ImportDirective","scope":9567,"sourceUnit":1798,"src":"75:38:36","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9489,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"148:15:36","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":9490,"nodeType":"InheritanceSpecifier","src":"148:15:36"}],"contractDependencies":[12634,12645],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9566,"linearizedBaseContracts":[9566,12634,12645],"name":"UniversalSchemeMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":9531,"nodeType":"Block","src":"322:212:36","statements":[{"assignments":[9510],"declarations":[{"constant":false,"id":9510,"name":"controller","nodeType":"VariableDeclaration","scope":9531,"src":"333:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9509,"name":"address","nodeType":"ElementaryTypeName","src":"333:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":9514,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":9511,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"354:7:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":9512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"354:13:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":9513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"354:15:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"333:36:36"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9519,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"430:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"746573742875696e743235362c616464726573732c6279746573333229","id":9522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"465:31:36","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},"value":"test(uint256,address,bytes32)"},{"argumentTypes":null,"id":9523,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"498:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9524,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"502:2:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9525,"name":"_c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"506:2:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":9520,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"441:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"441:23:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"441:68:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":9527,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"511:7:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":9528,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9502,"src":"520:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9516,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9510,"src":"397:10:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9515,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"386:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"386:22:36","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":9518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":1475,"src":"386:34:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_contract$_Avatar_$337_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,contract Avatar,uint256) external returns (bool,bytes memory)"}},"id":9529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"386:141:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":9508,"id":9530,"nodeType":"Return","src":"379:148:36"}]},"documentation":null,"id":9532,"implemented":true,"kind":"function","modifiers":[],"name":"genericCall","nodeType":"FunctionDefinition","parameters":{"id":9503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9492,"name":"_avatar","nodeType":"VariableDeclaration","scope":9532,"src":"192:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":9491,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"192:6:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":9494,"name":"_contract","nodeType":"VariableDeclaration","scope":9532,"src":"208:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9493,"name":"address","nodeType":"ElementaryTypeName","src":"208:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9496,"name":"_a","nodeType":"VariableDeclaration","scope":9532,"src":"227:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9495,"name":"uint256","nodeType":"ElementaryTypeName","src":"227:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9498,"name":"_b","nodeType":"VariableDeclaration","scope":9532,"src":"239:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9497,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9500,"name":"_c","nodeType":"VariableDeclaration","scope":9532,"src":"251:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9502,"name":"_value","nodeType":"VariableDeclaration","scope":9532,"src":"263:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9501,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"191:87:36"},"returnParameters":{"id":9508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9505,"name":"","nodeType":"VariableDeclaration","scope":9532,"src":"298:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9504,"name":"bool","nodeType":"ElementaryTypeName","src":"298:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":9507,"name":"","nodeType":"VariableDeclaration","scope":9532,"src":"304:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9506,"name":"bytes","nodeType":"ElementaryTypeName","src":"304:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"297:20:36"},"scope":9566,"src":"171:363:36","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9564,"nodeType":"Block","src":"697:157:36","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9553,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"743:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"746573742875696e743235362c616464726573732c6279746573333229","id":9556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"786:31:36","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},"value":"test(uint256,address,bytes32)"},{"argumentTypes":null,"id":9557,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9538,"src":"819:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9558,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"823:2:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9559,"name":"_c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9542,"src":"827:2:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":9554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"762:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"762:23:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"762:68:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":9561,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"840:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9551,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9534,"src":"714:7:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":9552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":195,"src":"714:19:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) external returns (bool,bytes memory)"}},"id":9562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"714:133:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":9550,"id":9563,"nodeType":"Return","src":"707:140:36"}]},"documentation":null,"id":9565,"implemented":true,"kind":"function","modifiers":[],"name":"genericCallDirect","nodeType":"FunctionDefinition","parameters":{"id":9545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9534,"name":"_avatar","nodeType":"VariableDeclaration","scope":9565,"src":"567:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":9533,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"567:6:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":9536,"name":"_contract","nodeType":"VariableDeclaration","scope":9565,"src":"583:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9535,"name":"address","nodeType":"ElementaryTypeName","src":"583:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9538,"name":"_a","nodeType":"VariableDeclaration","scope":9565,"src":"602:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9537,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9540,"name":"_b","nodeType":"VariableDeclaration","scope":9565,"src":"614:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9539,"name":"address","nodeType":"ElementaryTypeName","src":"614:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9542,"name":"_c","nodeType":"VariableDeclaration","scope":9565,"src":"626:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"626:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9544,"name":"_value","nodeType":"VariableDeclaration","scope":9565,"src":"638:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9543,"name":"uint256","nodeType":"ElementaryTypeName","src":"638:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"566:87:36"},"returnParameters":{"id":9550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9547,"name":"","nodeType":"VariableDeclaration","scope":9565,"src":"673:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9546,"name":"bool","nodeType":"ElementaryTypeName","src":"673:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":9549,"name":"","nodeType":"VariableDeclaration","scope":9565,"src":"679:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9548,"name":"bytes","nodeType":"ElementaryTypeName","src":"679:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"672:20:36"},"scope":9566,"src":"540:314:36","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":9567,"src":"116:740:36"}],"src":"0:857:36"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/UniversalSchemeMock.sol","exportedSymbols":{"UniversalSchemeMock":[9566]},"id":9567,"nodeType":"SourceUnit","nodes":[{"id":9486,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:36"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"../universalSchemes/UniversalScheme.sol","id":9487,"nodeType":"ImportDirective","scope":9567,"sourceUnit":12635,"src":"25:49:36","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/controller/Controller.sol","file":"../controller/Controller.sol","id":9488,"nodeType":"ImportDirective","scope":9567,"sourceUnit":1798,"src":"75:38:36","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9489,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"148:15:36","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":9490,"nodeType":"InheritanceSpecifier","src":"148:15:36"}],"contractDependencies":[12634,12645],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9566,"linearizedBaseContracts":[9566,12634,12645],"name":"UniversalSchemeMock","nodeType":"ContractDefinition","nodes":[{"body":{"id":9531,"nodeType":"Block","src":"322:212:36","statements":[{"assignments":[9510],"declarations":[{"constant":false,"id":9510,"name":"controller","nodeType":"VariableDeclaration","scope":9531,"src":"333:18:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9509,"name":"address","nodeType":"ElementaryTypeName","src":"333:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"}],"id":9514,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":9511,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"354:7:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":9512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"354:13:36","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":9513,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"354:15:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"333:36:36"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9519,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9494,"src":"430:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"746573742875696e743235362c616464726573732c6279746573333229","id":9522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"465:31:36","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},"value":"test(uint256,address,bytes32)"},{"argumentTypes":null,"id":9523,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9496,"src":"498:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9524,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9498,"src":"502:2:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9525,"name":"_c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9500,"src":"506:2:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":9520,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"441:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"441:23:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"441:68:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":9527,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9492,"src":"511:7:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"id":9528,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9502,"src":"520:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9516,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9510,"src":"397:10:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":9515,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"386:10:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":9517,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"386:22:36","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":9518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":1475,"src":"386:34:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_contract$_Avatar_$337_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,contract Avatar,uint256) external returns (bool,bytes memory)"}},"id":9529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"386:141:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":9508,"id":9530,"nodeType":"Return","src":"379:148:36"}]},"documentation":null,"id":9532,"implemented":true,"kind":"function","modifiers":[],"name":"genericCall","nodeType":"FunctionDefinition","parameters":{"id":9503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9492,"name":"_avatar","nodeType":"VariableDeclaration","scope":9532,"src":"192:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":9491,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"192:6:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":9494,"name":"_contract","nodeType":"VariableDeclaration","scope":9532,"src":"208:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9493,"name":"address","nodeType":"ElementaryTypeName","src":"208:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9496,"name":"_a","nodeType":"VariableDeclaration","scope":9532,"src":"227:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9495,"name":"uint256","nodeType":"ElementaryTypeName","src":"227:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9498,"name":"_b","nodeType":"VariableDeclaration","scope":9532,"src":"239:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9497,"name":"address","nodeType":"ElementaryTypeName","src":"239:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9500,"name":"_c","nodeType":"VariableDeclaration","scope":9532,"src":"251:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9499,"name":"bytes32","nodeType":"ElementaryTypeName","src":"251:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9502,"name":"_value","nodeType":"VariableDeclaration","scope":9532,"src":"263:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9501,"name":"uint256","nodeType":"ElementaryTypeName","src":"263:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"191:87:36"},"returnParameters":{"id":9508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9505,"name":"","nodeType":"VariableDeclaration","scope":9532,"src":"298:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9504,"name":"bool","nodeType":"ElementaryTypeName","src":"298:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":9507,"name":"","nodeType":"VariableDeclaration","scope":9532,"src":"304:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9506,"name":"bytes","nodeType":"ElementaryTypeName","src":"304:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"297:20:36"},"scope":9566,"src":"171:363:36","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":9564,"nodeType":"Block","src":"697:157:36","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9553,"name":"_contract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9536,"src":"743:9:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"746573742875696e743235362c616464726573732c6279746573333229","id":9556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"786:31:36","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},"value":"test(uint256,address,bytes32)"},{"argumentTypes":null,"id":9557,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9538,"src":"819:2:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":9558,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9540,"src":"823:2:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":9559,"name":"_c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9542,"src":"827:2:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_f3e8dcd0a31cba4ab71a74b8a8e612076ddb255880c3bbc5aa0882e547e16d9c","typeString":"literal_string \"test(uint256,address,bytes32)\""},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":9554,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"762:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":9555,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"762:23:36","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":9560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"762:68:36","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":9561,"name":"_value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9544,"src":"840:6:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9551,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9534,"src":"714:7:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":9552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":195,"src":"714:19:36","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,uint256) external returns (bool,bytes memory)"}},"id":9562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"714:133:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"functionReturnParameters":9550,"id":9563,"nodeType":"Return","src":"707:140:36"}]},"documentation":null,"id":9565,"implemented":true,"kind":"function","modifiers":[],"name":"genericCallDirect","nodeType":"FunctionDefinition","parameters":{"id":9545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9534,"name":"_avatar","nodeType":"VariableDeclaration","scope":9565,"src":"567:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":9533,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"567:6:36","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":9536,"name":"_contract","nodeType":"VariableDeclaration","scope":9565,"src":"583:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9535,"name":"address","nodeType":"ElementaryTypeName","src":"583:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9538,"name":"_a","nodeType":"VariableDeclaration","scope":9565,"src":"602:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9537,"name":"uint256","nodeType":"ElementaryTypeName","src":"602:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":9540,"name":"_b","nodeType":"VariableDeclaration","scope":9565,"src":"614:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9539,"name":"address","nodeType":"ElementaryTypeName","src":"614:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9542,"name":"_c","nodeType":"VariableDeclaration","scope":9565,"src":"626:10:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":9541,"name":"bytes32","nodeType":"ElementaryTypeName","src":"626:7:36","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":9544,"name":"_value","nodeType":"VariableDeclaration","scope":9565,"src":"638:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9543,"name":"uint256","nodeType":"ElementaryTypeName","src":"638:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"566:87:36"},"returnParameters":{"id":9550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9547,"name":"","nodeType":"VariableDeclaration","scope":9565,"src":"673:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":9546,"name":"bool","nodeType":"ElementaryTypeName","src":"673:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"},{"constant":false,"id":9549,"name":"","nodeType":"VariableDeclaration","scope":9565,"src":"679:12:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":9548,"name":"bytes","nodeType":"ElementaryTypeName","src":"679:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"672:20:36"},"scope":9566,"src":"540:314:36","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":9567,"src":"116:740:36"}],"src":"0:857:36"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.158Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UpgradeScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UpgradeScheme.json new file mode 100644 index 00000000..f8dafa5e --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/UpgradeScheme.json @@ -0,0 +1 @@ +{"contractName":"UpgradeScheme","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"address","name":"_newUpgradeScheme","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_params","type":"bytes32"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"ChangeUpgradeSchemeProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"address","name":"_newController","type":"address"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"NewUpgradeProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"ProposalDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"}],"name":"ProposalExecuted","type":"event"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationsProposals","outputs":[{"internalType":"address","name":"upgradeContract","type":"address"},{"internalType":"bytes32","name":"params","type":"bytes32"},{"internalType":"uint256","name":"proposalType","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"bytes32","name":"voteParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"intVote","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_param","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_voteParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_newController","type":"address"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeUpgrade","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"address","name":"_scheme","type":"address"},{"internalType":"bytes32","name":"_params","type":"bytes32"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeChangeUpgradingScheme","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_voteParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newUpgradeScheme\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"ChangeUpgradeSchemeProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newController\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"NewUpgradeProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"ProposalDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationsProposals\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"upgradeContract\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"params\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"proposalType\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"intVote\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_scheme\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_params\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeChangeUpgradingScheme\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_newController\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeUpgrade\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"The scheme is used to upgrade the controller of an organization to a new controller.\",\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_param\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"}},\"getParametersHash(bytes32,address)\":{\"details\":\"return a hash of the given parameters\"},\"proposeChangeUpgradingScheme(address,address,bytes32,string)\":{\"details\":\"propose to replace this scheme by another upgrading scheme\",\"params\":{\"_avatar\":\"avatar of the organization\",\"_descriptionHash\":\"proposal description hash\",\"_params\":\"the parameters of the new upgrading scheme\",\"_scheme\":\"address of the new upgrading scheme\"},\"return\":\"an id which represents the proposal\"},\"proposeUpgrade(address,address,string)\":{\"details\":\"propose an upgrade of the organization's controller\",\"params\":{\"_avatar\":\"avatar of the organization\",\"_descriptionHash\":\"proposal description hash\",\"_newController\":\"address of the new controller that is being proposed\"},\"return\":\"an id which represents the proposal\"},\"setParameters(bytes32,address)\":{\"details\":\"hash the parameters, save them if necessary, and return the hash value\"}},\"title\":\"A scheme to manage the upgrade of an organization.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/UpgradeScheme.sol\":\"UpgradeScheme\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UpgradeScheme.sol\":{\"keccak256\":\"0xff42c1c36f5123711281cbd641d26ae9ab279580b3107196f07884364e4dc1ee\",\"urls\":[\"bzz-raw://9775d13eb73496cc70415608139b2b72aca74e6cb89b7b8476135672543aef65\",\"dweb:/ipfs/QmVYiEGA8x93oS2Ee3tcunfjtqBLVkWak3NNHsMkZc15a6\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"429:6708:45:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;429:6708:45;;;;;;;","deployedSourceMap":"429:6708:45:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;429:6708:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1882:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1882:46:45;;:::i;:::-;;;;;;;-1:-1:-1;;;;;1882:46:45;;;;;;;;;;;;;;;;1598:81;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1598:81:45;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1598:81:45;;;;;;;;;;;;;;;;;;;;;;;;;6928:207;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6928:207:45;;;;;;-1:-1:-1;;;;;6928:207:45;;:::i;:::-;;;;;;;;;;;;;;;;598:73:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;3738:334:45:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3738:334:45;;;;;;-1:-1:-1;;;;;3738:334:45;;:::i;1973:346:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;4391:939:45:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;4391:939:45;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4391:939:45;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4391:939:45;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4391:939:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4391:939:45;;-1:-1:-1;4391:939:45;;-1:-1:-1;;;;;4391:939:45:i;2666:345:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2194:1441:45:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2194:1441:45;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2325:335:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;678:401::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;5696:1162:45:-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;5696:1162:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;5696:1162:45;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5696:1162:45;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5696:1162:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5696:1162:45;;-1:-1:-1;5696:1162:45;;-1:-1:-1;;;;;5696:1162:45:i;1085:401:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;1882:46:45:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1882:46:45;;:::o;1598:81::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1598:81:45;;;;;:::o;6928:207::-;7087:39;;;;;;;;;;-1:-1:-1;;7087:39:45;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;7087:39:45;;;;;;;7077:50;;;;;6928:207;;;;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;3738:334:45:-;3846:7;3869:18;3890:40;3908:11;3921:8;3890:17;:40::i;:::-;3940:22;;;;:10;:22;;;;;:47;;;3997:30;;:41;;-1:-1:-1;;;;;3997:41:45;;-1:-1:-1;;;;;;3997:41:45;;;;;;3869:61;-1:-1:-1;;3738:334:45;;;;:::o;1973:346:50:-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;1973:346;-1:-1:-1;;;;1973:346:50:o;4391:939:45:-;4518:7;4541:24;;:::i;:::-;4568:10;:48;4579:36;4607:7;4579:27;:36::i;:::-;4568:48;;;;;;;;;;;;;;-1:-1:-1;4568:48:45;;;4541:75;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4541:75:45;;;;;;;;;4647:74;;-1:-1:-1;;;4647:74:45;;4670:1;4647:74;;;;;;;;;;;4692:10;4647:74;;;;;;;;;;;;;4541:75;;-1:-1:-1;;;4647:22:45;;:74;;;;;;;;;;-1:-1:-1;4541:75:45;4647:74;;;5:2:-1;;;;30:1;27;20:12;5:2;4647:74:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4647:74:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4647:74:45;;-1:-1:-1;4731:31:45;;:::i;:::-;-1:-1:-1;4765:133:45;;;;;;;;;-1:-1:-1;;;;;4765:133:45;;;;;;-1:-1:-1;4765:133:45;;;;;;;4809:1;4765:133;;;;;;4908:40;;;;;;;;;;;;:52;;;;;;;;:63;;;;-1:-1:-1;;;;;;4908:63:45;;;;;;;;;;;;;;;;;;;;;;;;;5068:14;;;;4986:157;;;;;;;;;;;;;;;;;;;;;;4765:133;;4986:157;;;4908:52;;:40;;4986:157;;4765:133;;4986:157;;;;;;;;;;;;;;;;;;;;;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;4986:157:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5206:90:45;;;;;;;;5245:12;5206:90;;-1:-1:-1;;;;;5206:90:45;;;;;;;;;;5175:14;;;;5153:38;;-1:-1:-1;5153:38:45;;;;;;;;;:50;;;;;;;;;;:143;;;;;;;;;;;-1:-1:-1;;;;;;5153:143:45;;;;;;;;;;;;-1:-1:-1;5153:50:45;;4391:939;-1:-1:-1;;4391:939:45:o;2666:345:50:-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2194:1441:45;443:10:50;2303:4:45;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;2282:11:45;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;2349:10:45;2319:13;2335:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2335:45:45;2390:31;;:::i;:::-;-1:-1:-1;;;;;;2424:39:45;;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2390:86;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2486:35;;;;;;-1:-1:-1;;;;;2538:39:45;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2531:59;;-1:-1:-1;;;;;;2531:59:45;;;;;;;;;;;;;;;;2605:45;2578:11;;2538:39;2605:45;;;2705:6;2715:1;2705:11;2701:838;;;2782:21;2817:6;-1:-1:-1;;;;;2817:12:45;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2817:14:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2817:14:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2817:14:45;2883:21;;;;2817:14;;-1:-1:-1;2908:1:45;2883:26;2879:136;;;2966:24;;2937:62;;;-1:-1:-1;;;2937:62:45;;-1:-1:-1;;;;;2937:62:45;;;;;;;;;;;;;;;;:28;;;;;;:62;;;;;;;;;;;;;;;2966:24;2937:28;:62;;;5:2:-1;;;;30:1;27;20:12;5:2;2937:62:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2937:62:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2937:62:45;2929:71;;;;;;3069:8;:21;;;3094:1;3069:26;3065:464;;;3136:63;;;-1:-1:-1;;;3136:63:45;;3176:4;3136:63;;;;-1:-1:-1;;;;;3136:63:45;;;;;;;;;3115:18;;3136:31;;;;;:63;;;;;;;;;;;;;;:31;:63;;;5:2:-1;;;;30:1;27;20:12;5:2;3136:63:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3136:63:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3136:63:45;3268:24;;3136:63;3294:15;;;;3242:98;;;-1:-1:-1;;;3242:98:45;;-1:-1:-1;;;;;3242:98:45;;;;;;;;;;;;;;-1:-1:-1;;;;;;3242:98:45;;;;;;;;;;;;;;3136:63;;-1:-1:-1;3242:25:45;;;;;;:98;;;;;3136:63;3242:98;;;;;;3268:24;3242:25;:98;;;5:2:-1;;;;30:1;27;20:12;5:2;3242:98:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3242:98:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3242:98:45;3217:141;;;;;;3380:24;;-1:-1:-1;;;;;3380:41:45;3416:4;3380:41;3376:139;;3453:10;-1:-1:-1;;;;;3453:25:45;;3487:6;3453:42;;;;;;;;;;;;;-1:-1:-1;;;;;3453:42:45;-1:-1:-1;;;;;3453:42:45;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3453:42:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3453:42:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3453:42:45;3445:51;;;;;;3065:464;;2701:838;;3553:54;;;;;;;;3587:11;;-1:-1:-1;;;;;3553:54:45;;;;;;;;;;;;-1:-1:-1;3624:4:45;;2194:1441;-1:-1:-1;;;;;2194:1441:45:o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;678:401::-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;5696:1162:45:-;5885:7;5908:24;;:::i;:::-;5935:10;:48;5946:36;5974:7;5946:27;:36::i;:::-;5935:48;;;;;;;;;;;;;;-1:-1:-1;5935:48:45;;;5908:75;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5908:75:45;;;;;;;;;6065:67;;-1:-1:-1;;;6065:67:45;;6081:1;6065:67;;;;;;;;;;;6103:10;6065:67;;;;;;;;;;;;;5908:75;;-1:-1:-1;5908:75:45;;-1:-1:-1;;5908:75:45;;6065:15;;:67;;;;;;;;;;;-1:-1:-1;5908:75:45;6065:67;;;5:2:-1;;;;30:1;27;20:12;5:2;6065:67:45;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6065:67:45;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6065:67:45;-1:-1:-1;;;;;6150:40:45;;;;;;:22;6065:67;6150:40;;;;;;;:52;;;;;;;;:65;;;6065:67;;-1:-1:-1;6150:70:45;6142:79;;;;;;6232:31;;:::i;:::-;6266:123;;;;;;;;6342:7;-1:-1:-1;;;;;6266:123:45;;;;;6371:7;6266:123;;;;6310:1;6266:123;;;6232:157;;6454:8;6399:22;:40;6430:7;-1:-1:-1;;;;;6399:40:45;-1:-1:-1;;;;;6399:40:45;;;;;;;;;;;;:52;6440:10;6399:52;;;;;;;;;;;:63;;;;;;;;;;;;;-1:-1:-1;;;;;6399:63:45;;;;;-1:-1:-1;;;;;6399:63:45;;;;;;;;;;;;;;;;;;;;;;;;;6581:6;:14;;;-1:-1:-1;;;;;6478:200:45;6549:10;6527:7;-1:-1:-1;;;;;6478:200:45;;6610:7;6631;6652:16;6478:200;;;;-1:-1:-1;;;;;6478:200:45;-1:-1:-1;;;;;6478:200:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;6478:200:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6734:90:45;;;;;;;;6773:12;6734:90;;-1:-1:-1;;;;;6734:90:45;;;;;;;;;;6688:31;;;-1:-1:-1;6688:31:45;;;;;;;;;:43;;;;;;;;;;:136;;;;;;;;;;;-1:-1:-1;;;;;;6688:136:45;;;;;;;;;;;;-1:-1:-1;6688:43:45;;5696:1162;-1:-1:-1;;;;5696:1162:45:o;1085:401:50:-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;290:322:43;365:7;403;-1:-1:-1;;;;;403:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;403:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;403:15:43;392:79;;;-1:-1:-1;;;392:79:43;;447:4;392:79;;;;-1:-1:-1;;;;;392:79:43;;;;;;;;;:46;;;;;;;:79;;;;;403:15;;392:79;;;;;;;:46;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;392:79:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;392:79:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;392:79:43;384:124;;;;;-1:-1:-1;;;384:124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;-1:-1:-1;;;;;536:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;536:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;536:15:43;525:80;;;-1:-1:-1;;;525:80:43;;581:4;525:80;;;;-1:-1:-1;;;;;525:80:43;;;;;;;;;:47;;;;;;;:80;;;;;536:15;;525:80;;;;;;;:47;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;525:80:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;525:80:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;525:80:43;;290:322;-1:-1:-1;;290:322:43:o;429:6708:45:-;;;;;;;;;;-1:-1:-1;429:6708:45;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;429:6708:45;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\";\nimport \"./UniversalScheme.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\n/**\n * @title A scheme to manage the upgrade of an organization.\n * @dev The scheme is used to upgrade the controller of an organization to a new controller.\n */\n\ncontract UpgradeScheme is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface {\n\n event NewUpgradeProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n address _newController,\n string _descriptionHash\n );\n\n event ChangeUpgradeSchemeProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n address _newUpgradeScheme,\n bytes32 _params,\n string _descriptionHash\n );\n\n event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param);\n event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n // Details of an upgrade proposal:\n struct UpgradeProposal {\n address upgradeContract; // Either the new controller we upgrade to, or the new upgrading scheme.\n bytes32 params; // Params for the new upgrading scheme.\n uint256 proposalType; // 1: Upgrade controller, 2: change upgrade scheme.\n }\n\n // A mapping from the organization's (Avatar) address to the saved data of the organization:\n mapping(address=>mapping(bytes32=>UpgradeProposal)) public organizationsProposals;\n\n // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n struct Parameters {\n bytes32 voteParams;\n IntVoteInterface intVote;\n }\n\n mapping(bytes32=>Parameters) public parameters;\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _param a parameter of the voting result, 1 yes and 2 is no.\n */\n function executeProposal(bytes32 _proposalId, int256 _param) external onlyVotingMachine(_proposalId) returns(bool) {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n UpgradeProposal memory proposal = organizationsProposals[address(avatar)][_proposalId];\n require(proposal.proposalType != 0);\n delete organizationsProposals[address(avatar)][_proposalId];\n emit ProposalDeleted(address(avatar), _proposalId);\n // Check if vote was successful:\n if (_param == 1) {\n\n // Define controller and get the params:\n Controller controller = Controller(avatar.owner());\n // Upgrading controller:\n if (proposal.proposalType == 1) {\n require(controller.upgradeController(proposal.upgradeContract, avatar));\n }\n\n // Changing upgrade scheme:\n if (proposal.proposalType == 2) {\n bytes4 permissions = controller.getSchemePermissions(address(this), address(avatar));\n require(\n controller.registerScheme(proposal.upgradeContract, proposal.params, permissions, address(avatar))\n );\n if (proposal.upgradeContract != address(this)) {\n require(controller.unregisterSelf(address(avatar)));\n }\n }\n }\n emit ProposalExecuted(address(avatar), _proposalId, _param);\n return true;\n }\n\n /**\n * @dev hash the parameters, save them if necessary, and return the hash value\n */\n function setParameters(\n bytes32 _voteParams,\n IntVoteInterface _intVote\n ) public returns(bytes32)\n {\n bytes32 paramsHash = getParametersHash(_voteParams, _intVote);\n parameters[paramsHash].voteParams = _voteParams;\n parameters[paramsHash].intVote = _intVote;\n return paramsHash;\n }\n\n /**\n * @dev propose an upgrade of the organization's controller\n * @param _avatar avatar of the organization\n * @param _newController address of the new controller that is being proposed\n * @param _descriptionHash proposal description hash\n * @return an id which represents the proposal\n */\n function proposeUpgrade(Avatar _avatar, address _newController, string memory _descriptionHash)\n public\n returns(bytes32)\n {\n Parameters memory params = parameters[getParametersFromController(_avatar)];\n bytes32 proposalId = params.intVote.propose(2, params.voteParams, msg.sender, address(_avatar));\n UpgradeProposal memory proposal = UpgradeProposal({\n proposalType: 1,\n upgradeContract: _newController,\n params: bytes32(0)\n });\n organizationsProposals[address(_avatar)][proposalId] = proposal;\n emit NewUpgradeProposal(\n address(_avatar),\n proposalId,\n address(params.intVote),\n _newController,\n _descriptionHash\n );\n proposalsInfo[address(params.intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return proposalId;\n }\n\n /**\n * @dev propose to replace this scheme by another upgrading scheme\n * @param _avatar avatar of the organization\n * @param _scheme address of the new upgrading scheme\n * @param _params the parameters of the new upgrading scheme\n * @param _descriptionHash proposal description hash\n * @return an id which represents the proposal\n */\n function proposeChangeUpgradingScheme(\n Avatar _avatar,\n address _scheme,\n bytes32 _params,\n string memory _descriptionHash\n )\n public\n returns(bytes32)\n {\n Parameters memory params = parameters[getParametersFromController(_avatar)];\n IntVoteInterface intVote = params.intVote;\n bytes32 proposalId = intVote.propose(2, params.voteParams, msg.sender, address(_avatar));\n require(organizationsProposals[address(_avatar)][proposalId].proposalType == 0);\n\n UpgradeProposal memory proposal = UpgradeProposal({\n proposalType: 2,\n upgradeContract: _scheme,\n params: _params\n });\n organizationsProposals[address(_avatar)][proposalId] = proposal;\n\n emit ChangeUpgradeSchemeProposal(\n address(_avatar),\n proposalId,\n address(params.intVote),\n _scheme,\n _params,\n _descriptionHash\n );\n proposalsInfo[address(intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return proposalId;\n }\n\n /**\n * @dev return a hash of the given parameters\n */\n function getParametersHash(\n bytes32 _voteParams,\n IntVoteInterface _intVote\n ) public pure returns(bytes32)\n {\n return (keccak256(abi.encodePacked(_voteParams, _intVote)));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UpgradeScheme.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UpgradeScheme.sol","exportedSymbols":{"UpgradeScheme":[13102]},"id":13103,"nodeType":"SourceUnit","nodes":[{"id":12647,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:45"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":12648,"nodeType":"ImportDirective","scope":13103,"sourceUnit":19817,"src":"25:71:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","id":12649,"nodeType":"ImportDirective","scope":13103,"sourceUnit":19829,"src":"97:79:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":12650,"nodeType":"ImportDirective","scope":13103,"sourceUnit":12635,"src":"177:31:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":12651,"nodeType":"ImportDirective","scope":13103,"sourceUnit":14651,"src":"209:54:45","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":12652,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"455:15:45","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":12653,"nodeType":"InheritanceSpecifier","src":"455:15:45"},{"arguments":null,"baseName":{"contractScope":null,"id":12654,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"472:22:45","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":12655,"nodeType":"InheritanceSpecifier","src":"472:22:45"},{"arguments":null,"baseName":{"contractScope":null,"id":12656,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"496:24:45","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":12657,"nodeType":"InheritanceSpecifier","src":"496:24:45"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme to manage the upgrade of an organization.\n@dev The scheme is used to upgrade the controller of an organization to a new controller.","fullyImplemented":true,"id":13102,"linearizedBaseContracts":[13102,19828,14650,20031,12634,12645],"name":"UpgradeScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":12669,"name":"NewUpgradeProposal","nodeType":"EventDefinition","parameters":{"id":12668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12659,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12669,"src":"562:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12658,"name":"address","nodeType":"ElementaryTypeName","src":"562:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12661,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12669,"src":"595:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12663,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12669,"src":"632:33:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12662,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12665,"indexed":false,"name":"_newController","nodeType":"VariableDeclaration","scope":12669,"src":"675:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12664,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12667,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12669,"src":"707:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12666,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"552:184:45"},"src":"528:209:45"},{"anonymous":false,"documentation":null,"id":12683,"name":"ChangeUpgradeSchemeProposal","nodeType":"EventDefinition","parameters":{"id":12682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12671,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12683,"src":"786:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12670,"name":"address","nodeType":"ElementaryTypeName","src":"786:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12673,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12683,"src":"819:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"819:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12675,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12683,"src":"856:33:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12674,"name":"address","nodeType":"ElementaryTypeName","src":"856:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12677,"indexed":false,"name":"_newUpgradeScheme","nodeType":"VariableDeclaration","scope":12683,"src":"899:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12676,"name":"address","nodeType":"ElementaryTypeName","src":"899:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12679,"indexed":false,"name":"_params","nodeType":"VariableDeclaration","scope":12683,"src":"934:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"934:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12681,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12683,"src":"959:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12680,"name":"string","nodeType":"ElementaryTypeName","src":"959:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"776:212:45"},"src":"743:246:45"},{"anonymous":false,"documentation":null,"id":12691,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":12690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12685,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12691,"src":"1018:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12684,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12687,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12691,"src":"1043:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1043:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12689,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":12691,"src":"1072:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12688,"name":"int256","nodeType":"ElementaryTypeName","src":"1072:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1017:69:45"},"src":"995:92:45"},{"anonymous":false,"documentation":null,"id":12697,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":12696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12693,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12697,"src":"1114:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12692,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12695,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12697,"src":"1139:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1139:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1113:54:45"},"src":"1092:76:45"},{"canonicalName":"UpgradeScheme.UpgradeProposal","id":12704,"members":[{"constant":false,"id":12699,"name":"upgradeContract","nodeType":"VariableDeclaration","scope":12704,"src":"1246:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12698,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12701,"name":"params","nodeType":"VariableDeclaration","scope":12704,"src":"1352:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1352:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12703,"name":"proposalType","nodeType":"VariableDeclaration","scope":12704,"src":"1416:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1416:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"UpgradeProposal","nodeType":"StructDefinition","scope":13102,"src":"1213:282:45","visibility":"public"},{"constant":false,"id":12710,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":13102,"src":"1598:81:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal))"},"typeName":{"id":12709,"keyType":{"id":12705,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1598:51:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal))"},"valueType":{"id":12708,"keyType":{"id":12706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1615:33:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal)"},"valueType":{"contractScope":null,"id":12707,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"1632:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"UpgradeScheme.Parameters","id":12715,"members":[{"constant":false,"id":12712,"name":"voteParams","nodeType":"VariableDeclaration","scope":12715,"src":"1817:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1817:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12714,"name":"intVote","nodeType":"VariableDeclaration","scope":12715,"src":"1845:24:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12713,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1845:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":13102,"src":"1789:87:45","visibility":"public"},{"constant":false,"id":12719,"name":"parameters","nodeType":"VariableDeclaration","scope":13102,"src":"1882:46:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters)"},"typeName":{"id":12718,"keyType":{"id":12716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1890:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1882:28:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters)"},"valueType":{"contractScope":null,"id":12717,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12715,"src":"1899:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage_ptr","typeString":"struct UpgradeScheme.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":12861,"nodeType":"Block","src":"2309:1326:45","statements":[{"assignments":[12732],"declarations":[{"constant":false,"id":12732,"name":"avatar","nodeType":"VariableDeclaration","scope":12861,"src":"2319:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12731,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2319:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":12740,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12733,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2335:13:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12736,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2349:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2349:10:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2335:25:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12738,"indexExpression":{"argumentTypes":null,"id":12737,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2361:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2335:38:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2335:45:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2319:61:45"},{"assignments":[12742],"declarations":[{"constant":false,"id":12742,"name":"proposal","nodeType":"VariableDeclaration","scope":12861,"src":"2390:31:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"},"typeName":{"contractScope":null,"id":12741,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"2390:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}},"value":null,"visibility":"internal"}],"id":12750,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12743,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"2424:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":12747,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12745,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2455:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2447:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2447:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2424:39:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":12749,"indexExpression":{"argumentTypes":null,"id":12748,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2464:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2424:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2390:86:45"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12752,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"2494:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"2494:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":12754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2519:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2494:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12751,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2486:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2486:35:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12757,"nodeType":"ExpressionStatement","src":"2486:35:45"},{"expression":{"argumentTypes":null,"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2531:59:45","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12758,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"2538:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":12762,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12760,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2569:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2561:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2561:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2538:39:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":12764,"indexExpression":{"argumentTypes":null,"id":12763,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2578:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2538:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12766,"nodeType":"ExpressionStatement","src":"2531:59:45"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12769,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2629:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2621:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2621:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12771,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2638:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12767,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"2605:15:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":12772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2605:45:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12773,"nodeType":"EmitStatement","src":"2600:50:45"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12774,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"2705:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":12775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2715:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2705:11:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12850,"nodeType":"IfStatement","src":"2701:838:45","trueBody":{"id":12849,"nodeType":"Block","src":"2718:821:45","statements":[{"assignments":[12778],"declarations":[{"constant":false,"id":12778,"name":"controller","nodeType":"VariableDeclaration","scope":12849,"src":"2782:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":12777,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2782:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":12784,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12780,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2817:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2817:12:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2817:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12779,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2806:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2806:26:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"2782:50:45"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12785,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"2883:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"2883:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":12787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2908:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2883:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12799,"nodeType":"IfStatement","src":"2879:136:45","trueBody":{"id":12798,"nodeType":"Block","src":"2911:104:45","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12792,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"2966:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"upgradeContract","nodeType":"MemberAccess","referencedDeclaration":12699,"src":"2966:24:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12794,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2992:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":12790,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"2937:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeController","nodeType":"MemberAccess","referencedDeclaration":1442,"src":"2937:28:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (address,contract Avatar) external returns (bool)"}},"id":12795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2937:62:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2929:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2929:71:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12797,"nodeType":"ExpressionStatement","src":"2929:71:45"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12800,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3069:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"3069:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":12802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3094:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3069:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12848,"nodeType":"IfStatement","src":"3065:464:45","trueBody":{"id":12847,"nodeType":"Block","src":"3097:432:45","statements":[{"assignments":[12805],"declarations":[{"constant":false,"id":12805,"name":"permissions","nodeType":"VariableDeclaration","scope":12847,"src":"3115:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12804,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3115:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"id":12815,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12809,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21261,"src":"3176:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}],"id":12808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3168:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12812,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3191:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3183:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3183:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12806,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"3136:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getSchemePermissions","nodeType":"MemberAccess","referencedDeclaration":1689,"src":"3136:31:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bytes4_$","typeString":"function (address,address) view external returns (bytes4)"}},"id":12814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3136:63:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3115:84:45"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12819,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3268:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"upgradeContract","nodeType":"MemberAccess","referencedDeclaration":12699,"src":"3268:24:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12821,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3294:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":12701,"src":"3294:15:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12823,"name":"permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12805,"src":"3311:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12825,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3332:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3324:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3324:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12817,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"3242:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"3242:25:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":12827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3242:98:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3217:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3217:141:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"3217:141:45"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12830,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3380:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"upgradeContract","nodeType":"MemberAccess","referencedDeclaration":12699,"src":"3380:24:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12833,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21261,"src":"3416:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}],"id":12832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3408:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3408:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3380:41:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12846,"nodeType":"IfStatement","src":"3376:139:45","trueBody":{"id":12845,"nodeType":"Block","src":"3423:92:45","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12840,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3487:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3479:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3479:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12837,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"3453:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterSelf","nodeType":"MemberAccess","referencedDeclaration":996,"src":"3453:25:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":12842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3453:42:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3445:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3445:51:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12844,"nodeType":"ExpressionStatement","src":"3445:51:45"}]}}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12853,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3578:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3570:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3570:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12855,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"3587:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12856,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"3600:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12851,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12691,"src":"3553:16:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":12857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3553:54:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12858,"nodeType":"EmitStatement","src":"3548:59:45"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":12859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3624:4:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12730,"id":12860,"nodeType":"Return","src":"3617:11:45"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":12862,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":12726,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2282:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12727,"modifierName":{"argumentTypes":null,"id":12725,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2264:17:45","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2264:30:45"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":12724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12721,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12862,"src":"2219:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2219:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12723,"name":"_param","nodeType":"VariableDeclaration","scope":12862,"src":"2240:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12722,"name":"int256","nodeType":"ElementaryTypeName","src":"2240:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2218:36:45"},"returnParameters":{"id":12730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12729,"name":"","nodeType":"VariableDeclaration","scope":12862,"src":"2303:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12728,"name":"bool","nodeType":"ElementaryTypeName","src":"2303:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2302:6:45"},"scope":13102,"src":"2194:1441:45","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":12894,"nodeType":"Block","src":"3859:213:45","statements":[{"assignments":[12872],"declarations":[{"constant":false,"id":12872,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12894,"src":"3869:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3869:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12877,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12874,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12864,"src":"3908:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12875,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12866,"src":"3921:8:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12873,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13101,"src":"3890:17:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":12876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3890:40:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3869:61:45"},{"expression":{"argumentTypes":null,"id":12883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12878,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"3940:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12880,"indexExpression":{"argumentTypes":null,"id":12879,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"3951:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3940:22:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"id":12881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":12712,"src":"3940:33:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12882,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12864,"src":"3976:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3940:47:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12884,"nodeType":"ExpressionStatement","src":"3940:47:45"},{"expression":{"argumentTypes":null,"id":12890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12885,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"3997:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12887,"indexExpression":{"argumentTypes":null,"id":12886,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"4008:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3997:22:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"id":12888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"3997:30:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12889,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12866,"src":"4030:8:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3997:41:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12891,"nodeType":"ExpressionStatement","src":"3997:41:45"},{"expression":{"argumentTypes":null,"id":12892,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"4055:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12870,"id":12893,"nodeType":"Return","src":"4048:17:45"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":12895,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":12867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12864,"name":"_voteParams","nodeType":"VariableDeclaration","scope":12895,"src":"3770:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3770:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12866,"name":"_intVote","nodeType":"VariableDeclaration","scope":12895,"src":"3799:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12865,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3799:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3760:70:45"},"returnParameters":{"id":12870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12869,"name":"","nodeType":"VariableDeclaration","scope":12895,"src":"3846:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3846:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3845:9:45"},"scope":13102,"src":"3738:334:45","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12979,"nodeType":"Block","src":"4531:799:45","statements":[{"assignments":[12907],"declarations":[{"constant":false,"id":12907,"name":"params","nodeType":"VariableDeclaration","scope":12979,"src":"4541:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters"},"typeName":{"contractScope":null,"id":12906,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12715,"src":"4541:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage_ptr","typeString":"struct UpgradeScheme.Parameters"}},"value":null,"visibility":"internal"}],"id":12913,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12908,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"4568:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12912,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12910,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"4607:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12909,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"4579:27:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4579:36:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4568:48:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4541:75:45"},{"assignments":[12915],"declarations":[{"constant":false,"id":12915,"name":"proposalId","nodeType":"VariableDeclaration","scope":12979,"src":"4626:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4626:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12928,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":12919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4670:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12920,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"4673:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":12712,"src":"4673:17:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12922,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4692:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4692:10:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12925,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"4712:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4704:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4704:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12916,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"4647:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"4647:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4647:22:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4647:74:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4626:95:45"},{"assignments":[12930],"declarations":[{"constant":false,"id":12930,"name":"proposal","nodeType":"VariableDeclaration","scope":12979,"src":"4731:31:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"},"typeName":{"contractScope":null,"id":12929,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"4731:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}},"value":null,"visibility":"internal"}],"id":12938,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":12932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4809:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":12933,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12899,"src":"4841:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4885:1:45","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":12934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4877:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":12936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4877:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12931,"name":"UpgradeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"4765:15:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_UpgradeProposal_$12704_storage_ptr_$","typeString":"type(struct UpgradeScheme.UpgradeProposal storage pointer)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["proposalType","upgradeContract","params"],"nodeType":"FunctionCall","src":"4765:133:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"4731:167:45"},{"expression":{"argumentTypes":null,"id":12947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12939,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"4908:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":12944,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12941,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"4939:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4931:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4931:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4908:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":12945,"indexExpression":{"argumentTypes":null,"id":12943,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"4949:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4908:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12946,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"4963:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"src":"4908:63:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"id":12948,"nodeType":"ExpressionStatement","src":"4908:63:45"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12951,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"5022:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5014:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5014:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12953,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"5040:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12955,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"5068:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"5068:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5060:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5060:23:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12958,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12899,"src":"5093:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12959,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12901,"src":"5117:16:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12949,"name":"NewUpgradeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12669,"src":"4986:18:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,string memory)"}},"id":12960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4986:157:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12961,"nodeType":"EmitStatement","src":"4981:162:45"},{"expression":{"argumentTypes":null,"id":12975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12962,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5153:13:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12968,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12964,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"5175:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"5175:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5167:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5167:23:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5153:38:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12969,"indexExpression":{"argumentTypes":null,"id":12967,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"5192:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5153:50:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12971,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5245:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5245:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12973,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"5278:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12970,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5206:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":12974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5206:90:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5153:143:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12976,"nodeType":"ExpressionStatement","src":"5153:143:45"},{"expression":{"argumentTypes":null,"id":12977,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"5313:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12905,"id":12978,"nodeType":"Return","src":"5306:17:45"}]},"documentation":"@dev propose an upgrade of the organization's controller\n@param _avatar avatar of the organization\n@param _newController address of the new controller that is being proposed\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":12980,"implemented":true,"kind":"function","modifiers":[],"name":"proposeUpgrade","nodeType":"FunctionDefinition","parameters":{"id":12902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12897,"name":"_avatar","nodeType":"VariableDeclaration","scope":12980,"src":"4415:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12896,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4415:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12899,"name":"_newController","nodeType":"VariableDeclaration","scope":12980,"src":"4431:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12898,"name":"address","nodeType":"ElementaryTypeName","src":"4431:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12901,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12980,"src":"4455:30:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12900,"name":"string","nodeType":"ElementaryTypeName","src":"4455:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4414:72:45"},"returnParameters":{"id":12905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12904,"name":"","nodeType":"VariableDeclaration","scope":12980,"src":"4518:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4518:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4517:9:45"},"scope":13102,"src":"4391:939:45","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13081,"nodeType":"Block","src":"5898:960:45","statements":[{"assignments":[12994],"declarations":[{"constant":false,"id":12994,"name":"params","nodeType":"VariableDeclaration","scope":13081,"src":"5908:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters"},"typeName":{"contractScope":null,"id":12993,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12715,"src":"5908:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage_ptr","typeString":"struct UpgradeScheme.Parameters"}},"value":null,"visibility":"internal"}],"id":13000,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12995,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"5935:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12999,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12997,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"5974:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12996,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"5946:27:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5946:36:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5935:48:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5908:75:45"},{"assignments":[13002],"declarations":[{"constant":false,"id":13002,"name":"intVote","nodeType":"VariableDeclaration","scope":13081,"src":"5993:24:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13001,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"5993:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":13005,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13003,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6020:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":13004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"6020:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"5993:41:45"},{"assignments":[13007],"declarations":[{"constant":false,"id":13007,"name":"proposalId","nodeType":"VariableDeclaration","scope":13081,"src":"6044:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6044:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":13019,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":13010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6081:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13011,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6084:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":13012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":12712,"src":"6084:17:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13013,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6103:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6103:10:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13016,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6123:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6115:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6115:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13008,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13002,"src":"6065:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"6065:15:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6065:67:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6044:88:45"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13021,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"6150:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":13025,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13023,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6181:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6173:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6173:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6150:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":13027,"indexExpression":{"argumentTypes":null,"id":13026,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6191:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6150:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"id":13028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"6150:65:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":13029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6219:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6150:70:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6142:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6142:79:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13032,"nodeType":"ExpressionStatement","src":"6142:79:45"},{"assignments":[13034],"declarations":[{"constant":false,"id":13034,"name":"proposal","nodeType":"VariableDeclaration","scope":13081,"src":"6232:31:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"},"typeName":{"contractScope":null,"id":13033,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"6232:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}},"value":null,"visibility":"internal"}],"id":13040,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":13036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6310:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"id":13037,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"6342:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13038,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12986,"src":"6371:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13035,"name":"UpgradeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"6266:15:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_UpgradeProposal_$12704_storage_ptr_$","typeString":"type(struct UpgradeScheme.UpgradeProposal storage pointer)"}},"id":13039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["proposalType","upgradeContract","params"],"nodeType":"FunctionCall","src":"6266:123:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6232:157:45"},{"expression":{"argumentTypes":null,"id":13049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13041,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"6399:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":13046,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13043,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6430:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6422:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6399:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":13047,"indexExpression":{"argumentTypes":null,"id":13045,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6440:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6399:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":13048,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13034,"src":"6454:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"src":"6399:63:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"id":13050,"nodeType":"ExpressionStatement","src":"6399:63:45"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13053,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6527:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6519:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6519:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13055,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6549:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13057,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6581:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":13058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"6581:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6573:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6573:23:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13060,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"6610:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13061,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12986,"src":"6631:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13062,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12988,"src":"6652:16:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13051,"name":"ChangeUpgradeSchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12683,"src":"6478:27:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,bytes32,string memory)"}},"id":13063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6478:200:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13064,"nodeType":"EmitStatement","src":"6473:205:45"},{"expression":{"argumentTypes":null,"id":13077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13065,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6688:13:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":13070,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13067,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13002,"src":"6710:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6702:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6702:16:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6688:31:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":13071,"indexExpression":{"argumentTypes":null,"id":13069,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6720:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6688:43:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13073,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"6773:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6773:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13075,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6806:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13072,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"6734:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":13076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"6734:90:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6688:136:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":13078,"nodeType":"ExpressionStatement","src":"6688:136:45"},{"expression":{"argumentTypes":null,"id":13079,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6841:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12992,"id":13080,"nodeType":"Return","src":"6834:17:45"}]},"documentation":"@dev propose to replace this scheme by another upgrading scheme\n@param _avatar avatar of the organization\n@param _scheme address of the new upgrading scheme\n@param _params the parameters of the new upgrading scheme\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":13082,"implemented":true,"kind":"function","modifiers":[],"name":"proposeChangeUpgradingScheme","nodeType":"FunctionDefinition","parameters":{"id":12989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12982,"name":"_avatar","nodeType":"VariableDeclaration","scope":13082,"src":"5743:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12981,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"5743:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12984,"name":"_scheme","nodeType":"VariableDeclaration","scope":13082,"src":"5767:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12983,"name":"address","nodeType":"ElementaryTypeName","src":"5767:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12986,"name":"_params","nodeType":"VariableDeclaration","scope":13082,"src":"5792:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5792:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12988,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":13082,"src":"5817:30:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12987,"name":"string","nodeType":"ElementaryTypeName","src":"5817:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5733:120:45"},"returnParameters":{"id":12992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12991,"name":"","nodeType":"VariableDeclaration","scope":13082,"src":"5885:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5885:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5884:9:45"},"scope":13102,"src":"5696:1162:45","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13100,"nodeType":"Block","src":"7058:77:45","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13094,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13084,"src":"7104:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13095,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13086,"src":"7117:8:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":13092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7087:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7087:16:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7087:39:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13091,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7077:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7077:50:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7076:52:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13090,"id":13099,"nodeType":"Return","src":"7068:60:45"}]},"documentation":"@dev return a hash of the given parameters","id":13101,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":13087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13084,"name":"_voteParams","nodeType":"VariableDeclaration","scope":13101,"src":"6964:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6964:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13086,"name":"_intVote","nodeType":"VariableDeclaration","scope":13101,"src":"6993:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13085,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"6993:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"6954:70:45"},"returnParameters":{"id":13090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13089,"name":"","nodeType":"VariableDeclaration","scope":13101,"src":"7045:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7045:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7044:9:45"},"scope":13102,"src":"6928:207:45","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":13103,"src":"429:6708:45"}],"src":"0:7138:45"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UpgradeScheme.sol","exportedSymbols":{"UpgradeScheme":[13102]},"id":13103,"nodeType":"SourceUnit","nodes":[{"id":12647,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:45"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":12648,"nodeType":"ImportDirective","scope":13103,"sourceUnit":19817,"src":"25:71:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","file":"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol","id":12649,"nodeType":"ImportDirective","scope":13103,"sourceUnit":19829,"src":"97:79:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":12650,"nodeType":"ImportDirective","scope":13103,"sourceUnit":12635,"src":"177:31:45","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":12651,"nodeType":"ImportDirective","scope":13103,"sourceUnit":14651,"src":"209:54:45","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":12652,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"455:15:45","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":12653,"nodeType":"InheritanceSpecifier","src":"455:15:45"},{"arguments":null,"baseName":{"contractScope":null,"id":12654,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"472:22:45","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":12655,"nodeType":"InheritanceSpecifier","src":"472:22:45"},{"arguments":null,"baseName":{"contractScope":null,"id":12656,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"496:24:45","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":12657,"nodeType":"InheritanceSpecifier","src":"496:24:45"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title A scheme to manage the upgrade of an organization.\n@dev The scheme is used to upgrade the controller of an organization to a new controller.","fullyImplemented":true,"id":13102,"linearizedBaseContracts":[13102,19828,14650,20031,12634,12645],"name":"UpgradeScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":12669,"name":"NewUpgradeProposal","nodeType":"EventDefinition","parameters":{"id":12668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12659,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12669,"src":"562:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12658,"name":"address","nodeType":"ElementaryTypeName","src":"562:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12661,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12669,"src":"595:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12660,"name":"bytes32","nodeType":"ElementaryTypeName","src":"595:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12663,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12669,"src":"632:33:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12662,"name":"address","nodeType":"ElementaryTypeName","src":"632:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12665,"indexed":false,"name":"_newController","nodeType":"VariableDeclaration","scope":12669,"src":"675:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12664,"name":"address","nodeType":"ElementaryTypeName","src":"675:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12667,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12669,"src":"707:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12666,"name":"string","nodeType":"ElementaryTypeName","src":"707:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"552:184:45"},"src":"528:209:45"},{"anonymous":false,"documentation":null,"id":12683,"name":"ChangeUpgradeSchemeProposal","nodeType":"EventDefinition","parameters":{"id":12682,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12671,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12683,"src":"786:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12670,"name":"address","nodeType":"ElementaryTypeName","src":"786:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12673,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12683,"src":"819:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12672,"name":"bytes32","nodeType":"ElementaryTypeName","src":"819:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12675,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":12683,"src":"856:33:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12674,"name":"address","nodeType":"ElementaryTypeName","src":"856:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12677,"indexed":false,"name":"_newUpgradeScheme","nodeType":"VariableDeclaration","scope":12683,"src":"899:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12676,"name":"address","nodeType":"ElementaryTypeName","src":"899:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12679,"indexed":false,"name":"_params","nodeType":"VariableDeclaration","scope":12683,"src":"934:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"934:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12681,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12683,"src":"959:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12680,"name":"string","nodeType":"ElementaryTypeName","src":"959:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"776:212:45"},"src":"743:246:45"},{"anonymous":false,"documentation":null,"id":12691,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":12690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12685,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12691,"src":"1018:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12684,"name":"address","nodeType":"ElementaryTypeName","src":"1018:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12687,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12691,"src":"1043:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12686,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1043:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12689,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":12691,"src":"1072:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12688,"name":"int256","nodeType":"ElementaryTypeName","src":"1072:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1017:69:45"},"src":"995:92:45"},{"anonymous":false,"documentation":null,"id":12697,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":12696,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12693,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":12697,"src":"1114:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12692,"name":"address","nodeType":"ElementaryTypeName","src":"1114:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12695,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12697,"src":"1139:27:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12694,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1139:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1113:54:45"},"src":"1092:76:45"},{"canonicalName":"UpgradeScheme.UpgradeProposal","id":12704,"members":[{"constant":false,"id":12699,"name":"upgradeContract","nodeType":"VariableDeclaration","scope":12704,"src":"1246:23:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12698,"name":"address","nodeType":"ElementaryTypeName","src":"1246:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12701,"name":"params","nodeType":"VariableDeclaration","scope":12704,"src":"1352:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12700,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1352:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12703,"name":"proposalType","nodeType":"VariableDeclaration","scope":12704,"src":"1416:20:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":12702,"name":"uint256","nodeType":"ElementaryTypeName","src":"1416:7:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"name":"UpgradeProposal","nodeType":"StructDefinition","scope":13102,"src":"1213:282:45","visibility":"public"},{"constant":false,"id":12710,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":13102,"src":"1598:81:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal))"},"typeName":{"id":12709,"keyType":{"id":12705,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1598:51:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal))"},"valueType":{"id":12708,"keyType":{"id":12706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1623:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1615:33:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal)"},"valueType":{"contractScope":null,"id":12707,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"1632:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"UpgradeScheme.Parameters","id":12715,"members":[{"constant":false,"id":12712,"name":"voteParams","nodeType":"VariableDeclaration","scope":12715,"src":"1817:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12711,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1817:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12714,"name":"intVote","nodeType":"VariableDeclaration","scope":12715,"src":"1845:24:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12713,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1845:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":13102,"src":"1789:87:45","visibility":"public"},{"constant":false,"id":12719,"name":"parameters","nodeType":"VariableDeclaration","scope":13102,"src":"1882:46:45","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters)"},"typeName":{"id":12718,"keyType":{"id":12716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1890:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1882:28:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters)"},"valueType":{"contractScope":null,"id":12717,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12715,"src":"1899:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage_ptr","typeString":"struct UpgradeScheme.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":12861,"nodeType":"Block","src":"2309:1326:45","statements":[{"assignments":[12732],"declarations":[{"constant":false,"id":12732,"name":"avatar","nodeType":"VariableDeclaration","scope":12861,"src":"2319:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12731,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2319:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":12740,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12733,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2335:13:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12736,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12734,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2349:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2349:10:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2335:25:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12738,"indexExpression":{"argumentTypes":null,"id":12737,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2361:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2335:38:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12739,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2335:45:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2319:61:45"},{"assignments":[12742],"declarations":[{"constant":false,"id":12742,"name":"proposal","nodeType":"VariableDeclaration","scope":12861,"src":"2390:31:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"},"typeName":{"contractScope":null,"id":12741,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"2390:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}},"value":null,"visibility":"internal"}],"id":12750,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12743,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"2424:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":12747,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12745,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2455:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12744,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2447:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12746,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2447:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2424:39:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":12749,"indexExpression":{"argumentTypes":null,"id":12748,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2464:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2424:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2390:86:45"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12752,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"2494:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12753,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"2494:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"hexValue":"30","id":12754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2519:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2494:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12751,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2486:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2486:35:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12757,"nodeType":"ExpressionStatement","src":"2486:35:45"},{"expression":{"argumentTypes":null,"id":12765,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2531:59:45","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12758,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"2538:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":12762,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12760,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2569:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12759,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2561:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2561:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2538:39:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":12764,"indexExpression":{"argumentTypes":null,"id":12763,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2578:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2538:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12766,"nodeType":"ExpressionStatement","src":"2531:59:45"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12769,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2629:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12768,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2621:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2621:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12771,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2638:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12767,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12697,"src":"2605:15:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":12772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2605:45:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12773,"nodeType":"EmitStatement","src":"2600:50:45"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":12776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":12774,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"2705:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":12775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2715:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2705:11:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12850,"nodeType":"IfStatement","src":"2701:838:45","trueBody":{"id":12849,"nodeType":"Block","src":"2718:821:45","statements":[{"assignments":[12778],"declarations":[{"constant":false,"id":12778,"name":"controller","nodeType":"VariableDeclaration","scope":12849,"src":"2782:21:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":12777,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2782:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":12784,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":12780,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2817:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":12781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2817:12:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":12782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2817:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":12779,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2806:10:45","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":12783,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2806:26:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"2782:50:45"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12788,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12785,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"2883:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"2883:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":12787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2908:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2883:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12799,"nodeType":"IfStatement","src":"2879:136:45","trueBody":{"id":12798,"nodeType":"Block","src":"2911:104:45","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12792,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"2966:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12793,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"upgradeContract","nodeType":"MemberAccess","referencedDeclaration":12699,"src":"2966:24:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12794,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"2992:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"id":12790,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"2937:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"upgradeController","nodeType":"MemberAccess","referencedDeclaration":1442,"src":"2937:28:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (address,contract Avatar) external returns (bool)"}},"id":12795,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2937:62:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12789,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2929:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2929:71:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12797,"nodeType":"ExpressionStatement","src":"2929:71:45"}]}},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":12803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12800,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3069:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"3069:21:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"32","id":12802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3094:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"3069:26:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12848,"nodeType":"IfStatement","src":"3065:464:45","trueBody":{"id":12847,"nodeType":"Block","src":"3097:432:45","statements":[{"assignments":[12805],"declarations":[{"constant":false,"id":12805,"name":"permissions","nodeType":"VariableDeclaration","scope":12847,"src":"3115:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":12804,"name":"bytes4","nodeType":"ElementaryTypeName","src":"3115:6:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"value":null,"visibility":"internal"}],"id":12815,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12809,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21261,"src":"3176:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}],"id":12808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3168:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3168:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12812,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3191:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12811,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3183:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3183:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12806,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"3136:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getSchemePermissions","nodeType":"MemberAccess","referencedDeclaration":1689,"src":"3136:31:45","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bytes4_$","typeString":"function (address,address) view external returns (bytes4)"}},"id":12814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3136:63:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"3115:84:45"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12819,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3268:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12820,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"upgradeContract","nodeType":"MemberAccess","referencedDeclaration":12699,"src":"3268:24:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12821,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3294:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12822,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"params","nodeType":"MemberAccess","referencedDeclaration":12701,"src":"3294:15:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12823,"name":"permissions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12805,"src":"3311:11:45","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12825,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3332:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12824,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3324:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3324:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12817,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"3242:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"registerScheme","nodeType":"MemberAccess","referencedDeclaration":896,"src":"3242:25:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes32_$_t_bytes4_$_t_address_$returns$_t_bool_$","typeString":"function (address,bytes32,bytes4,address) external returns (bool)"}},"id":12827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3242:98:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12816,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3217:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3217:141:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12829,"nodeType":"ExpressionStatement","src":"3217:141:45"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":12835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12830,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12742,"src":"3380:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"id":12831,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"upgradeContract","nodeType":"MemberAccess","referencedDeclaration":12699,"src":"3380:24:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12833,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21261,"src":"3416:4:45","typeDescriptions":{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_UpgradeScheme_$13102","typeString":"contract UpgradeScheme"}],"id":12832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3408:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12834,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3408:13:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3380:41:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":12846,"nodeType":"IfStatement","src":"3376:139:45","trueBody":{"id":12845,"nodeType":"Block","src":"3423:92:45","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12840,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3487:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3479:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3479:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":12837,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12778,"src":"3453:10:45","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":12838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"unregisterSelf","nodeType":"MemberAccess","referencedDeclaration":996,"src":"3453:25:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$_t_bool_$","typeString":"function (address) external returns (bool)"}},"id":12842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3453:42:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":12836,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"3445:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":12843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3445:51:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12844,"nodeType":"ExpressionStatement","src":"3445:51:45"}]}}]}}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12853,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12732,"src":"3578:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12852,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3570:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3570:15:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12855,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"3587:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12856,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12723,"src":"3600:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":12851,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12691,"src":"3553:16:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$returns$__$","typeString":"function (address,bytes32,int256)"}},"id":12857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3553:54:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12858,"nodeType":"EmitStatement","src":"3548:59:45"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":12859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3624:4:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":12730,"id":12860,"nodeType":"Return","src":"3617:11:45"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.","id":12862,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":12726,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12721,"src":"2282:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":12727,"modifierName":{"argumentTypes":null,"id":12725,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"2264:17:45","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"2264:30:45"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":12724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12721,"name":"_proposalId","nodeType":"VariableDeclaration","scope":12862,"src":"2219:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12720,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2219:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12723,"name":"_param","nodeType":"VariableDeclaration","scope":12862,"src":"2240:13:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":12722,"name":"int256","nodeType":"ElementaryTypeName","src":"2240:6:45","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"2218:36:45"},"returnParameters":{"id":12730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12729,"name":"","nodeType":"VariableDeclaration","scope":12862,"src":"2303:4:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":12728,"name":"bool","nodeType":"ElementaryTypeName","src":"2303:4:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2302:6:45"},"scope":13102,"src":"2194:1441:45","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":12894,"nodeType":"Block","src":"3859:213:45","statements":[{"assignments":[12872],"declarations":[{"constant":false,"id":12872,"name":"paramsHash","nodeType":"VariableDeclaration","scope":12894,"src":"3869:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12871,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3869:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12877,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12874,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12864,"src":"3908:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":12875,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12866,"src":"3921:8:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12873,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13101,"src":"3890:17:45","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":12876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3890:40:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3869:61:45"},{"expression":{"argumentTypes":null,"id":12883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12878,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"3940:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12880,"indexExpression":{"argumentTypes":null,"id":12879,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"3951:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3940:22:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"id":12881,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":12712,"src":"3940:33:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12882,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12864,"src":"3976:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3940:47:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":12884,"nodeType":"ExpressionStatement","src":"3940:47:45"},{"expression":{"argumentTypes":null,"id":12890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12885,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"3997:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12887,"indexExpression":{"argumentTypes":null,"id":12886,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"4008:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3997:22:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"id":12888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"3997:30:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12889,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12866,"src":"4030:8:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3997:41:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12891,"nodeType":"ExpressionStatement","src":"3997:41:45"},{"expression":{"argumentTypes":null,"id":12892,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12872,"src":"4055:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12870,"id":12893,"nodeType":"Return","src":"4048:17:45"}]},"documentation":"@dev hash the parameters, save them if necessary, and return the hash value","id":12895,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":12867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12864,"name":"_voteParams","nodeType":"VariableDeclaration","scope":12895,"src":"3770:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12863,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3770:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12866,"name":"_intVote","nodeType":"VariableDeclaration","scope":12895,"src":"3799:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":12865,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3799:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3760:70:45"},"returnParameters":{"id":12870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12869,"name":"","nodeType":"VariableDeclaration","scope":12895,"src":"3846:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3846:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3845:9:45"},"scope":13102,"src":"3738:334:45","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":12979,"nodeType":"Block","src":"4531:799:45","statements":[{"assignments":[12907],"declarations":[{"constant":false,"id":12907,"name":"params","nodeType":"VariableDeclaration","scope":12979,"src":"4541:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters"},"typeName":{"contractScope":null,"id":12906,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12715,"src":"4541:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage_ptr","typeString":"struct UpgradeScheme.Parameters"}},"value":null,"visibility":"internal"}],"id":12913,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12908,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"4568:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12912,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12910,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"4607:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12909,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"4579:27:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4579:36:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4568:48:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4541:75:45"},{"assignments":[12915],"declarations":[{"constant":false,"id":12915,"name":"proposalId","nodeType":"VariableDeclaration","scope":12979,"src":"4626:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12914,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4626:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":12928,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":12919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4670:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12920,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"4673:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12921,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":12712,"src":"4673:17:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12922,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4692:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":12923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4692:10:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12925,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"4712:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12924,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4704:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4704:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12916,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"4647:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12917,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"4647:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":12918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4647:22:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":12927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4647:74:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4626:95:45"},{"assignments":[12930],"declarations":[{"constant":false,"id":12930,"name":"proposal","nodeType":"VariableDeclaration","scope":12979,"src":"4731:31:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"},"typeName":{"contractScope":null,"id":12929,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"4731:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}},"value":null,"visibility":"internal"}],"id":12938,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"31","id":12932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4809:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"argumentTypes":null,"id":12933,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12899,"src":"4841:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":12935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4885:1:45","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":12934,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4877:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":"bytes32"},"id":12936,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4877:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":12931,"name":"UpgradeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"4765:15:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_UpgradeProposal_$12704_storage_ptr_$","typeString":"type(struct UpgradeScheme.UpgradeProposal storage pointer)"}},"id":12937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["proposalType","upgradeContract","params"],"nodeType":"FunctionCall","src":"4765:133:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"4731:167:45"},{"expression":{"argumentTypes":null,"id":12947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12939,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"4908:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":12944,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12941,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"4939:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12940,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4931:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4931:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4908:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":12945,"indexExpression":{"argumentTypes":null,"id":12943,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"4949:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4908:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":12946,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12930,"src":"4963:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"src":"4908:63:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"id":12948,"nodeType":"ExpressionStatement","src":"4908:63:45"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12951,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"5022:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12950,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5014:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5014:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":12953,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"5040:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12955,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"5068:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"5068:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12954,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5060:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5060:23:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12958,"name":"_newController","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12899,"src":"5093:14:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":12959,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12901,"src":"5117:16:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":12949,"name":"NewUpgradeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12669,"src":"4986:18:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,string memory)"}},"id":12960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4986:157:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":12961,"nodeType":"EmitStatement","src":"4981:162:45"},{"expression":{"argumentTypes":null,"id":12975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12962,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5153:13:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":12968,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12964,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12907,"src":"5175:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":12965,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"5175:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":12963,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5167:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":12966,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5167:23:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5153:38:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":12969,"indexExpression":{"argumentTypes":null,"id":12967,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"5192:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5153:50:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":12971,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5245:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":12972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5245:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":12973,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12897,"src":"5278:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12970,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5206:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":12974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5206:90:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5153:143:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":12976,"nodeType":"ExpressionStatement","src":"5153:143:45"},{"expression":{"argumentTypes":null,"id":12977,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12915,"src":"5313:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12905,"id":12978,"nodeType":"Return","src":"5306:17:45"}]},"documentation":"@dev propose an upgrade of the organization's controller\n@param _avatar avatar of the organization\n@param _newController address of the new controller that is being proposed\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":12980,"implemented":true,"kind":"function","modifiers":[],"name":"proposeUpgrade","nodeType":"FunctionDefinition","parameters":{"id":12902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12897,"name":"_avatar","nodeType":"VariableDeclaration","scope":12980,"src":"4415:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12896,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4415:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12899,"name":"_newController","nodeType":"VariableDeclaration","scope":12980,"src":"4431:22:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12898,"name":"address","nodeType":"ElementaryTypeName","src":"4431:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12901,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":12980,"src":"4455:30:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12900,"name":"string","nodeType":"ElementaryTypeName","src":"4455:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4414:72:45"},"returnParameters":{"id":12905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12904,"name":"","nodeType":"VariableDeclaration","scope":12980,"src":"4518:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12903,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4518:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4517:9:45"},"scope":13102,"src":"4391:939:45","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13081,"nodeType":"Block","src":"5898:960:45","statements":[{"assignments":[12994],"declarations":[{"constant":false,"id":12994,"name":"params","nodeType":"VariableDeclaration","scope":13081,"src":"5908:24:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters"},"typeName":{"contractScope":null,"id":12993,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":12715,"src":"5908:10:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage_ptr","typeString":"struct UpgradeScheme.Parameters"}},"value":null,"visibility":"internal"}],"id":13000,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":12995,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12719,"src":"5935:10:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$12715_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.Parameters storage ref)"}},"id":12999,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":12997,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"5974:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":12996,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"5946:27:45","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":12998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5946:36:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5935:48:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_storage","typeString":"struct UpgradeScheme.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5908:75:45"},{"assignments":[13002],"declarations":[{"constant":false,"id":13002,"name":"intVote","nodeType":"VariableDeclaration","scope":13081,"src":"5993:24:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13001,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"5993:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":13005,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13003,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6020:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":13004,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"6020:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"5993:41:45"},{"assignments":[13007],"declarations":[{"constant":false,"id":13007,"name":"proposalId","nodeType":"VariableDeclaration","scope":13081,"src":"6044:18:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6044:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":13019,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":13010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6081:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13011,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6084:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":13012,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":12712,"src":"6084:17:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13013,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"6103:3:45","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13014,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6103:10:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13016,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6123:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6115:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6115:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13008,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13002,"src":"6065:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"6065:15:45","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":13018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6065:67:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"6044:88:45"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13021,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"6150:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":13025,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13023,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6181:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13022,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6173:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6173:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6150:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":13027,"indexExpression":{"argumentTypes":null,"id":13026,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6191:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6150:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"id":13028,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":12703,"src":"6150:65:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"30","id":13029,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6219:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6150:70:45","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13020,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"6142:7:45","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6142:79:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13032,"nodeType":"ExpressionStatement","src":"6142:79:45"},{"assignments":[13034],"declarations":[{"constant":false,"id":13034,"name":"proposal","nodeType":"VariableDeclaration","scope":13081,"src":"6232:31:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"},"typeName":{"contractScope":null,"id":13033,"name":"UpgradeProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":12704,"src":"6232:15:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage_ptr","typeString":"struct UpgradeScheme.UpgradeProposal"}},"value":null,"visibility":"internal"}],"id":13040,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":13036,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6310:1:45","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"id":13037,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"6342:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13038,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12986,"src":"6371:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13035,"name":"UpgradeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12704,"src":"6266:15:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_UpgradeProposal_$12704_storage_ptr_$","typeString":"type(struct UpgradeScheme.UpgradeProposal storage pointer)"}},"id":13039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["proposalType","upgradeContract","params"],"nodeType":"FunctionCall","src":"6266:123:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"6232:157:45"},{"expression":{"argumentTypes":null,"id":13049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13041,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12710,"src":"6399:22:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref))"}},"id":13046,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13043,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6430:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13042,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6422:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6422:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6399:40:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_UpgradeProposal_$12704_storage_$","typeString":"mapping(bytes32 => struct UpgradeScheme.UpgradeProposal storage ref)"}},"id":13047,"indexExpression":{"argumentTypes":null,"id":13045,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6440:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6399:52:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":13048,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13034,"src":"6454:8:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_memory_ptr","typeString":"struct UpgradeScheme.UpgradeProposal memory"}},"src":"6399:63:45","typeDescriptions":{"typeIdentifier":"t_struct$_UpgradeProposal_$12704_storage","typeString":"struct UpgradeScheme.UpgradeProposal storage ref"}},"id":13050,"nodeType":"ExpressionStatement","src":"6399:63:45"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13053,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6527:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13052,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6519:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13054,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6519:16:45","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13055,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6549:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13057,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12994,"src":"6581:6:45","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$12715_memory_ptr","typeString":"struct UpgradeScheme.Parameters memory"}},"id":13058,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":12714,"src":"6581:14:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13056,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6573:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6573:23:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13060,"name":"_scheme","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12984,"src":"6610:7:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13061,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12986,"src":"6631:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13062,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12988,"src":"6652:16:45","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13051,"name":"ChangeUpgradeSchemeProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12683,"src":"6478:27:45","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_address_$_t_bytes32_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,address,bytes32,string memory)"}},"id":13063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6478:200:45","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13064,"nodeType":"EmitStatement","src":"6473:205:45"},{"expression":{"argumentTypes":null,"id":13077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13065,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"6688:13:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":13070,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13067,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13002,"src":"6710:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13066,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6702:7:45","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"6702:16:45","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6688:31:45","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":13071,"indexExpression":{"argumentTypes":null,"id":13069,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6720:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6688:43:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13073,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"6773:5:45","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"6773:12:45","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13075,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":12982,"src":"6806:7:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13072,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"6734:12:45","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":13076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"6734:90:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"6688:136:45","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":13078,"nodeType":"ExpressionStatement","src":"6688:136:45"},{"expression":{"argumentTypes":null,"id":13079,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13007,"src":"6841:10:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":12992,"id":13080,"nodeType":"Return","src":"6834:17:45"}]},"documentation":"@dev propose to replace this scheme by another upgrading scheme\n@param _avatar avatar of the organization\n@param _scheme address of the new upgrading scheme\n@param _params the parameters of the new upgrading scheme\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":13082,"implemented":true,"kind":"function","modifiers":[],"name":"proposeChangeUpgradingScheme","nodeType":"FunctionDefinition","parameters":{"id":12989,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12982,"name":"_avatar","nodeType":"VariableDeclaration","scope":13082,"src":"5743:14:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":12981,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"5743:6:45","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":12984,"name":"_scheme","nodeType":"VariableDeclaration","scope":13082,"src":"5767:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12983,"name":"address","nodeType":"ElementaryTypeName","src":"5767:7:45","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":12986,"name":"_params","nodeType":"VariableDeclaration","scope":13082,"src":"5792:15:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12985,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5792:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":12988,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":13082,"src":"5817:30:45","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":12987,"name":"string","nodeType":"ElementaryTypeName","src":"5817:6:45","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"5733:120:45"},"returnParameters":{"id":12992,"nodeType":"ParameterList","parameters":[{"constant":false,"id":12991,"name":"","nodeType":"VariableDeclaration","scope":13082,"src":"5885:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":12990,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5885:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5884:9:45"},"scope":13102,"src":"5696:1162:45","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13100,"nodeType":"Block","src":"7058:77:45","statements":[{"expression":{"argumentTypes":null,"components":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13094,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13084,"src":"7104:11:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13095,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13086,"src":"7117:8:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":13092,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"7087:3:45","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13093,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"7087:16:45","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7087:39:45","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13091,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"7077:9:45","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"7077:50:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7076:52:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13090,"id":13099,"nodeType":"Return","src":"7068:60:45"}]},"documentation":"@dev return a hash of the given parameters","id":13101,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":13087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13084,"name":"_voteParams","nodeType":"VariableDeclaration","scope":13101,"src":"6964:19:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13083,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6964:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13086,"name":"_intVote","nodeType":"VariableDeclaration","scope":13101,"src":"6993:25:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13085,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"6993:16:45","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"6954:70:45"},"returnParameters":{"id":13090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13089,"name":"","nodeType":"VariableDeclaration","scope":13101,"src":"7045:7:45","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13088,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7045:7:45","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"7044:9:45"},"scope":13102,"src":"6928:207:45","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":13103,"src":"429:6708:45"}],"src":"0:7138:45"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.210Z","devdoc":{"details":"The scheme is used to upgrade the controller of an organization to a new controller.","methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_param":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"}},"getParametersHash(bytes32,address)":{"details":"return a hash of the given parameters"},"proposeChangeUpgradingScheme(address,address,bytes32,string)":{"details":"propose to replace this scheme by another upgrading scheme","params":{"_avatar":"avatar of the organization","_descriptionHash":"proposal description hash","_params":"the parameters of the new upgrading scheme","_scheme":"address of the new upgrading scheme"},"return":"an id which represents the proposal"},"proposeUpgrade(address,address,string)":{"details":"propose an upgrade of the organization's controller","params":{"_avatar":"avatar of the organization","_descriptionHash":"proposal description hash","_newController":"address of the new controller that is being proposed"},"return":"an id which represents the proposal"},"setParameters(bytes32,address)":{"details":"hash the parameters, save them if necessary, and return the hash value"}},"title":"A scheme to manage the upgrade of an organization."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VoteInOrganizationScheme.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VoteInOrganizationScheme.json new file mode 100644 index 00000000..c6e2dcb9 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VoteInOrganizationScheme.json @@ -0,0 +1 @@ +{"contractName":"VoteInOrganizationScheme","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"_intVoteInterface","type":"address"},{"indexed":false,"internalType":"contract IntVoteInterface","name":"_originalIntVote","type":"address"},{"indexed":false,"internalType":"bytes32","name":"_originalProposalId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_vote","type":"uint256"},{"indexed":false,"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"NewVoteProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"ProposalDeleted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_avatar","type":"address"},{"indexed":true,"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_param","type":"int256"},{"indexed":false,"internalType":"bytes","name":"_callReturnValue","type":"bytes"}],"name":"ProposalExecuted","type":"event"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"organizationsProposals","outputs":[{"internalType":"contract IntVoteInterface","name":"originalIntVote","type":"address"},{"internalType":"bytes32","name":"originalProposalId","type":"bytes32"},{"internalType":"uint256","name":"vote","type":"uint256"},{"internalType":"bool","name":"exist","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"parameters","outputs":[{"internalType":"contract IntVoteInterface","name":"intVote","type":"address"},{"internalType":"bytes32","name":"voteParams","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"},{"internalType":"int256","name":"_param","type":"int256"}],"name":"executeProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"_voteParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"setParameters","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract Avatar","name":"_avatar","type":"address"},{"internalType":"contract IntVoteInterface","name":"_originalIntVote","type":"address"},{"internalType":"bytes32","name":"_originalProposalId","type":"bytes32"},{"internalType":"uint256","name":"_vote","type":"uint256"},{"internalType":"string","name":"_descriptionHash","type":"string"}],"name":"proposeVote","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_voteParams","type":"bytes32"},{"internalType":"contract IntVoteInterface","name":"_intVote","type":"address"}],"name":"getParametersHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"pure","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_intVoteInterface\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"contract IntVoteInterface\",\"name\":\"_originalIntVote\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_originalProposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"NewVoteProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"ProposalDeleted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_avatar\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"_callReturnValue\",\"type\":\"bytes\"}],\"name\":\"ProposalExecuted\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"},{\"internalType\":\"int256\",\"name\":\"_param\",\"type\":\"int256\"}],\"name\":\"executeProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"getParametersHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"organizationsProposals\",\"outputs\":[{\"internalType\":\"contract IntVoteInterface\",\"name\":\"originalIntVote\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"originalProposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"vote\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"exist\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"parameters\",\"outputs\":[{\"internalType\":\"contract IntVoteInterface\",\"name\":\"intVote\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"voteParams\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract Avatar\",\"name\":\"_avatar\",\"type\":\"address\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_originalIntVote\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_originalProposalId\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_vote\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_descriptionHash\",\"type\":\"string\"}],\"name\":\"proposeVote\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_voteParams\",\"type\":\"bytes32\"},{\"internalType\":\"contract IntVoteInterface\",\"name\":\"_intVote\",\"type\":\"address\"}],\"name\":\"setParameters\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"A scheme to allow an organization to vote in a proposal.\",\"methods\":{\"executeProposal(bytes32,int256)\":{\"details\":\"execution of proposals, can only be called by the voting machine in which the vote is held.\",\"params\":{\"_param\":\"a parameter of the voting result, 1 yes and 2 is no.\",\"_proposalId\":\"the ID of the voting in the voting machine\"},\"return\":\"bool which represents a successful of the function\"},\"getParametersHash(bytes32,address)\":{\"details\":\"Hash the parameters, and return the hash value\",\"params\":{\"_intVote\":\"- voting machine contract.\",\"_voteParams\":\"- voting parameters\"},\"return\":\"bytes32 -the parameters hash\"},\"proposeVote(address,address,bytes32,uint256,string)\":{\"details\":\"propose to vote in other organization The function trigger NewVoteProposal event\",\"params\":{\"_avatar\":\"avatar of the organization\",\"_descriptionHash\":\"proposal description hash\",\"_originalIntVote\":\"the other organization voting machine\",\"_originalProposalId\":\"the other organization proposal id\",\"_vote\":\"- which value to vote in the destination organization\"},\"return\":\"an id which represents the proposal\"},\"setParameters(bytes32,address)\":{\"details\":\"Hash the parameters, save them if necessary, and return the hash value\",\"params\":{\"_intVote\":\"- voting machine contract.\",\"_voteParams\":\"- voting parameters\"},\"return\":\"bytes32 -the parameters hash\"}},\"title\":\"VoteInOrganizationScheme.\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/universalSchemes/VoteInOrganizationScheme.sol\":\"VoteInOrganizationScheme\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/VoteInOrganizationScheme.sol\":{\"keccak256\":\"0xc5a79f56bc73a05abe2a493513013640bddda3725b216512ce27ed5503681799\",\"urls\":[\"bzz-raw://6a8477098b475d5cd6b74a202de930f788555a75db3b7e6f134c51c177ac0399\",\"dweb:/ipfs/QmcEUEuaVGm27rcAbh1DjwW1ZbvA7jsX3Phs7vfihZGZJq\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"382:5654:46:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;382:5654:46;;;;;;;","deployedSourceMap":"382:5654:46:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;382:5654:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1543:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1543:46:46;;:::i;:::-;;;;-1:-1:-1;;;;;1543:46:46;;;;;;;;;;;;;;;;;;;;;1262:78;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1262:78:46;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;1262:78:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4177:1435;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;4177:1435:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;4177:1435:46;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4177:1435:46;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;4177:1435:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;4177:1435:46;;-1:-1:-1;4177:1435:46;;-1:-1:-1;;;;;4177:1435:46:i;:::-;;;;;;;;;;;;;;;;5830:204;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5830:204:46;;;;;;-1:-1:-1;;;;;5830:204:46;;:::i;598:73:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;3356:334:46;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3356:334:46;;;;;;-1:-1:-1;;;;;3356:334:46;;:::i;1973:346:50:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;2666:345::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;1920:1194:46:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1920:1194:46;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2325:335:50;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;678:401::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;1085:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;1543:46:46:-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1543:46:46;;;;;:::o;1262:78::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1262:78:46;;;;;;;;;;:::o;4177:1435::-;4369:7;4392:24;;:::i;:::-;4419:10;:48;4430:36;4458:7;4430:27;:36::i;:::-;4419:48;;;;;;;;;;;;;;-1:-1:-1;4419:48:46;;;4392:75;;;;;;;;;-1:-1:-1;;;;;4392:75:46;;;;;;;;;;;;;;;;;;4565:43;;-1:-1:-1;;;4565:43:46;;;;4392:75;;-1:-1:-1;4392:75:46;;-1:-1:-1;;;;4565:41:46;;;;;:43;;;;;4419:48;4565:43;;;;;:41;:43;;;5:2:-1;;;;30:1;27;20:12;5:2;4565:43:46;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4565:43:46;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4565:43:46;;;;;;;;;-1:-1:-1;4565:43:46;-1:-1:-1;4626:16:46;;;;;;:36;;;4655:7;4646:5;:16;;4626:36;4618:84;;;;-1:-1:-1;;;4618:84:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4729:16;-1:-1:-1;;;;;4729:35:46;;4765:19;4729:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4729:56:46;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4729:56:46;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4729:56:46;4720:65;;;4712:139;;;;-1:-1:-1;;;4712:139:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4902:17;;;;;4883:67;;;-1:-1:-1;;;4883:67:46;;4899:1;4883:67;;;;;;;;;;;4921:10;4883:67;;;;-1:-1:-1;;;;;4883:67:46;;;;;;;;;4862:18;;4883:15;;;;;;:67;;;;;4902:17;;4883:67;;;;;4862:18;4883:15;:67;;;5:2:-1;;;;30:1;27;20:12;5:2;4883:67:46;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4883:67:46;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4883:67:46;;;;;;;;;;;;;;;;4862:88;;5016:173;;;;;;;;5060:16;-1:-1:-1;;;;;5016:173:46;;;;;5110:19;5016:173;;;;5148:5;5016:173;;;;5174:4;5016:173;;;;;4961:22;:40;4992:7;-1:-1:-1;;;;;4961:40:46;-1:-1:-1;;;;;4961:40:46;;;;;;;;;;;;:52;5002:10;4961:52;;;;;;;;;;;:228;;;;;;;;;;;;;-1:-1:-1;;;;;4961:228:46;;;;;-1:-1:-1;;;;;4961:228:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5295:6;:14;;;-1:-1:-1;;;;;5204:228:46;5263:10;5241:7;-1:-1:-1;;;;;5204:228:46;;5324:16;5354:19;5387:5;5406:16;5204:228;;;;-1:-1:-1;;;;;5204:228:46;-1:-1:-1;;;;;5204:228:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5204:228:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5488:90;;;;;;;;5527:12;5488:90;;-1:-1:-1;;;;;5488:90:46;;;;;;;;;;5442:31;;;-1:-1:-1;5442:31:46;;;;;;;;;:43;;;;;;;;;;:136;;;;;;;;;;;-1:-1:-1;;;;;;5442:136:46;;;;;;;;;;;;-1:-1:-1;5442:43:46;4177:1435;-1:-1:-1;;;;;;;4177:1435:46:o;5830:204::-;5987:39;;;;;;;;;;-1:-1:-1;;5987:39:46;;;;;;;;;;;22:32:-1;26:21;;;22:32;6:49;;5987:39:46;;;;;;;5977:50;;;;;5830:204;;;;;:::o;598:73:50:-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;3356:334:46:-;3464:7;3487:18;3508:40;3526:11;3539:8;3508:17;:40::i;:::-;3558:22;;;;:10;:22;;;;;:33;;;:47;;;3615:41;;-1:-1:-1;;;;;3615:41:46;;-1:-1:-1;;;;;;3615:41:46;;;;;;3487:61;-1:-1:-1;;3356:334:46;;;;:::o;1973:346:50:-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;1973:346;-1:-1:-1;;;;1973:346:50:o;2666:345::-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;1920:1194:46;443:10:50;2029:4:46;429:25:50;;;;;;;;;;;:38;;;;;;;;:45;;;2008:11:46;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;2075:10:46;2045:13;2061:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2061:45:46;2176:28;;:::i;:::-;-1:-1:-1;;;;;;2207:39:46;;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2176:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2269:23;;;;;;-1:-1:-1;;;;;2309:39:46;;;;;;:22;:39;;;;;;;;:52;;;;;;;;;2302:59;;-1:-1:-1;;;;;;2302:59:46;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2302:59:46;;;2376:45;2349:11;;2309:39;2376:45;;;2431:28;2469:12;2533:6;2543:1;2533:11;2529:472;;;2561:21;2596:6;-1:-1:-1;;;;;2596:12:46;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2596:14:46;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2596:14:46;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2596:14:46;;;;;;;;;;;;;;;;2561:50;;2654:10;-1:-1:-1;;;;;2654:22:46;;2698:8;:24;;;2814:8;:27;;;2855:8;:13;;;2882:1;2905:4;2737:174;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2737:174:46;-1:-1:-1;;;;;2737:174:46;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2737:174:46;;;-1:-1:-1;;;;;;;;2737:174:46;;38:4:-1;29:7;25:18;67:10;61:17;-1:-1;;;;;199:8;192:4;186;182:15;179:29;167:10;160:49;0:215;;;2737:174:46;2925:6;2945:1;2654:306;;;;;;;;;;;;;-1:-1:-1;;;;;2654:306:46;-1:-1:-1;;;;;2654:306:46;;;;;;;;;-1:-1:-1;;;;;2654:306:46;-1:-1:-1;;;;;2654:306:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;2654:306:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2654:306:46;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2654:306:46;;;;;;39:16:-1;36:1;17:17;2:54;101:4;2654:306:46;80:15:-1;;;-1:-1;;76:31;65:43;;120:4;113:20;;;5:11;;2:2;;;29:1;26;19:12;2:2;2654:306:46;;;;;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;2654:306:46;;420:4:-1;411:14;;;;2654:306:46;;;;;411:14:-1;2654:306:46;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;2654:306:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2625:335;;;;;;;;2982:7;2974:16;;;;;;2529:472;;3049:11;3040:6;-1:-1:-1;;;;;3015:71:46;;3062:6;3070:15;3015:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;3015:71:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3103:4:46;;1920:1194;-1:-1:-1;;;;;;;1920:1194:46:o;2325:335:50:-;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;678:401::-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;1085:::-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;290:322:43;365:7;403;-1:-1:-1;;;;;403:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;403:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;403:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;403:15:43;392:79;;;-1:-1:-1;;;392:79:43;;447:4;392:79;;;;-1:-1:-1;;;;;392:79:43;;;;;;;;;:46;;;;;;;:79;;;;;403:15;;392:79;;;;;;;:46;:79;;;5:2:-1;;;;30:1;27;20:12;5:2;392:79:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;392:79:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;392:79:43;384:124;;;;;-1:-1:-1;;;384:124:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;536:7;-1:-1:-1;;;;;536:13:43;;:15;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;536:15:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;536:15:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;536:15:43;525:80;;;-1:-1:-1;;;525:80:43;;581:4;525:80;;;;-1:-1:-1;;;;;525:80:43;;;;;;;;;:47;;;;;;;:80;;;;;536:15;;525:80;;;;;;;:47;:80;;;5:2:-1;;;;30:1;27;20:12;5:2;525:80:43;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;525:80:43;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;525:80:43;;290:322;-1:-1:-1;;290:322:43:o;382:5654:46:-;;;;;;;;;;-1:-1:-1;382:5654:46;;;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;382:5654:46;;;;;;;;;;;;;;;;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\";\nimport \"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\";\nimport \"./UniversalScheme.sol\";\nimport \"../votingMachines/VotingMachineCallbacks.sol\";\n\n\n/**\n * @title VoteInOrganizationScheme.\n * @dev A scheme to allow an organization to vote in a proposal.\n */\ncontract VoteInOrganizationScheme is UniversalScheme, VotingMachineCallbacks, ProposalExecuteInterface {\n event NewVoteProposal(\n address indexed _avatar,\n bytes32 indexed _proposalId,\n address indexed _intVoteInterface,\n IntVoteInterface _originalIntVote,\n bytes32 _originalProposalId,\n uint256 _vote,\n string _descriptionHash\n );\n\n event ProposalExecuted(address indexed _avatar, bytes32 indexed _proposalId, int256 _param, bytes _callReturnValue);\n event ProposalDeleted(address indexed _avatar, bytes32 indexed _proposalId);\n\n // Details of a voting proposal:\n struct VoteProposal {\n IntVoteInterface originalIntVote;\n bytes32 originalProposalId;\n uint256 vote;\n bool exist;\n }\n\n // A mapping from the organization (Avatar) address to the saved data of the organization:\n mapping(address=>mapping(bytes32=>VoteProposal)) public organizationsProposals;\n\n struct Parameters {\n IntVoteInterface intVote;\n bytes32 voteParams;\n }\n\n // A mapping from hashes to parameters (use to store a particular configuration on the controller)\n mapping(bytes32=>Parameters) public parameters;\n\n /**\n * @dev execution of proposals, can only be called by the voting machine in which the vote is held.\n * @param _proposalId the ID of the voting in the voting machine\n * @param _param a parameter of the voting result, 1 yes and 2 is no.\n * @return bool which represents a successful of the function\n */\n function executeProposal(bytes32 _proposalId, int256 _param) external onlyVotingMachine(_proposalId) returns(bool) {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n // Save proposal to memory and delete from storage:\n VoteProposal memory proposal = organizationsProposals[address(avatar)][_proposalId];\n require(proposal.exist);\n delete organizationsProposals[address(avatar)][_proposalId];\n emit ProposalDeleted(address(avatar), _proposalId);\n bytes memory callReturnValue;\n bool success;\n // If no decision do nothing:\n if (_param == 1) {\n\n Controller controller = Controller(avatar.owner());\n (success, callReturnValue) = controller.genericCall(\n address(proposal.originalIntVote),\n abi.encodeWithSignature(\"vote(bytes32,uint256,uint256,address)\",\n proposal.originalProposalId,\n proposal.vote,\n 0,\n address(this)),\n avatar,\n 0\n );\n require(success);\n }\n emit ProposalExecuted(address(avatar), _proposalId, _param, callReturnValue);\n return true;\n }\n\n /**\n * @dev Hash the parameters, save them if necessary, and return the hash value\n * @param _voteParams - voting parameters\n * @param _intVote - voting machine contract.\n * @return bytes32 -the parameters hash\n */\n function setParameters(\n bytes32 _voteParams,\n IntVoteInterface _intVote\n ) public returns(bytes32)\n {\n bytes32 paramsHash = getParametersHash(_voteParams, _intVote);\n parameters[paramsHash].voteParams = _voteParams;\n parameters[paramsHash].intVote = _intVote;\n return paramsHash;\n }\n\n /**\n * @dev propose to vote in other organization\n * The function trigger NewVoteProposal event\n * @param _avatar avatar of the organization\n * @param _originalIntVote the other organization voting machine\n * @param _originalProposalId the other organization proposal id\n * @param _vote - which value to vote in the destination organization\n * @param _descriptionHash proposal description hash\n * @return an id which represents the proposal\n */\n function proposeVote(\n Avatar _avatar,\n IntVoteInterface _originalIntVote,\n bytes32 _originalProposalId,\n uint256 _vote,\n string memory _descriptionHash)\n public\n returns(bytes32)\n {\n Parameters memory params = parameters[getParametersFromController(_avatar)];\n IntVoteInterface intVote = params.intVote;\n (uint256 minVote, uint256 maxVote) = _originalIntVote.getAllowedRangeOfChoices();\n require(_vote <= maxVote && _vote >= minVote, \"vote should be in the allowed range\");\n require(_vote <= _originalIntVote.getNumberOfChoices(_originalProposalId),\n \"vote should be <= original proposal number of choices\");\n\n bytes32 proposalId = intVote.propose(2, params.voteParams, msg.sender, address(_avatar));\n\n organizationsProposals[address(_avatar)][proposalId] = VoteProposal({\n originalIntVote: _originalIntVote,\n originalProposalId: _originalProposalId,\n vote:_vote,\n exist: true\n });\n emit NewVoteProposal(\n address(_avatar),\n proposalId,\n address(params.intVote),\n _originalIntVote,\n _originalProposalId,\n _vote,\n _descriptionHash\n );\n proposalsInfo[address(intVote)][proposalId] = ProposalInfo({\n blockNumber:block.number,\n avatar:_avatar\n });\n return proposalId;\n }\n\n /**\n * @dev Hash the parameters, and return the hash value\n * @param _voteParams - voting parameters\n * @param _intVote - voting machine contract.\n * @return bytes32 -the parameters hash\n */\n function getParametersHash(\n bytes32 _voteParams,\n IntVoteInterface _intVote\n ) public pure returns(bytes32)\n {\n return keccak256(abi.encodePacked(_voteParams, _intVote));\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/universalSchemes/VoteInOrganizationScheme.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/VoteInOrganizationScheme.sol","exportedSymbols":{"VoteInOrganizationScheme":[13454]},"id":13455,"nodeType":"SourceUnit","nodes":[{"id":13104,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:46"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":13105,"nodeType":"ImportDirective","scope":13455,"sourceUnit":19817,"src":"25:71:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":13106,"nodeType":"ImportDirective","scope":13455,"sourceUnit":20032,"src":"97:86:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":13107,"nodeType":"ImportDirective","scope":13455,"sourceUnit":12635,"src":"184:31:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":13108,"nodeType":"ImportDirective","scope":13455,"sourceUnit":14651,"src":"216:54:46","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":13109,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"419:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":13110,"nodeType":"InheritanceSpecifier","src":"419:15:46"},{"arguments":null,"baseName":{"contractScope":null,"id":13111,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"436:22:46","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":13112,"nodeType":"InheritanceSpecifier","src":"436:22:46"},{"arguments":null,"baseName":{"contractScope":null,"id":13113,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"460:24:46","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":13114,"nodeType":"InheritanceSpecifier","src":"460:24:46"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title VoteInOrganizationScheme.\n@dev A scheme to allow an organization to vote in a proposal.","fullyImplemented":true,"id":13454,"linearizedBaseContracts":[13454,19828,14650,20031,12634,12645],"name":"VoteInOrganizationScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":13130,"name":"NewVoteProposal","nodeType":"EventDefinition","parameters":{"id":13129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13116,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13130,"src":"522:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13115,"name":"address","nodeType":"ElementaryTypeName","src":"522:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13118,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13130,"src":"555:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"555:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13120,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":13130,"src":"592:33:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13119,"name":"address","nodeType":"ElementaryTypeName","src":"592:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13122,"indexed":false,"name":"_originalIntVote","nodeType":"VariableDeclaration","scope":13130,"src":"635:33:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13121,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"635:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13124,"indexed":false,"name":"_originalProposalId","nodeType":"VariableDeclaration","scope":13130,"src":"678:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"678:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13126,"indexed":false,"name":"_vote","nodeType":"VariableDeclaration","scope":13130,"src":"715:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13125,"name":"uint256","nodeType":"ElementaryTypeName","src":"715:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13128,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":13130,"src":"738:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13127,"name":"string","nodeType":"ElementaryTypeName","src":"738:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"512:255:46"},"src":"491:277:46"},{"anonymous":false,"documentation":null,"id":13140,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":13139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13132,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13140,"src":"797:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13131,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13134,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13140,"src":"822:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13136,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":13140,"src":"851:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13135,"name":"int256","nodeType":"ElementaryTypeName","src":"851:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13138,"indexed":false,"name":"_callReturnValue","nodeType":"VariableDeclaration","scope":13140,"src":"866:22:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13137,"name":"bytes","nodeType":"ElementaryTypeName","src":"866:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"796:93:46"},"src":"774:116:46"},{"anonymous":false,"documentation":null,"id":13146,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":13145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13142,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13146,"src":"917:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13141,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13144,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13146,"src":"942:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"942:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"916:54:46"},"src":"895:76:46"},{"canonicalName":"VoteInOrganizationScheme.VoteProposal","id":13155,"members":[{"constant":false,"id":13148,"name":"originalIntVote","nodeType":"VariableDeclaration","scope":13155,"src":"1044:32:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13147,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1044:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13150,"name":"originalProposalId","nodeType":"VariableDeclaration","scope":13155,"src":"1086:26:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1086:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13152,"name":"vote","nodeType":"VariableDeclaration","scope":13155,"src":"1122:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13151,"name":"uint256","nodeType":"ElementaryTypeName","src":"1122:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13154,"name":"exist","nodeType":"VariableDeclaration","scope":13155,"src":"1144:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13153,"name":"bool","nodeType":"ElementaryTypeName","src":"1144:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"VoteProposal","nodeType":"StructDefinition","scope":13454,"src":"1014:147:46","visibility":"public"},{"constant":false,"id":13161,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":13454,"src":"1262:78:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal))"},"typeName":{"id":13160,"keyType":{"id":13156,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1262:48:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal))"},"valueType":{"id":13159,"keyType":{"id":13157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1287:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1279:30:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal)"},"valueType":{"contractScope":null,"id":13158,"name":"VoteProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":13155,"src":"1296:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"VoteInOrganizationScheme.Parameters","id":13166,"members":[{"constant":false,"id":13163,"name":"intVote","nodeType":"VariableDeclaration","scope":13166,"src":"1375:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13162,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1375:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13165,"name":"voteParams","nodeType":"VariableDeclaration","scope":13166,"src":"1409:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1409:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":13454,"src":"1347:87:46","visibility":"public"},{"constant":false,"id":13170,"name":"parameters","nodeType":"VariableDeclaration","scope":13454,"src":"1543:46:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters)"},"typeName":{"id":13169,"keyType":{"id":13167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1551:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1543:28:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters)"},"valueType":{"contractScope":null,"id":13168,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":13166,"src":"1560:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage_ptr","typeString":"struct VoteInOrganizationScheme.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":13283,"nodeType":"Block","src":"2035:1079:46","statements":[{"assignments":[13183],"declarations":[{"constant":false,"id":13183,"name":"avatar","nodeType":"VariableDeclaration","scope":13283,"src":"2045:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13182,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2045:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":13191,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13184,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2061:13:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":13187,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13185,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2075:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2075:10:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2061:25:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":13189,"indexExpression":{"argumentTypes":null,"id":13188,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2087:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2061:38:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":13190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2061:45:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2045:61:46"},{"assignments":[13193],"declarations":[{"constant":false,"id":13193,"name":"proposal","nodeType":"VariableDeclaration","scope":13283,"src":"2176:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal"},"typeName":{"contractScope":null,"id":13192,"name":"VoteProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":13155,"src":"2176:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal"}},"value":null,"visibility":"internal"}],"id":13201,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13194,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13161,"src":"2207:22:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref))"}},"id":13198,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13196,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2238:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2230:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2230:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2207:39:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref)"}},"id":13200,"indexExpression":{"argumentTypes":null,"id":13199,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2247:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2207:52:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2176:83:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13203,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2277:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":13154,"src":"2277:14:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13202,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2269:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2269:23:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13206,"nodeType":"ExpressionStatement","src":"2269:23:46"},{"expression":{"argumentTypes":null,"id":13214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2302:59:46","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13207,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13161,"src":"2309:22:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref))"}},"id":13211,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13209,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2340:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2332:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2332:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:39:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref)"}},"id":13213,"indexExpression":{"argumentTypes":null,"id":13212,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2349:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2309:52:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13215,"nodeType":"ExpressionStatement","src":"2302:59:46"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13218,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2400:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2392:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2392:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13220,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2409:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13216,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13146,"src":"2376:15:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":13221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2376:45:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13222,"nodeType":"EmitStatement","src":"2371:50:46"},{"assignments":[13224],"declarations":[{"constant":false,"id":13224,"name":"callReturnValue","nodeType":"VariableDeclaration","scope":13283,"src":"2431:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13223,"name":"bytes","nodeType":"ElementaryTypeName","src":"2431:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":13225,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2431:28:46"},{"assignments":[13227],"declarations":[{"constant":false,"id":13227,"name":"success","nodeType":"VariableDeclaration","scope":13283,"src":"2469:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13226,"name":"bool","nodeType":"ElementaryTypeName","src":"2469:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":13228,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2469:12:46"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13229,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13174,"src":"2533:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":13230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2543:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2533:11:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13271,"nodeType":"IfStatement","src":"2529:472:46","trueBody":{"id":13270,"nodeType":"Block","src":"2546:455:46","statements":[{"assignments":[13233],"declarations":[{"constant":false,"id":13233,"name":"controller","nodeType":"VariableDeclaration","scope":13270,"src":"2561:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":13232,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2561:10:46","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":13239,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13235,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2596:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2596:12:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":13237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:14:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13234,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2585:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":13238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:26:46","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"2561:50:46"},{"expression":{"argumentTypes":null,"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13240,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13227,"src":"2626:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":13241,"name":"callReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13224,"src":"2635:15:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":13242,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2625:26:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2698:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originalIntVote","nodeType":"MemberAccess","referencedDeclaration":13148,"src":"2698:24:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2690:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2690:33:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"766f746528627974657333322c75696e743235362c75696e743235362c6164647265737329","id":13251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2761:39:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_359afa49e07a90b2e02bddde33bfd011f2b5f03f7222fd6fa45906ec488a880d","typeString":"literal_string \"vote(bytes32,uint256,uint256,address)\""},"value":"vote(bytes32,uint256,uint256,address)"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13252,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2814:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originalProposalId","nodeType":"MemberAccess","referencedDeclaration":13150,"src":"2814:27:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13254,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2855:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":13152,"src":"2855:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":13256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2882:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13258,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21263,"src":"2905:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_VoteInOrganizationScheme_$13454","typeString":"contract VoteInOrganizationScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VoteInOrganizationScheme_$13454","typeString":"contract VoteInOrganizationScheme"}],"id":13257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2897:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2897:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_359afa49e07a90b2e02bddde33bfd011f2b5f03f7222fd6fa45906ec488a880d","typeString":"literal_string \"vote(bytes32,uint256,uint256,address)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":13249,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2737:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2737:23:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2737:174:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":13261,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2925:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"hexValue":"30","id":13262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2945:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":null,"id":13243,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13233,"src":"2654:10:46","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":1475,"src":"2654:22:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_contract$_Avatar_$337_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,contract Avatar,uint256) external returns (bool,bytes memory)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2654:306:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"2625:335:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13265,"nodeType":"ExpressionStatement","src":"2625:335:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13267,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13227,"src":"2982:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2974:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2974:16:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13269,"nodeType":"ExpressionStatement","src":"2974:16:46"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13274,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"3040:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3032:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3032:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13276,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"3049:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13277,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13174,"src":"3062:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":13278,"name":"callReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13224,"src":"3070:15:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13272,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13140,"src":"3015:16:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,int256,bytes memory)"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3015:71:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13280,"nodeType":"EmitStatement","src":"3010:76:46"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":13281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3103:4:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13181,"id":13282,"nodeType":"Return","src":"3096:11:46"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.\n@return bool which represents a successful of the function","id":13284,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":13177,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2008:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13178,"modifierName":{"argumentTypes":null,"id":13176,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"1990:17:46","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"1990:30:46"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":13175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13172,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13284,"src":"1945:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1945:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13174,"name":"_param","nodeType":"VariableDeclaration","scope":13284,"src":"1966:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13173,"name":"int256","nodeType":"ElementaryTypeName","src":"1966:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1944:36:46"},"returnParameters":{"id":13181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13180,"name":"","nodeType":"VariableDeclaration","scope":13284,"src":"2029:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13179,"name":"bool","nodeType":"ElementaryTypeName","src":"2029:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2028:6:46"},"scope":13454,"src":"1920:1194:46","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":13316,"nodeType":"Block","src":"3477:213:46","statements":[{"assignments":[13294],"declarations":[{"constant":false,"id":13294,"name":"paramsHash","nodeType":"VariableDeclaration","scope":13316,"src":"3487:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3487:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":13299,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13296,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13286,"src":"3526:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13297,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13288,"src":"3539:8:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13295,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"3508:17:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":13298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3508:40:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3487:61:46"},{"expression":{"argumentTypes":null,"id":13305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13300,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"3558:10:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters storage ref)"}},"id":13302,"indexExpression":{"argumentTypes":null,"id":13301,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"3569:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3558:22:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage","typeString":"struct VoteInOrganizationScheme.Parameters storage ref"}},"id":13303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":13165,"src":"3558:33:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":13304,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13286,"src":"3594:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3558:47:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13306,"nodeType":"ExpressionStatement","src":"3558:47:46"},{"expression":{"argumentTypes":null,"id":13312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13307,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"3615:10:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters storage ref)"}},"id":13309,"indexExpression":{"argumentTypes":null,"id":13308,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"3626:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3615:22:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage","typeString":"struct VoteInOrganizationScheme.Parameters storage ref"}},"id":13310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":13163,"src":"3615:30:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":13311,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13288,"src":"3648:8:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3615:41:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13313,"nodeType":"ExpressionStatement","src":"3615:41:46"},{"expression":{"argumentTypes":null,"id":13314,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"3673:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13292,"id":13315,"nodeType":"Return","src":"3666:17:46"}]},"documentation":"@dev Hash the parameters, save them if necessary, and return the hash value\n@param _voteParams - voting parameters\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":13317,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":13289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13286,"name":"_voteParams","nodeType":"VariableDeclaration","scope":13317,"src":"3388:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3388:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13288,"name":"_intVote","nodeType":"VariableDeclaration","scope":13317,"src":"3417:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13287,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3417:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3378:70:46"},"returnParameters":{"id":13292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13291,"name":"","nodeType":"VariableDeclaration","scope":13317,"src":"3464:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3464:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3463:9:46"},"scope":13454,"src":"3356:334:46","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13434,"nodeType":"Block","src":"4382:1230:46","statements":[{"assignments":[13333],"declarations":[{"constant":false,"id":13333,"name":"params","nodeType":"VariableDeclaration","scope":13434,"src":"4392:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters"},"typeName":{"contractScope":null,"id":13332,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":13166,"src":"4392:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage_ptr","typeString":"struct VoteInOrganizationScheme.Parameters"}},"value":null,"visibility":"internal"}],"id":13339,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13334,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"4419:10:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters storage ref)"}},"id":13338,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13336,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"4458:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13335,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"4430:27:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":13337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4430:36:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4419:48:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage","typeString":"struct VoteInOrganizationScheme.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4392:75:46"},{"assignments":[13341],"declarations":[{"constant":false,"id":13341,"name":"intVote","nodeType":"VariableDeclaration","scope":13434,"src":"4477:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13340,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"4477:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":13344,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13342,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13333,"src":"4504:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters memory"}},"id":13343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":13163,"src":"4504:14:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"4477:41:46"},{"assignments":[13346,13348],"declarations":[{"constant":false,"id":13346,"name":"minVote","nodeType":"VariableDeclaration","scope":13434,"src":"4529:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13345,"name":"uint256","nodeType":"ElementaryTypeName","src":"4529:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13348,"name":"maxVote","nodeType":"VariableDeclaration","scope":13434,"src":"4546:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13347,"name":"uint256","nodeType":"ElementaryTypeName","src":"4546:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13352,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13349,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"4565:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAllowedRangeOfChoices","nodeType":"MemberAccess","referencedDeclaration":19815,"src":"4565:41:46","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_uint256_$_t_uint256_$","typeString":"function () pure external returns (uint256,uint256)"}},"id":13351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4565:43:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4528:80:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13354,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"4626:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":13355,"name":"maxVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13348,"src":"4635:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4626:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13357,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"4646:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":13358,"name":"minVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"4655:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4646:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4626:36:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74652073686f756c6420626520696e2074686520616c6c6f7765642072616e6765","id":13361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4664:37:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_27a3a000410c900e9904906473451c4a59b2f58d717517696de0f411f8535aad","typeString":"literal_string \"vote should be in the allowed range\""},"value":"vote should be in the allowed range"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_27a3a000410c900e9904906473451c4a59b2f58d717517696de0f411f8535aad","typeString":"literal_string \"vote should be in the allowed range\""}],"id":13353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4618:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4618:84:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13363,"nodeType":"ExpressionStatement","src":"4618:84:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13365,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"4720:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13368,"name":"_originalProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"4765:19:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13366,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"4729:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getNumberOfChoices","nodeType":"MemberAccess","referencedDeclaration":19787,"src":"4729:35:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4729:56:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4720:65:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74652073686f756c64206265203c3d206f726967696e616c2070726f706f73616c206e756d626572206f662063686f69636573","id":13371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4795:55:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6b92eb2f874925a8b5adcb6dd70664ddf44753a1295467639d4b1afe58e9c997","typeString":"literal_string \"vote should be <= original proposal number of choices\""},"value":"vote should be <= original proposal number of choices"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b92eb2f874925a8b5adcb6dd70664ddf44753a1295467639d4b1afe58e9c997","typeString":"literal_string \"vote should be <= original proposal number of choices\""}],"id":13364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4712:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4712:139:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13373,"nodeType":"ExpressionStatement","src":"4712:139:46"},{"assignments":[13375],"declarations":[{"constant":false,"id":13375,"name":"proposalId","nodeType":"VariableDeclaration","scope":13434,"src":"4862:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4862:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":13387,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":13378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13379,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13333,"src":"4902:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters memory"}},"id":13380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":13165,"src":"4902:17:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13381,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4921:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4921:10:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13384,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"4941:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4933:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4933:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13376,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13341,"src":"4883:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4883:15:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":13386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4883:67:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4862:88:46"},{"expression":{"argumentTypes":null,"id":13401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13388,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13161,"src":"4961:22:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref))"}},"id":13393,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13390,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"4992:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4984:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4984:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4961:40:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref)"}},"id":13394,"indexExpression":{"argumentTypes":null,"id":13392,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5002:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4961:52:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13396,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"5060:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},{"argumentTypes":null,"id":13397,"name":"_originalProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"5110:19:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13398,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"5148:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"74727565","id":13399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5174:4:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13395,"name":"VoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13155,"src":"5016:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_VoteProposal_$13155_storage_ptr_$","typeString":"type(struct VoteInOrganizationScheme.VoteProposal storage pointer)"}},"id":13400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["originalIntVote","originalProposalId","vote","exist"],"nodeType":"FunctionCall","src":"5016:173:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"src":"4961:228:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"id":13402,"nodeType":"ExpressionStatement","src":"4961:228:46"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13405,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"5241:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5233:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5233:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13407,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5263:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13409,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13333,"src":"5295:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters memory"}},"id":13410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":13163,"src":"5295:14:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5287:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:23:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13412,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"5324:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},{"argumentTypes":null,"id":13413,"name":"_originalProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"5354:19:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13414,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"5387:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13415,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13327,"src":"5406:16:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13403,"name":"NewVoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13130,"src":"5204:15:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_contract$_IntVoteInterface_$19816_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,contract IntVoteInterface,bytes32,uint256,string memory)"}},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5204:228:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13417,"nodeType":"EmitStatement","src":"5199:233:46"},{"expression":{"argumentTypes":null,"id":13430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13418,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5442:13:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":13423,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13420,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13341,"src":"5464:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5456:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5456:16:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5442:31:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":13424,"indexExpression":{"argumentTypes":null,"id":13422,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5474:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5442:43:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13426,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5527:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5527:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13428,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"5560:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13425,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5488:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":13429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5488:90:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5442:136:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":13431,"nodeType":"ExpressionStatement","src":"5442:136:46"},{"expression":{"argumentTypes":null,"id":13432,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5595:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13331,"id":13433,"nodeType":"Return","src":"5588:17:46"}]},"documentation":"@dev propose to vote in other organization\n The function trigger NewVoteProposal event\n@param _avatar avatar of the organization\n@param _originalIntVote the other organization voting machine\n@param _originalProposalId the other organization proposal id\n@param _vote - which value to vote in the destination organization\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":13435,"implemented":true,"kind":"function","modifiers":[],"name":"proposeVote","nodeType":"FunctionDefinition","parameters":{"id":13328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13319,"name":"_avatar","nodeType":"VariableDeclaration","scope":13435,"src":"4203:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13318,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4203:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13321,"name":"_originalIntVote","nodeType":"VariableDeclaration","scope":13435,"src":"4223:33:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13320,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"4223:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13323,"name":"_originalProposalId","nodeType":"VariableDeclaration","scope":13435,"src":"4262:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4262:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13325,"name":"_vote","nodeType":"VariableDeclaration","scope":13435,"src":"4295:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13324,"name":"uint256","nodeType":"ElementaryTypeName","src":"4295:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13327,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":13435,"src":"4314:30:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13326,"name":"string","nodeType":"ElementaryTypeName","src":"4314:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4197:148:46"},"returnParameters":{"id":13331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13330,"name":"","nodeType":"VariableDeclaration","scope":13435,"src":"4369:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4369:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4368:9:46"},"scope":13454,"src":"4177:1435:46","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13452,"nodeType":"Block","src":"5960:74:46","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13447,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13437,"src":"6004:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13448,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13439,"src":"6017:8:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":13445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"5987:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5987:16:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5987:39:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13444,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"5977:9:46","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5977:50:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13443,"id":13451,"nodeType":"Return","src":"5970:57:46"}]},"documentation":"@dev Hash the parameters, and return the hash value\n@param _voteParams - voting parameters\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":13453,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":13440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13437,"name":"_voteParams","nodeType":"VariableDeclaration","scope":13453,"src":"5866:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5866:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13439,"name":"_intVote","nodeType":"VariableDeclaration","scope":13453,"src":"5895:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13438,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"5895:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"5856:70:46"},"returnParameters":{"id":13443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13442,"name":"","nodeType":"VariableDeclaration","scope":13453,"src":"5947:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5947:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5946:9:46"},"scope":13454,"src":"5830:204:46","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":13455,"src":"382:5654:46"}],"src":"0:6037:46"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/VoteInOrganizationScheme.sol","exportedSymbols":{"VoteInOrganizationScheme":[13454]},"id":13455,"nodeType":"SourceUnit","nodes":[{"id":13104,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:46"},{"absolutePath":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","file":"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol","id":13105,"nodeType":"ImportDirective","scope":13455,"sourceUnit":19817,"src":"25:71:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","file":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","id":13106,"nodeType":"ImportDirective","scope":13455,"sourceUnit":20032,"src":"97:86:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"./UniversalScheme.sol","id":13107,"nodeType":"ImportDirective","scope":13455,"sourceUnit":12635,"src":"184:31:46","symbolAliases":[],"unitAlias":""},{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","file":"../votingMachines/VotingMachineCallbacks.sol","id":13108,"nodeType":"ImportDirective","scope":13455,"sourceUnit":14651,"src":"216:54:46","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":13109,"name":"UniversalScheme","nodeType":"UserDefinedTypeName","referencedDeclaration":12634,"src":"419:15:46","typeDescriptions":{"typeIdentifier":"t_contract$_UniversalScheme_$12634","typeString":"contract UniversalScheme"}},"id":13110,"nodeType":"InheritanceSpecifier","src":"419:15:46"},{"arguments":null,"baseName":{"contractScope":null,"id":13111,"name":"VotingMachineCallbacks","nodeType":"UserDefinedTypeName","referencedDeclaration":14650,"src":"436:22:46","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacks_$14650","typeString":"contract VotingMachineCallbacks"}},"id":13112,"nodeType":"InheritanceSpecifier","src":"436:22:46"},{"arguments":null,"baseName":{"contractScope":null,"id":13113,"name":"ProposalExecuteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19828,"src":"460:24:46","typeDescriptions":{"typeIdentifier":"t_contract$_ProposalExecuteInterface_$19828","typeString":"contract ProposalExecuteInterface"}},"id":13114,"nodeType":"InheritanceSpecifier","src":"460:24:46"}],"contractDependencies":[12634,12645,14650,19828,20031],"contractKind":"contract","documentation":"@title VoteInOrganizationScheme.\n@dev A scheme to allow an organization to vote in a proposal.","fullyImplemented":true,"id":13454,"linearizedBaseContracts":[13454,19828,14650,20031,12634,12645],"name":"VoteInOrganizationScheme","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":13130,"name":"NewVoteProposal","nodeType":"EventDefinition","parameters":{"id":13129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13116,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13130,"src":"522:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13115,"name":"address","nodeType":"ElementaryTypeName","src":"522:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13118,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13130,"src":"555:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13117,"name":"bytes32","nodeType":"ElementaryTypeName","src":"555:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13120,"indexed":true,"name":"_intVoteInterface","nodeType":"VariableDeclaration","scope":13130,"src":"592:33:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13119,"name":"address","nodeType":"ElementaryTypeName","src":"592:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13122,"indexed":false,"name":"_originalIntVote","nodeType":"VariableDeclaration","scope":13130,"src":"635:33:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13121,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"635:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13124,"indexed":false,"name":"_originalProposalId","nodeType":"VariableDeclaration","scope":13130,"src":"678:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13123,"name":"bytes32","nodeType":"ElementaryTypeName","src":"678:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13126,"indexed":false,"name":"_vote","nodeType":"VariableDeclaration","scope":13130,"src":"715:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13125,"name":"uint256","nodeType":"ElementaryTypeName","src":"715:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13128,"indexed":false,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":13130,"src":"738:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13127,"name":"string","nodeType":"ElementaryTypeName","src":"738:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"512:255:46"},"src":"491:277:46"},{"anonymous":false,"documentation":null,"id":13140,"name":"ProposalExecuted","nodeType":"EventDefinition","parameters":{"id":13139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13132,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13140,"src":"797:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13131,"name":"address","nodeType":"ElementaryTypeName","src":"797:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13134,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13140,"src":"822:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13133,"name":"bytes32","nodeType":"ElementaryTypeName","src":"822:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13136,"indexed":false,"name":"_param","nodeType":"VariableDeclaration","scope":13140,"src":"851:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13135,"name":"int256","nodeType":"ElementaryTypeName","src":"851:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13138,"indexed":false,"name":"_callReturnValue","nodeType":"VariableDeclaration","scope":13140,"src":"866:22:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13137,"name":"bytes","nodeType":"ElementaryTypeName","src":"866:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"src":"796:93:46"},"src":"774:116:46"},{"anonymous":false,"documentation":null,"id":13146,"name":"ProposalDeleted","nodeType":"EventDefinition","parameters":{"id":13145,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13142,"indexed":true,"name":"_avatar","nodeType":"VariableDeclaration","scope":13146,"src":"917:23:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":13141,"name":"address","nodeType":"ElementaryTypeName","src":"917:7:46","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":13144,"indexed":true,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13146,"src":"942:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13143,"name":"bytes32","nodeType":"ElementaryTypeName","src":"942:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"916:54:46"},"src":"895:76:46"},{"canonicalName":"VoteInOrganizationScheme.VoteProposal","id":13155,"members":[{"constant":false,"id":13148,"name":"originalIntVote","nodeType":"VariableDeclaration","scope":13155,"src":"1044:32:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13147,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1044:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13150,"name":"originalProposalId","nodeType":"VariableDeclaration","scope":13155,"src":"1086:26:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13149,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1086:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13152,"name":"vote","nodeType":"VariableDeclaration","scope":13155,"src":"1122:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13151,"name":"uint256","nodeType":"ElementaryTypeName","src":"1122:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13154,"name":"exist","nodeType":"VariableDeclaration","scope":13155,"src":"1144:10:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13153,"name":"bool","nodeType":"ElementaryTypeName","src":"1144:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"name":"VoteProposal","nodeType":"StructDefinition","scope":13454,"src":"1014:147:46","visibility":"public"},{"constant":false,"id":13161,"name":"organizationsProposals","nodeType":"VariableDeclaration","scope":13454,"src":"1262:78:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal))"},"typeName":{"id":13160,"keyType":{"id":13156,"name":"address","nodeType":"ElementaryTypeName","src":"1270:7:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1262:48:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal))"},"valueType":{"id":13159,"keyType":{"id":13157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1287:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1279:30:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal)"},"valueType":{"contractScope":null,"id":13158,"name":"VoteProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":13155,"src":"1296:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal"}}}},"value":null,"visibility":"public"},{"canonicalName":"VoteInOrganizationScheme.Parameters","id":13166,"members":[{"constant":false,"id":13163,"name":"intVote","nodeType":"VariableDeclaration","scope":13166,"src":"1375:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13162,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"1375:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13165,"name":"voteParams","nodeType":"VariableDeclaration","scope":13166,"src":"1409:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13164,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1409:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"name":"Parameters","nodeType":"StructDefinition","scope":13454,"src":"1347:87:46","visibility":"public"},{"constant":false,"id":13170,"name":"parameters","nodeType":"VariableDeclaration","scope":13454,"src":"1543:46:46","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters)"},"typeName":{"id":13169,"keyType":{"id":13167,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1551:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"1543:28:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters)"},"valueType":{"contractScope":null,"id":13168,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":13166,"src":"1560:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage_ptr","typeString":"struct VoteInOrganizationScheme.Parameters"}}},"value":null,"visibility":"public"},{"body":{"id":13283,"nodeType":"Block","src":"2035:1079:46","statements":[{"assignments":[13183],"declarations":[{"constant":false,"id":13183,"name":"avatar","nodeType":"VariableDeclaration","scope":13283,"src":"2045:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13182,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2045:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":13191,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13184,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2061:13:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":13187,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13185,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2075:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2075:10:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2061:25:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":13189,"indexExpression":{"argumentTypes":null,"id":13188,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2087:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2061:38:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":13190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2061:45:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2045:61:46"},{"assignments":[13193],"declarations":[{"constant":false,"id":13193,"name":"proposal","nodeType":"VariableDeclaration","scope":13283,"src":"2176:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal"},"typeName":{"contractScope":null,"id":13192,"name":"VoteProposal","nodeType":"UserDefinedTypeName","referencedDeclaration":13155,"src":"2176:12:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal"}},"value":null,"visibility":"internal"}],"id":13201,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13194,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13161,"src":"2207:22:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref))"}},"id":13198,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13196,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2238:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13195,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2230:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2230:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2207:39:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref)"}},"id":13200,"indexExpression":{"argumentTypes":null,"id":13199,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2247:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2207:52:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2176:83:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13203,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2277:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"exist","nodeType":"MemberAccess","referencedDeclaration":13154,"src":"2277:14:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13202,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2269:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2269:23:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13206,"nodeType":"ExpressionStatement","src":"2269:23:46"},{"expression":{"argumentTypes":null,"id":13214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"2302:59:46","subExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13207,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13161,"src":"2309:22:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref))"}},"id":13211,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13209,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2340:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13208,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2332:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2332:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2309:39:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref)"}},"id":13213,"indexExpression":{"argumentTypes":null,"id":13212,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2349:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2309:52:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13215,"nodeType":"ExpressionStatement","src":"2302:59:46"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13218,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2400:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13217,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2392:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2392:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13220,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2409:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":13216,"name":"ProposalDeleted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13146,"src":"2376:15:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$returns$__$","typeString":"function (address,bytes32)"}},"id":13221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2376:45:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13222,"nodeType":"EmitStatement","src":"2371:50:46"},{"assignments":[13224],"declarations":[{"constant":false,"id":13224,"name":"callReturnValue","nodeType":"VariableDeclaration","scope":13283,"src":"2431:28:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":13223,"name":"bytes","nodeType":"ElementaryTypeName","src":"2431:5:46","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"value":null,"visibility":"internal"}],"id":13225,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2431:28:46"},{"assignments":[13227],"declarations":[{"constant":false,"id":13227,"name":"success","nodeType":"VariableDeclaration","scope":13283,"src":"2469:12:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13226,"name":"bool","nodeType":"ElementaryTypeName","src":"2469:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"id":13228,"initialValue":null,"nodeType":"VariableDeclarationStatement","src":"2469:12:46"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":13231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13229,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13174,"src":"2533:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"hexValue":"31","id":13230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2543:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"2533:11:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":13271,"nodeType":"IfStatement","src":"2529:472:46","trueBody":{"id":13270,"nodeType":"Block","src":"2546:455:46","statements":[{"assignments":[13233],"declarations":[{"constant":false,"id":13233,"name":"controller","nodeType":"VariableDeclaration","scope":13270,"src":"2561:21:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"},"typeName":{"contractScope":null,"id":13232,"name":"Controller","nodeType":"UserDefinedTypeName","referencedDeclaration":1797,"src":"2561:10:46","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"value":null,"visibility":"internal"}],"id":13239,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13235,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2596:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":13236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"2596:12:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":13237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2596:14:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":13234,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"2585:10:46","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":13238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2585:26:46","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"nodeType":"VariableDeclarationStatement","src":"2561:50:46"},{"expression":{"argumentTypes":null,"id":13264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"components":[{"argumentTypes":null,"id":13240,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13227,"src":"2626:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"id":13241,"name":"callReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13224,"src":"2635:15:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":13242,"isConstant":false,"isInlineArray":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"TupleExpression","src":"2625:26:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2698:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originalIntVote","nodeType":"MemberAccess","referencedDeclaration":13148,"src":"2698:24:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13245,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2690:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2690:33:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"766f746528627974657333322c75696e743235362c75696e743235362c6164647265737329","id":13251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2761:39:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_359afa49e07a90b2e02bddde33bfd011f2b5f03f7222fd6fa45906ec488a880d","typeString":"literal_string \"vote(bytes32,uint256,uint256,address)\""},"value":"vote(bytes32,uint256,uint256,address)"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13252,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2814:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"originalProposalId","nodeType":"MemberAccess","referencedDeclaration":13150,"src":"2814:27:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13254,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13193,"src":"2855:8:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory_ptr","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"id":13255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"vote","nodeType":"MemberAccess","referencedDeclaration":13152,"src":"2855:13:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"30","id":13256,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2882:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13258,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21263,"src":"2905:4:46","typeDescriptions":{"typeIdentifier":"t_contract$_VoteInOrganizationScheme_$13454","typeString":"contract VoteInOrganizationScheme"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_VoteInOrganizationScheme_$13454","typeString":"contract VoteInOrganizationScheme"}],"id":13257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2897:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2897:13:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_359afa49e07a90b2e02bddde33bfd011f2b5f03f7222fd6fa45906ec488a880d","typeString":"literal_string \"vote(bytes32,uint256,uint256,address)\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":null,"id":13249,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"2737:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13250,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodeWithSignature","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2737:23:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$","typeString":"function (string memory) pure returns (bytes memory)"}},"id":13260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2737:174:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"argumentTypes":null,"id":13261,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"2925:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},{"argumentTypes":null,"hexValue":"30","id":13262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2945:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"argumentTypes":null,"id":13243,"name":"controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13233,"src":"2654:10:46","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":13244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"genericCall","nodeType":"MemberAccess","referencedDeclaration":1475,"src":"2654:22:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_contract$_Avatar_$337_$_t_uint256_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (address,bytes memory,contract Avatar,uint256) external returns (bool,bytes memory)"}},"id":13263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2654:306:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"src":"2625:335:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13265,"nodeType":"ExpressionStatement","src":"2625:335:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13267,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13227,"src":"2982:7:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13266,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21110,"src":"2974:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":13268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2974:16:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13269,"nodeType":"ExpressionStatement","src":"2974:16:46"}]}},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13274,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13183,"src":"3040:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3032:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13275,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3032:15:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13276,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"3049:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13277,"name":"_param","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13174,"src":"3062:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"argumentTypes":null,"id":13278,"name":"callReturnValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13224,"src":"3070:15:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13272,"name":"ProposalExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13140,"src":"3015:16:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_int256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (address,bytes32,int256,bytes memory)"}},"id":13279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3015:71:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13280,"nodeType":"EmitStatement","src":"3010:76:46"},{"expression":{"argumentTypes":null,"hexValue":"74727565","id":13281,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3103:4:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":13181,"id":13282,"nodeType":"Return","src":"3096:11:46"}]},"documentation":"@dev execution of proposals, can only be called by the voting machine in which the vote is held.\n@param _proposalId the ID of the voting in the voting machine\n@param _param a parameter of the voting result, 1 yes and 2 is no.\n@return bool which represents a successful of the function","id":13284,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":13177,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13172,"src":"2008:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":13178,"modifierName":{"argumentTypes":null,"id":13176,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"1990:17:46","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"1990:30:46"}],"name":"executeProposal","nodeType":"FunctionDefinition","parameters":{"id":13175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13172,"name":"_proposalId","nodeType":"VariableDeclaration","scope":13284,"src":"1945:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13171,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1945:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13174,"name":"_param","nodeType":"VariableDeclaration","scope":13284,"src":"1966:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":13173,"name":"int256","nodeType":"ElementaryTypeName","src":"1966:6:46","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"value":null,"visibility":"internal"}],"src":"1944:36:46"},"returnParameters":{"id":13181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13180,"name":"","nodeType":"VariableDeclaration","scope":13284,"src":"2029:4:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":13179,"name":"bool","nodeType":"ElementaryTypeName","src":"2029:4:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"2028:6:46"},"scope":13454,"src":"1920:1194:46","stateMutability":"nonpayable","superFunction":19827,"visibility":"external"},{"body":{"id":13316,"nodeType":"Block","src":"3477:213:46","statements":[{"assignments":[13294],"declarations":[{"constant":false,"id":13294,"name":"paramsHash","nodeType":"VariableDeclaration","scope":13316,"src":"3487:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13293,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3487:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":13299,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13296,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13286,"src":"3526:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13297,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13288,"src":"3539:8:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13295,"name":"getParametersHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13453,"src":"3508:17:46","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes32_$_t_contract$_IntVoteInterface_$19816_$returns$_t_bytes32_$","typeString":"function (bytes32,contract IntVoteInterface) pure returns (bytes32)"}},"id":13298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3508:40:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"3487:61:46"},{"expression":{"argumentTypes":null,"id":13305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13300,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"3558:10:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters storage ref)"}},"id":13302,"indexExpression":{"argumentTypes":null,"id":13301,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"3569:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3558:22:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage","typeString":"struct VoteInOrganizationScheme.Parameters storage ref"}},"id":13303,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":13165,"src":"3558:33:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":13304,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13286,"src":"3594:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"3558:47:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":13306,"nodeType":"ExpressionStatement","src":"3558:47:46"},{"expression":{"argumentTypes":null,"id":13312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13307,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"3615:10:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters storage ref)"}},"id":13309,"indexExpression":{"argumentTypes":null,"id":13308,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"3626:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3615:22:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage","typeString":"struct VoteInOrganizationScheme.Parameters storage ref"}},"id":13310,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":13163,"src":"3615:30:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"id":13311,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13288,"src":"3648:8:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"src":"3615:41:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13313,"nodeType":"ExpressionStatement","src":"3615:41:46"},{"expression":{"argumentTypes":null,"id":13314,"name":"paramsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13294,"src":"3673:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13292,"id":13315,"nodeType":"Return","src":"3666:17:46"}]},"documentation":"@dev Hash the parameters, save them if necessary, and return the hash value\n@param _voteParams - voting parameters\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":13317,"implemented":true,"kind":"function","modifiers":[],"name":"setParameters","nodeType":"FunctionDefinition","parameters":{"id":13289,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13286,"name":"_voteParams","nodeType":"VariableDeclaration","scope":13317,"src":"3388:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13285,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3388:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13288,"name":"_intVote","nodeType":"VariableDeclaration","scope":13317,"src":"3417:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13287,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"3417:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"3378:70:46"},"returnParameters":{"id":13292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13291,"name":"","nodeType":"VariableDeclaration","scope":13317,"src":"3464:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13290,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3464:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"3463:9:46"},"scope":13454,"src":"3356:334:46","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13434,"nodeType":"Block","src":"4382:1230:46","statements":[{"assignments":[13333],"declarations":[{"constant":false,"id":13333,"name":"params","nodeType":"VariableDeclaration","scope":13434,"src":"4392:24:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters"},"typeName":{"contractScope":null,"id":13332,"name":"Parameters","nodeType":"UserDefinedTypeName","referencedDeclaration":13166,"src":"4392:10:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage_ptr","typeString":"struct VoteInOrganizationScheme.Parameters"}},"value":null,"visibility":"internal"}],"id":13339,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13334,"name":"parameters","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13170,"src":"4419:10:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Parameters_$13166_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.Parameters storage ref)"}},"id":13338,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13336,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"4458:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13335,"name":"getParametersFromController","nodeType":"Identifier","overloadedDeclarations":[12633],"referencedDeclaration":12633,"src":"4430:27:46","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_contract$_Avatar_$337_$returns$_t_bytes32_$","typeString":"function (contract Avatar) view returns (bytes32)"}},"id":13337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4430:36:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4419:48:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_storage","typeString":"struct VoteInOrganizationScheme.Parameters storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4392:75:46"},{"assignments":[13341],"declarations":[{"constant":false,"id":13341,"name":"intVote","nodeType":"VariableDeclaration","scope":13434,"src":"4477:24:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13340,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"4477:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"id":13344,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13342,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13333,"src":"4504:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters memory"}},"id":13343,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":13163,"src":"4504:14:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"nodeType":"VariableDeclarationStatement","src":"4477:41:46"},{"assignments":[13346,13348],"declarations":[{"constant":false,"id":13346,"name":"minVote","nodeType":"VariableDeclaration","scope":13434,"src":"4529:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13345,"name":"uint256","nodeType":"ElementaryTypeName","src":"4529:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13348,"name":"maxVote","nodeType":"VariableDeclaration","scope":13434,"src":"4546:15:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13347,"name":"uint256","nodeType":"ElementaryTypeName","src":"4546:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":13352,"initialValue":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":13349,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"4565:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getAllowedRangeOfChoices","nodeType":"MemberAccess","referencedDeclaration":19815,"src":"4565:41:46","typeDescriptions":{"typeIdentifier":"t_function_external_pure$__$returns$_t_uint256_$_t_uint256_$","typeString":"function () pure external returns (uint256,uint256)"}},"id":13351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4565:43:46","typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"4528:80:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":13360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13354,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"4626:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"id":13355,"name":"maxVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13348,"src":"4635:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4626:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13357,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"4646:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"argumentTypes":null,"id":13358,"name":"minVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13346,"src":"4655:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4646:16:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4626:36:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74652073686f756c6420626520696e2074686520616c6c6f7765642072616e6765","id":13361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4664:37:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_27a3a000410c900e9904906473451c4a59b2f58d717517696de0f411f8535aad","typeString":"literal_string \"vote should be in the allowed range\""},"value":"vote should be in the allowed range"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_27a3a000410c900e9904906473451c4a59b2f58d717517696de0f411f8535aad","typeString":"literal_string \"vote should be in the allowed range\""}],"id":13353,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4618:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4618:84:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13363,"nodeType":"ExpressionStatement","src":"4618:84:46"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":13370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":13365,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"4720:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13368,"name":"_originalProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"4765:19:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"argumentTypes":null,"id":13366,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"4729:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"getNumberOfChoices","nodeType":"MemberAccess","referencedDeclaration":19787,"src":"4729:35:46","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_uint256_$","typeString":"function (bytes32) view external returns (uint256)"}},"id":13369,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4729:56:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4720:65:46","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"766f74652073686f756c64206265203c3d206f726967696e616c2070726f706f73616c206e756d626572206f662063686f69636573","id":13371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4795:55:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_6b92eb2f874925a8b5adcb6dd70664ddf44753a1295467639d4b1afe58e9c997","typeString":"literal_string \"vote should be <= original proposal number of choices\""},"value":"vote should be <= original proposal number of choices"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6b92eb2f874925a8b5adcb6dd70664ddf44753a1295467639d4b1afe58e9c997","typeString":"literal_string \"vote should be <= original proposal number of choices\""}],"id":13364,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"4712:7:46","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":13372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4712:139:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13373,"nodeType":"ExpressionStatement","src":"4712:139:46"},{"assignments":[13375],"declarations":[{"constant":false,"id":13375,"name":"proposalId","nodeType":"VariableDeclaration","scope":13434,"src":"4862:18:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13374,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4862:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"id":13387,"initialValue":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"32","id":13378,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4899:1:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13379,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13333,"src":"4902:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters memory"}},"id":13380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"voteParams","nodeType":"MemberAccess","referencedDeclaration":13165,"src":"4902:17:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13381,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"4921:3:46","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":13382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"4921:10:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13384,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"4941:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4933:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4933:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":13376,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13341,"src":"4883:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"id":13377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"propose","nodeType":"MemberAccess","referencedDeclaration":19762,"src":"4883:15:46","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes32_$_t_address_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,bytes32,address,address) external returns (bytes32)"}},"id":13386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4883:67:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"4862:88:46"},{"expression":{"argumentTypes":null,"id":13401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13388,"name":"organizationsProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13161,"src":"4961:22:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref))"}},"id":13393,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13390,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"4992:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13389,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4984:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4984:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4961:40:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_VoteProposal_$13155_storage_$","typeString":"mapping(bytes32 => struct VoteInOrganizationScheme.VoteProposal storage ref)"}},"id":13394,"indexExpression":{"argumentTypes":null,"id":13392,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5002:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4961:52:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13396,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"5060:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},{"argumentTypes":null,"id":13397,"name":"_originalProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"5110:19:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13398,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"5148:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"hexValue":"74727565","id":13399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5174:4:46","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":13395,"name":"VoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13155,"src":"5016:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_VoteProposal_$13155_storage_ptr_$","typeString":"type(struct VoteInOrganizationScheme.VoteProposal storage pointer)"}},"id":13400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["originalIntVote","originalProposalId","vote","exist"],"nodeType":"FunctionCall","src":"5016:173:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_memory","typeString":"struct VoteInOrganizationScheme.VoteProposal memory"}},"src":"4961:228:46","typeDescriptions":{"typeIdentifier":"t_struct$_VoteProposal_$13155_storage","typeString":"struct VoteInOrganizationScheme.VoteProposal storage ref"}},"id":13402,"nodeType":"ExpressionStatement","src":"4961:228:46"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13405,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"5241:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13404,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5233:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5233:16:46","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":13407,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5263:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13409,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13333,"src":"5295:6:46","typeDescriptions":{"typeIdentifier":"t_struct$_Parameters_$13166_memory_ptr","typeString":"struct VoteInOrganizationScheme.Parameters memory"}},"id":13410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"intVote","nodeType":"MemberAccess","referencedDeclaration":13163,"src":"5295:14:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13408,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5287:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5287:23:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":13412,"name":"_originalIntVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13321,"src":"5324:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},{"argumentTypes":null,"id":13413,"name":"_originalProposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13323,"src":"5354:19:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13414,"name":"_vote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13325,"src":"5387:5:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13415,"name":"_descriptionHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13327,"src":"5406:16:46","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":13403,"name":"NewVoteProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13130,"src":"5204:15:46","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bytes32_$_t_address_$_t_contract$_IntVoteInterface_$19816_$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,bytes32,address,contract IntVoteInterface,bytes32,uint256,string memory)"}},"id":13416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5204:228:46","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":13417,"nodeType":"EmitStatement","src":"5199:233:46"},{"expression":{"argumentTypes":null,"id":13430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":13418,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"5442:13:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":13423,"indexExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13420,"name":"intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13341,"src":"5464:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"id":13419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5456:7:46","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":13421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5456:16:46","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5442:31:46","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":13424,"indexExpression":{"argumentTypes":null,"id":13422,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5474:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5442:43:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":13426,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21097,"src":"5527:5:46","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":13427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"number","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5527:12:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":13428,"name":"_avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13319,"src":"5560:7:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":13425,"name":"ProposalInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14361,"src":"5488:12:46","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalInfo_$14361_storage_ptr_$","typeString":"type(struct VotingMachineCallbacks.ProposalInfo storage pointer)"}},"id":13429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"names":["blockNumber","avatar"],"nodeType":"FunctionCall","src":"5488:90:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"src":"5442:136:46","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":13431,"nodeType":"ExpressionStatement","src":"5442:136:46"},{"expression":{"argumentTypes":null,"id":13432,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13375,"src":"5595:10:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13331,"id":13433,"nodeType":"Return","src":"5588:17:46"}]},"documentation":"@dev propose to vote in other organization\n The function trigger NewVoteProposal event\n@param _avatar avatar of the organization\n@param _originalIntVote the other organization voting machine\n@param _originalProposalId the other organization proposal id\n@param _vote - which value to vote in the destination organization\n@param _descriptionHash proposal description hash\n@return an id which represents the proposal","id":13435,"implemented":true,"kind":"function","modifiers":[],"name":"proposeVote","nodeType":"FunctionDefinition","parameters":{"id":13328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13319,"name":"_avatar","nodeType":"VariableDeclaration","scope":13435,"src":"4203:14:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":13318,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"4203:6:46","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"},{"constant":false,"id":13321,"name":"_originalIntVote","nodeType":"VariableDeclaration","scope":13435,"src":"4223:33:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13320,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"4223:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"},{"constant":false,"id":13323,"name":"_originalProposalId","nodeType":"VariableDeclaration","scope":13435,"src":"4262:27:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13322,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4262:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13325,"name":"_vote","nodeType":"VariableDeclaration","scope":13435,"src":"4295:13:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":13324,"name":"uint256","nodeType":"ElementaryTypeName","src":"4295:7:46","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":13327,"name":"_descriptionHash","nodeType":"VariableDeclaration","scope":13435,"src":"4314:30:46","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":13326,"name":"string","nodeType":"ElementaryTypeName","src":"4314:6:46","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":null,"visibility":"internal"}],"src":"4197:148:46"},"returnParameters":{"id":13331,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13330,"name":"","nodeType":"VariableDeclaration","scope":13435,"src":"4369:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13329,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4369:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"4368:9:46"},"scope":13454,"src":"4177:1435:46","stateMutability":"nonpayable","superFunction":null,"visibility":"public"},{"body":{"id":13452,"nodeType":"Block","src":"5960:74:46","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":13447,"name":"_voteParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13437,"src":"6004:11:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"argumentTypes":null,"id":13448,"name":"_intVote","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":13439,"src":"6017:8:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}],"expression":{"argumentTypes":null,"id":13445,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21094,"src":"5987:3:46","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":13446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","referencedDeclaration":null,"src":"5987:16:46","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":13449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5987:39:46","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":13444,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21101,"src":"5977:9:46","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":13450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"5977:50:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":13443,"id":13451,"nodeType":"Return","src":"5970:57:46"}]},"documentation":"@dev Hash the parameters, and return the hash value\n@param _voteParams - voting parameters\n@param _intVote - voting machine contract.\n@return bytes32 -the parameters hash","id":13453,"implemented":true,"kind":"function","modifiers":[],"name":"getParametersHash","nodeType":"FunctionDefinition","parameters":{"id":13440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13437,"name":"_voteParams","nodeType":"VariableDeclaration","scope":13453,"src":"5866:19:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13436,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5866:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"},{"constant":false,"id":13439,"name":"_intVote","nodeType":"VariableDeclaration","scope":13453,"src":"5895:25:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"},"typeName":{"contractScope":null,"id":13438,"name":"IntVoteInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":19816,"src":"5895:16:46","typeDescriptions":{"typeIdentifier":"t_contract$_IntVoteInterface_$19816","typeString":"contract IntVoteInterface"}},"value":null,"visibility":"internal"}],"src":"5856:70:46"},"returnParameters":{"id":13443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":13442,"name":"","nodeType":"VariableDeclaration","scope":13453,"src":"5947:7:46","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":13441,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5947:7:46","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"5946:9:46"},"scope":13454,"src":"5830:204:46","stateMutability":"pure","superFunction":null,"visibility":"public"}],"scope":13455,"src":"382:5654:46"}],"src":"0:6037:46"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.215Z","devdoc":{"details":"A scheme to allow an organization to vote in a proposal.","methods":{"executeProposal(bytes32,int256)":{"details":"execution of proposals, can only be called by the voting machine in which the vote is held.","params":{"_param":"a parameter of the voting result, 1 yes and 2 is no.","_proposalId":"the ID of the voting in the voting machine"},"return":"bool which represents a successful of the function"},"getParametersHash(bytes32,address)":{"details":"Hash the parameters, and return the hash value","params":{"_intVote":"- voting machine contract.","_voteParams":"- voting parameters"},"return":"bytes32 -the parameters hash"},"proposeVote(address,address,bytes32,uint256,string)":{"details":"propose to vote in other organization The function trigger NewVoteProposal event","params":{"_avatar":"avatar of the organization","_descriptionHash":"proposal description hash","_originalIntVote":"the other organization voting machine","_originalProposalId":"the other organization proposal id","_vote":"- which value to vote in the destination organization"},"return":"an id which represents the proposal"},"setParameters(bytes32,address)":{"details":"Hash the parameters, save them if necessary, and return the hash value","params":{"_intVote":"- voting machine contract.","_voteParams":"- voting parameters"},"return":"bytes32 -the parameters hash"}},"title":"VoteInOrganizationScheme."},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VotingMachineCallbacks.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VotingMachineCallbacks.json new file mode 100644 index 00000000..aff67918 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VotingMachineCallbacks.json @@ -0,0 +1 @@ +{"contractName":"VotingMachineCallbacks","abi":[{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposalsInfo","outputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"contract Avatar","name":"avatar","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"proposalsInfo\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"blockNumber\",\"type\":\"uint256\"},{\"internalType\":\"contract Avatar\",\"name\":\"avatar\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":\"VotingMachineCallbacks\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/controller/Avatar.sol\":{\"keccak256\":\"0xdc75e96aca5c6aeaa3bbf97d2a3a1d305c1c168b74f1d5a6b151648e1b71086f\",\"urls\":[\"bzz-raw://425e5a7e0d27fe14af052e826a1757135afc30cf6941986dcd2c336e34c5d24c\",\"dweb:/ipfs/QmR9Jn4ZNx8LNyzSRWhdNh7rG8pccSHLX3iqdSk26VYw3R\"]},\"/Users/oren/daostack/arc/contracts/controller/Controller.sol\":{\"keccak256\":\"0x88fe5ca7618e1ed502a9665e53bfab5260282a9a7b561361ee8067af59a58f5a\",\"urls\":[\"bzz-raw://911676f75c5f83d54a7c892bb8dd39daa7b199c358536e7347ca150e815759bc\",\"dweb:/ipfs/QmT8TtonKcEgjrok8b3zUkGZQL6FEZCXFdkYMc5jV61bD6\"]},\"/Users/oren/daostack/arc/contracts/controller/DAOToken.sol\":{\"keccak256\":\"0x567235b3ec3884704725a775559a2c60b46c56d144072929035dbadeeb65e884\",\"urls\":[\"bzz-raw://8944f3ffa3f1fbc1aa6bfddf5f055a15bec79f51dcca655d5a8698aa9dfd38d4\",\"dweb:/ipfs/QmUZWJVgaXkMVMGiXAHkiETCHGptt6wCRLUiaGrzxk7Lv4\"]},\"/Users/oren/daostack/arc/contracts/globalConstraints/GlobalConstraintInterface.sol\":{\"keccak256\":\"0x83fb7666df1270aa8d857a631172b555dcf4f24fabba9a2a241d2b1ca2e574ef\",\"urls\":[\"bzz-raw://2499d07b8ba63936601c61884415a5f6848f1883e452efb608ccb181d98125e8\",\"dweb:/ipfs/QmeZCTMZ6KwJX1HLRZMMTZugskPDR6dvaNGEknEyyBePxt\"]},\"/Users/oren/daostack/arc/contracts/libs/SafeERC20.sol\":{\"keccak256\":\"0x1e91e541a9e835c05372a53eb7879e05bc47f6355602d6d3bf4bbdd8f660fc95\",\"urls\":[\"bzz-raw://ba9d1c3e68e38adc57e3097d191e7328816839ca918aff208338fb447b0792d8\",\"dweb:/ipfs/QmWisfDaqBSoYjg2U93VsZL43Lba4Ko7mbe6YS2wZpgvDR\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol\":{\"keccak256\":\"0xcd02bd2209bca29c2b76d5fa45f5f8f8aed544f92250def7f9f65f29bbe9c2ab\",\"urls\":[\"bzz-raw://2c673a3e3413b5caaf855b55f4af9286197497d7fccbf0a42e5c6d30e2b6359e\",\"dweb:/ipfs/QmVinKRvL3c2WiodV5x64ezSqUGHp1ARmhzZgqLBc58444\"]},\"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalSchemeInterface.sol\":{\"keccak256\":\"0x6a7c12fc1106653ff0d61981f34a5466da4e8b5acd2f8f6128144a6177f85267\",\"urls\":[\"bzz-raw://b7b33ed8cee7197e763f6a04dd82761cf416e55e1494e2b56831d503c022a1f0\",\"dweb:/ipfs/QmfMahtFUXMw3s1mt3nYaUGqLbYru2EmumsVJ3WudmnSWX\"]},\"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol\":{\"keccak256\":\"0xc976cc624c5032745ecb75dc24afc02bda81e894dab798698f6f6b15e5b1eef6\",\"urls\":[\"bzz-raw://10a061b54ce3b50cd9fcdb4f3181bc65587b898aae7a48688c260eed3e55fe64\",\"dweb:/ipfs/QmUeNMvoaeJeQeaAbbcNXbD4RLAQT77YKvdhpD9duSv6KJ\"]},\"@daostack/infra/contracts/Reputation.sol\":{\"keccak256\":\"0xec21bc058552cae458e68fa91aad7219d11be2bc9710183696d828065f03d6ea\",\"urls\":[\"bzz-raw://a3262e0088c924072428cfe69d78c06e93cec3caeee410af8ab36eee2c8f8d66\",\"dweb:/ipfs/QmNhcQd2pxWXYJrMz8kVsZUfFVYUSgKjZCUcFseyBSjZiq\"]},\"@daostack/infra/contracts/libs/RealMath.sol\":{\"keccak256\":\"0x93d598d59695003ed1b7fb37e631a665151e3e79f77c650a2cf5fcdbaf010d3f\",\"urls\":[\"bzz-raw://b5baed6a9e7e6386a4fd730e9f04aa67b2c3a4349e1675df3987f9b1b4cb995c\",\"dweb:/ipfs/QmekATn7QSZ2KGV6kENUgqEVzuL1i4Y3LxWDZcY7AL72Hb\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\":{\"keccak256\":\"0xba1e2f8ee8045c823a0073fce987f1de83de5677d29d6e0bbed34b85316ebad3\",\"urls\":[\"bzz-raw://b63f926c250c581ca4f8f4f9fecd302a82a8a043ff298a5f6cf36ad6818b7a78\",\"dweb:/ipfs/QmPkZ77v2eEMpDdWr56J49aCDsSsfQmLohKq91TKghnreF\"]},\"@daostack/infra/contracts/votingMachines/GenesisProtocolLogic.sol\":{\"keccak256\":\"0xcfb8c4927106b0781761d3f066e6bd8596adeea20be23b77f7293e22ddb2d419\",\"urls\":[\"bzz-raw://1d46bcf48928c64f6fc2a057059b08e7d02a2fdf783afcc35525d3434692fcfa\",\"dweb:/ipfs/QmR2XcnvY1ur9GNi4Rw1NgCgjsXqueeaAMcXvc8p1mRC3U\"]},\"@daostack/infra/contracts/votingMachines/IntVoteInterface.sol\":{\"keccak256\":\"0x3d7062d76057342ae99c96071052fedadb3d02e0b57cde5984faac3cdbe2a5e0\",\"urls\":[\"bzz-raw://b542082f5d3bb97485868072ca16037c4c49abdf8e14ed794b1b6e4dd8cb9dcf\",\"dweb:/ipfs/QmVg9AUNDthYbZEkdtyvFqiq5qQbFALq3jcH5kYdsFMh9g\"]},\"@daostack/infra/contracts/votingMachines/ProposalExecuteInterface.sol\":{\"keccak256\":\"0x2533e7b1e0ac8adb4c04968a4c5a02e56d1c9ae406a38c8591c36a24a3572f7c\",\"urls\":[\"bzz-raw://86c6cb4c9fae74235d2b5b602759c4459d739c1e69bf9ca39573a5f878f20106\",\"dweb:/ipfs/QmVtX6HGDGJzRs7CV9cLyNnS3egNYTcFWpCEQSDQb9YEoN\"]},\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/cryptography/ECDSA.sol\":{\"keccak256\":\"0xc89ea7e48ba477b1781b24ae963442fff1bb2af33b6178dad679a3fa2f5ab2de\",\"urls\":[\"bzz-raw://b736ddad8143f8f1cd13c20809d4ebce5f5a8c7725081b0b703294078bd506d1\",\"dweb:/ipfs/QmdhTWCXFCuwG9JaPMjwnhkQoDj9su8R7KMPNvD5z9KeWD\"]},\"openzeppelin-solidity/contracts/math/Math.sol\":{\"keccak256\":\"0x4b5aa451e4e8801478708f94b118a7821c0500d676255eaf89fc78c14856ce4e\",\"urls\":[\"bzz-raw://bed15b3f35ed05505efc8fb5cb01d06c52230fbcaadf4ed24a85b1ac2f15f33c\",\"dweb:/ipfs/QmS6tW81u8E4tvzVfVuqEuMCkdwAozQ6pKJPRBR4JEVmQp\"]},\"openzeppelin-solidity/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0x65a4078c03875c25413a068ce9cfdd7e68a90f8786612d1189c89341e6e3b802\",\"urls\":[\"bzz-raw://45c0d95495b944fbb1aa09d900b0ab530903a432125ab8fddfa05064a7988991\",\"dweb:/ipfs/Qma2VeknkKA1THeubGzshWFk44BktXkXP1UKp9Un2uDSsu\"]},\"openzeppelin-solidity/contracts/token/ERC20/ERC20Burnable.sol\":{\"keccak256\":\"0x9b94356691f3cbf90a5d83ae3fdf6a5a662bb004d2bd8b034160d60221807e64\",\"urls\":[\"bzz-raw://14a9d33db455302b8bb9fdb28998efefbe5a1cb41b29e31391609f646b2ab351\",\"dweb:/ipfs/Qmd4wFr6GEMZnnxgXeq3gmp7cs8tqDuHp3TVNhCbjnux2V\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]},\"openzeppelin-solidity/contracts/utils/Address.sol\":{\"keccak256\":\"0x70df50e240407aa50915ad14f61b1a901fa335b37de20955b99ed647be756af0\",\"urls\":[\"bzz-raw://9404711f3206610c08ea97fa52c7b6b4d2e9d536e96fc4b7210aa7e24f796c36\",\"dweb:/ipfs/QmZDzpVzjoap13SuPEq5pVCrmdjoKVZnTsQPLKXAbynTTW\"]}},\"version\":1}","sourceMap":"148:2865:50:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;148:2865:50;;;;;;;","deployedSourceMap":"148:2865:50:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;148:2865:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;598:73;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;598:73:50;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;598:73:50;;;;;;;;;;;;;;;;1973:346;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1973:346:50;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;2666:345;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2666:345:50;;;;;;;;:::i;2325:335::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2325:335:50;;:::i;1492:475::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;;1492:475:50;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;678:401;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;678:401:50;;;-1:-1:-1;;;;;678:401:50;;;;;;;;;;:::i;1085:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1085:401:50;;;-1:-1:-1;;;;;1085:401:50;;;;;;;;;;:::i;598:73::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;598:73:50;;:::o;1973:346::-;2118:10;2069:7;2104:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;2104:45:50;;2159:97;;2244:1;2237:8;;;;;2159:97;2272:13;-1:-1:-1;;;;;2272:23:50;;2304:6;2272:40;;;;;;;;;;;;;-1:-1:-1;;;;;2272:40:50;-1:-1:-1;;;;;2272:40:50;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2272:40:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2272:40:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2272:40:50;;-1:-1:-1;;1973:346:50;;;;;:::o;2666:345::-;2747:7;2766:28;;:::i;:::-;-1:-1:-1;2811:10:50;2797:13;:25;;;;;;;;;;;:38;;;;;;;;;2766:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2766:69:50;;;;;;;2845:67;;2900:1;2893:8;;;;;2845:67;2928:8;:15;;;-1:-1:-1;;;;;2928:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2928:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2928:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2928:34:50;2983:20;;2928:76;;;-1:-1:-1;;;2928:76:50;;-1:-1:-1;;;;;2928:76:50;;;;;;;;;;;;;;;;:46;;;;;;;:76;;;;;:34;;:76;;;;;;;:46;:76;;;5:2:-1;;;;30:1;27;20:12;2325:335:50;2402:7;2421:28;;:::i;:::-;-1:-1:-1;2466:10:50;2452:13;:25;;;;;;;;;;;:38;;;;;;;;;2421:69;;;;;;;;;;;;;;;-1:-1:-1;;;;;2421:69:50;;;;;;;2500:67;;2555:1;2548:8;;;;;2500:67;2583:8;:15;;;-1:-1:-1;;;;;2583:32:50;;:34;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2583:34:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:34:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:34:50;2632:20;;2583:70;;;-1:-1:-1;;;2583:70:50;;;;;;;;;;-1:-1:-1;;;;;2583:48:50;;;;;;:70;;;;;:34;;:70;;;;;;;;:48;:70;;;5:2:-1;;;;30:1;27;20:12;5:2;2583:70:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2583:70:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2583:70:50;;-1:-1:-1;;2325:335:50;;;;:::o;1492:475::-;443:10;1697:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1672:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1747:10;1717:13;1733:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1733:45:50;1792:19;1788:62;;1834:5;1827:12;;;;;1788:62;1877:6;-1:-1:-1;;;;;1877:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1877:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1877:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1877:14:50;1866:94;;;-1:-1:-1;;;1866:94:50;;-1:-1:-1;;;;;1866:94:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;;;;:94;;;;;1877:14;;1866:94;;;;;;;-1:-1:-1;1866:48:50;:94;;;5:2:-1;;;;30:1;27;20:12;5:2;1866:94:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1866:94:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1866:94:50;;-1:-1:-1;;529:1:50;1492:475;;;;;;;:::o;678:401::-;443:10;822:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;797:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;872:10;842:13;858:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;858:45:50;917:19;913:62;;959:5;952:12;;;;;913:62;1002:6;-1:-1:-1;;;;;1002:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1002:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1002:14:50;991:81;;;-1:-1:-1;;;991:81:50;;;;;;;;-1:-1:-1;;;;;991:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1002:14;;991:81;;;;;;;-1:-1:-1;991:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;5:2;991:81:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;991:81:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;991:81:50;;-1:-1:-1;;529:1:50;678:401;;;;;;:::o;1085:::-;443:10;1229:4;429:25;;;;;;;;;;;:38;;;;;;;;:45;;;1204:11;;-1:-1:-1;;;;;429:45:50;421:98;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;-1:-1:-1;;;421:98:50;;;;;;;;;;;;;;;1279:10;1249:13;1265:25;;;;;;;;;;;:38;;;;;;;;:45;;;-1:-1:-1;;;;;1265:45:50;1324:19;1320:62;;1366:5;1359:12;;;;;1320:62;1409:6;-1:-1:-1;;;;;1409:12:50;;:14;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1409:14:50;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1409:14:50;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1409:14:50;1398:81;;;-1:-1:-1;;;1398:81:50;;;;;;;;-1:-1:-1;;;;;1398:81:50;;;;;;;;;;;;;;;;:41;;;;;;;:81;;;;;1409:14;;1398:81;;;;;;;-1:-1:-1;1398:41:50;:81;;;5:2:-1;;;;30:1;27;20:12;148:2865:50;;;;;;;;;;-1:-1:-1;148:2865:50;;;;;;;;:::o","source":"pragma solidity 0.5.13;\n\nimport \"../universalSchemes/UniversalScheme.sol\";\nimport \"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol\";\n\n\ncontract VotingMachineCallbacks is VotingMachineCallbacksInterface {\n\n struct ProposalInfo {\n uint256 blockNumber; // the proposal's block number\n Avatar avatar; // the proposal's avatar\n }\n\n modifier onlyVotingMachine(bytes32 _proposalId) {\n require(proposalsInfo[msg.sender][_proposalId].avatar != Avatar(address(0)), \"only VotingMachine\");\n _;\n }\n\n // VotingMaching -> proposalId -> ProposalInfo\n mapping(address => mapping(bytes32 => ProposalInfo)) public proposalsInfo;\n\n function mintReputation(uint256 _amount, address _beneficiary, bytes32 _proposalId)\n external\n onlyVotingMachine(_proposalId)\n returns(bool)\n {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n if (avatar == Avatar(0)) {\n return false;\n }\n return Controller(avatar.owner()).mintReputation(_amount, _beneficiary, address(avatar));\n }\n\n function burnReputation(uint256 _amount, address _beneficiary, bytes32 _proposalId)\n external\n onlyVotingMachine(_proposalId)\n returns(bool)\n {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n if (avatar == Avatar(0)) {\n return false;\n }\n return Controller(avatar.owner()).burnReputation(_amount, _beneficiary, address(avatar));\n }\n\n function stakingTokenTransfer(\n IERC20 _stakingToken,\n address _beneficiary,\n uint256 _amount,\n bytes32 _proposalId)\n external\n onlyVotingMachine(_proposalId)\n returns(bool)\n {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n if (avatar == Avatar(0)) {\n return false;\n }\n return Controller(avatar.owner()).externalTokenTransfer(_stakingToken, _beneficiary, _amount, avatar);\n }\n\n function balanceOfStakingToken(IERC20 _stakingToken, bytes32 _proposalId) external view returns(uint256) {\n Avatar avatar = proposalsInfo[msg.sender][_proposalId].avatar;\n if (proposalsInfo[msg.sender][_proposalId].avatar == Avatar(0)) {\n return 0;\n }\n return _stakingToken.balanceOf(address(avatar));\n }\n\n function getTotalReputationSupply(bytes32 _proposalId) external view returns(uint256) {\n ProposalInfo memory proposal = proposalsInfo[msg.sender][_proposalId];\n if (proposal.avatar == Avatar(0)) {\n return 0;\n }\n return proposal.avatar.nativeReputation().totalSupplyAt(proposal.blockNumber);\n }\n\n function reputationOf(address _owner, bytes32 _proposalId) external view returns(uint256) {\n ProposalInfo memory proposal = proposalsInfo[msg.sender][_proposalId];\n if (proposal.avatar == Avatar(0)) {\n return 0;\n }\n return proposal.avatar.nativeReputation().balanceOfAt(_owner, proposal.blockNumber);\n }\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","exportedSymbols":{"VotingMachineCallbacks":[14650]},"id":14651,"nodeType":"SourceUnit","nodes":[{"id":14352,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:50"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"../universalSchemes/UniversalScheme.sol","id":14353,"nodeType":"ImportDirective","scope":14651,"sourceUnit":12635,"src":"25:49:50","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","id":14354,"nodeType":"ImportDirective","scope":14651,"sourceUnit":17112,"src":"75:70:50","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":14355,"name":"VotingMachineCallbacksInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":20031,"src":"183:31:50","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":14356,"nodeType":"InheritanceSpecifier","src":"183:31:50"}],"contractDependencies":[20031],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":14650,"linearizedBaseContracts":[14650,20031],"name":"VotingMachineCallbacks","nodeType":"ContractDefinition","nodes":[{"canonicalName":"VotingMachineCallbacks.ProposalInfo","id":14361,"members":[{"constant":false,"id":14358,"name":"blockNumber","nodeType":"VariableDeclaration","scope":14361,"src":"252:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14357,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14360,"name":"avatar","nodeType":"VariableDeclaration","scope":14361,"src":"312:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14359,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"312:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"name":"ProposalInfo","nodeType":"StructDefinition","scope":14650,"src":"222:135:50","visibility":"public"},{"body":{"id":14383,"nodeType":"Block","src":"411:126:50","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14366,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"429:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14369,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14367,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"443:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"443:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"429:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14371,"indexExpression":{"argumentTypes":null,"id":14370,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14363,"src":"455:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"429:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"429:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"493:1:50","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":14374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"485:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":14373,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"478:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"478:18:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"429:67:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6f6e6c7920566f74696e674d616368696e65","id":14379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"498:20:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d09f602d792b11aff19268ca8644e6115c2e269c3f2202bcaa79f7e4908e11bb","typeString":"literal_string \"only VotingMachine\""},"value":"only VotingMachine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d09f602d792b11aff19268ca8644e6115c2e269c3f2202bcaa79f7e4908e11bb","typeString":"literal_string \"only VotingMachine\""}],"id":14365,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"421:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"421:98:50","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14381,"nodeType":"ExpressionStatement","src":"421:98:50"},{"id":14382,"nodeType":"PlaceholderStatement","src":"529:1:50"}]},"documentation":null,"id":14384,"name":"onlyVotingMachine","nodeType":"ModifierDefinition","parameters":{"id":14364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14363,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14384,"src":"390:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"389:21:50"},"src":"363:174:50","visibility":"internal"},{"constant":false,"id":14390,"name":"proposalsInfo","nodeType":"VariableDeclaration","scope":14650,"src":"598:73:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo))"},"typeName":{"id":14389,"keyType":{"id":14385,"name":"address","nodeType":"ElementaryTypeName","src":"606:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"598:52:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo))"},"valueType":{"id":14388,"keyType":{"id":14386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"625:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"617:32:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo)"},"valueType":{"contractScope":null,"id":14387,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"636:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}}}},"value":null,"visibility":"public"},{"body":{"id":14436,"nodeType":"Block","src":"832:247:50","statements":[{"assignments":[14405],"declarations":[{"constant":false,"id":14405,"name":"avatar","nodeType":"VariableDeclaration","scope":14436,"src":"842:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14404,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"842:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14413,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14406,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"858:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14409,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"872:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"872:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"858:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14411,"indexExpression":{"argumentTypes":null,"id":14410,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14396,"src":"884:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"858:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"858:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"842:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14414,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"917:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"934:1:50","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":14415,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"927:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"927:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"917:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14422,"nodeType":"IfStatement","src":"913:62:50","trueBody":{"id":14421,"nodeType":"Block","src":"938:37:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":14419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"959:5:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14403,"id":14420,"nodeType":"Return","src":"952:12:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14429,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14392,"src":"1033:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14430,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14394,"src":"1042:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14432,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"1064:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1056:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1056:15:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14424,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"1002:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1002:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1002:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14423,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"991:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":14427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:26:50","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":14428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"991:41:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":14434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:81:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14403,"id":14435,"nodeType":"Return","src":"984:88:50"}]},"documentation":null,"id":14437,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":14399,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14396,"src":"797:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14400,"modifierName":{"argumentTypes":null,"id":14398,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"779:17:50","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"779:30:50"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":14397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14392,"name":"_amount","nodeType":"VariableDeclaration","scope":14437,"src":"702:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14391,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14394,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14437,"src":"719:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14393,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14396,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14437,"src":"741:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"741:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"701:60:50"},"returnParameters":{"id":14403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14402,"name":"","nodeType":"VariableDeclaration","scope":14437,"src":"822:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14401,"name":"bool","nodeType":"ElementaryTypeName","src":"822:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"821:6:50"},"scope":14650,"src":"678:401:50","stateMutability":"nonpayable","superFunction":19981,"visibility":"external"},{"body":{"id":14483,"nodeType":"Block","src":"1239:247:50","statements":[{"assignments":[14452],"declarations":[{"constant":false,"id":14452,"name":"avatar","nodeType":"VariableDeclaration","scope":14483,"src":"1249:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14451,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1249:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14460,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14453,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"1265:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14456,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14454,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1279:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1279:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1265:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14458,"indexExpression":{"argumentTypes":null,"id":14457,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14443,"src":"1291:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1265:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"1265:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"1249:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14461,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"1324:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1341:1:50","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":14462,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1334:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1334:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1324:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14469,"nodeType":"IfStatement","src":"1320:62:50","trueBody":{"id":14468,"nodeType":"Block","src":"1345:37:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":14466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1366:5:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14450,"id":14467,"nodeType":"Return","src":"1359:12:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14476,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14439,"src":"1440:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14477,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14441,"src":"1449:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14479,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"1471:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1463:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1463:15:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14471,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"1409:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1409:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1409:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14470,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1398:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":14474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1398:26:50","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":14475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"1398:41:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1398:81:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14450,"id":14482,"nodeType":"Return","src":"1391:88:50"}]},"documentation":null,"id":14484,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":14446,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14443,"src":"1204:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14447,"modifierName":{"argumentTypes":null,"id":14445,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"1186:17:50","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"1186:30:50"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":14444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14439,"name":"_amount","nodeType":"VariableDeclaration","scope":14484,"src":"1109:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1109:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14441,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14484,"src":"1126:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14440,"name":"address","nodeType":"ElementaryTypeName","src":"1126:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14443,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14484,"src":"1148:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1148:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1108:60:50"},"returnParameters":{"id":14450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14449,"name":"","nodeType":"VariableDeclaration","scope":14484,"src":"1229:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14448,"name":"bool","nodeType":"ElementaryTypeName","src":"1229:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1228:6:50"},"scope":14650,"src":"1085:401:50","stateMutability":"nonpayable","superFunction":19992,"visibility":"external"},{"body":{"id":14531,"nodeType":"Block","src":"1707:260:50","statements":[{"assignments":[14501],"declarations":[{"constant":false,"id":14501,"name":"avatar","nodeType":"VariableDeclaration","scope":14531,"src":"1717:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14500,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1717:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14509,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14502,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"1733:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14505,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14503,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1747:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1747:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1733:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14507,"indexExpression":{"argumentTypes":null,"id":14506,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"1759:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1733:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"1733:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"1717:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14510,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"1792:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1809:1:50","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":14511,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1802:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1792:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14518,"nodeType":"IfStatement","src":"1788:62:50","trueBody":{"id":14517,"nodeType":"Block","src":"1813:37:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":14515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1834:5:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14499,"id":14516,"nodeType":"Return","src":"1827:12:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14525,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14486,"src":"1915:13:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":14526,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14488,"src":"1930:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14527,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14490,"src":"1944:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14528,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"1953:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14520,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"1877:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1877:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1877:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14519,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1866:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":14523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1866:26:50","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":14524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1534,"src":"1866:48:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,contract Avatar) external returns (bool)"}},"id":14529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1866:94:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14499,"id":14530,"nodeType":"Return","src":"1859:101:50"}]},"documentation":null,"id":14532,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":14495,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"1672:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14496,"modifierName":{"argumentTypes":null,"id":14494,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"1654:17:50","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"1654:30:50"}],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":14493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14486,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":14532,"src":"1531:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":14485,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1531:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":14488,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14532,"src":"1561:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14487,"name":"address","nodeType":"ElementaryTypeName","src":"1561:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14490,"name":"_amount","nodeType":"VariableDeclaration","scope":14532,"src":"1591:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14492,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14532,"src":"1616:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1616:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1521:115:50"},"returnParameters":{"id":14499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14498,"name":"","nodeType":"VariableDeclaration","scope":14532,"src":"1697:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14497,"name":"bool","nodeType":"ElementaryTypeName","src":"1697:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1696:6:50"},"scope":14650,"src":"1492:475:50","stateMutability":"nonpayable","superFunction":20005,"visibility":"external"},{"body":{"id":14573,"nodeType":"Block","src":"2078:241:50","statements":[{"assignments":[14542],"declarations":[{"constant":false,"id":14542,"name":"avatar","nodeType":"VariableDeclaration","scope":14573,"src":"2088:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14541,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2088:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14550,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14543,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2104:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14546,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14544,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2118:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2118:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2104:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14548,"indexExpression":{"argumentTypes":null,"id":14547,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14536,"src":"2130:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2104:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2104:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2088:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14551,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2163:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14554,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2177:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2177:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2163:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14556,"indexExpression":{"argumentTypes":null,"id":14555,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14536,"src":"2189:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2163:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2163:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2219:1:50","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":14558,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2212:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2212:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2163:58:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14565,"nodeType":"IfStatement","src":"2159:97:50","trueBody":{"id":14564,"nodeType":"Block","src":"2223:33:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2244:1:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14540,"id":14563,"nodeType":"Return","src":"2237:8:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14569,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14542,"src":"2304:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2296:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2296:15:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":14566,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14534,"src":"2272:13:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"2272:23:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:40:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14540,"id":14572,"nodeType":"Return","src":"2265:47:50"}]},"documentation":null,"id":14574,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":14537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14534,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":14574,"src":"2004:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":14533,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2004:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":14536,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14574,"src":"2026:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2026:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2003:43:50"},"returnParameters":{"id":14540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14539,"name":"","nodeType":"VariableDeclaration","scope":14574,"src":"2069:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2069:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2068:9:50"},"scope":14650,"src":"1973:346:50","stateMutability":"view","superFunction":20030,"visibility":"external"},{"body":{"id":14609,"nodeType":"Block","src":"2411:249:50","statements":[{"assignments":[14582],"declarations":[{"constant":false,"id":14582,"name":"proposal","nodeType":"VariableDeclaration","scope":14609,"src":"2421:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"},"typeName":{"contractScope":null,"id":14581,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"2421:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}},"value":null,"visibility":"internal"}],"id":14589,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14583,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2452:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14586,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14584,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2466:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2466:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2452:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14588,"indexExpression":{"argumentTypes":null,"id":14587,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14576,"src":"2478:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2452:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2421:69:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14590,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"2504:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2504:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2530:1:50","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":14592,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2523:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2523:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2504:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14599,"nodeType":"IfStatement","src":"2500:67:50","trueBody":{"id":14598,"nodeType":"Block","src":"2534:33:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2555:1:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14580,"id":14597,"nodeType":"Return","src":"2548:8:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14605,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"2632:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":14358,"src":"2632:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14600,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"2583:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2583:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"2583:32:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":14603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:34:50","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":14604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":14782,"src":"2583:48:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":14607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:70:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14580,"id":14608,"nodeType":"Return","src":"2576:77:50"}]},"documentation":null,"id":14610,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":14577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14576,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14610,"src":"2359:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2359:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2358:21:50"},"returnParameters":{"id":14580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14579,"name":"","nodeType":"VariableDeclaration","scope":14610,"src":"2402:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2402:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2401:9:50"},"scope":14650,"src":"2325:335:50","stateMutability":"view","superFunction":20012,"visibility":"external"},{"body":{"id":14648,"nodeType":"Block","src":"2756:255:50","statements":[{"assignments":[14620],"declarations":[{"constant":false,"id":14620,"name":"proposal","nodeType":"VariableDeclaration","scope":14648,"src":"2766:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"},"typeName":{"contractScope":null,"id":14619,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"2766:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}},"value":null,"visibility":"internal"}],"id":14627,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14621,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2797:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14624,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14622,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2811:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2811:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2797:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14626,"indexExpression":{"argumentTypes":null,"id":14625,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14614,"src":"2823:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2797:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2766:69:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14628,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14620,"src":"2849:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2849:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2875:1:50","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":14630,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2868:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2868:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2849:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14637,"nodeType":"IfStatement","src":"2845:67:50","trueBody":{"id":14636,"nodeType":"Block","src":"2879:33:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14618,"id":14635,"nodeType":"Return","src":"2893:8:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14643,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14612,"src":"2975:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14620,"src":"2983:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":14358,"src":"2983:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14638,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14620,"src":"2928:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2928:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"2928:32:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":14641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:34:50","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":14642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"2928:46:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:76:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14618,"id":14647,"nodeType":"Return","src":"2921:83:50"}]},"documentation":null,"id":14649,"implemented":true,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":14615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14612,"name":"_owner","nodeType":"VariableDeclaration","scope":14649,"src":"2688:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14611,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14614,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14649,"src":"2704:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2704:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2687:37:50"},"returnParameters":{"id":14618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14617,"name":"","nodeType":"VariableDeclaration","scope":14649,"src":"2747:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14616,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2746:9:50"},"scope":14650,"src":"2666:345:50","stateMutability":"view","superFunction":20021,"visibility":"external"}],"scope":14651,"src":"148:2865:50"}],"src":"0:3014:50"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/votingMachines/VotingMachineCallbacks.sol","exportedSymbols":{"VotingMachineCallbacks":[14650]},"id":14651,"nodeType":"SourceUnit","nodes":[{"id":14352,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:50"},{"absolutePath":"/Users/oren/daostack/arc/contracts/universalSchemes/UniversalScheme.sol","file":"../universalSchemes/UniversalScheme.sol","id":14353,"nodeType":"ImportDirective","scope":14651,"sourceUnit":12635,"src":"25:49:50","symbolAliases":[],"unitAlias":""},{"absolutePath":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","file":"@daostack/infra/contracts/votingMachines/GenesisProtocol.sol","id":14354,"nodeType":"ImportDirective","scope":14651,"sourceUnit":17112,"src":"75:70:50","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":14355,"name":"VotingMachineCallbacksInterface","nodeType":"UserDefinedTypeName","referencedDeclaration":20031,"src":"183:31:50","typeDescriptions":{"typeIdentifier":"t_contract$_VotingMachineCallbacksInterface_$20031","typeString":"contract VotingMachineCallbacksInterface"}},"id":14356,"nodeType":"InheritanceSpecifier","src":"183:31:50"}],"contractDependencies":[20031],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":14650,"linearizedBaseContracts":[14650,20031],"name":"VotingMachineCallbacks","nodeType":"ContractDefinition","nodes":[{"canonicalName":"VotingMachineCallbacks.ProposalInfo","id":14361,"members":[{"constant":false,"id":14358,"name":"blockNumber","nodeType":"VariableDeclaration","scope":14361,"src":"252:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14357,"name":"uint256","nodeType":"ElementaryTypeName","src":"252:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14360,"name":"avatar","nodeType":"VariableDeclaration","scope":14361,"src":"312:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14359,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"312:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"name":"ProposalInfo","nodeType":"StructDefinition","scope":14650,"src":"222:135:50","visibility":"public"},{"body":{"id":14383,"nodeType":"Block","src":"411:126:50","statements":[{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14366,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"429:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14369,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14367,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"443:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"443:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"429:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14371,"indexExpression":{"argumentTypes":null,"id":14370,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14363,"src":"455:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"429:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"429:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"493:1:50","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":14374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"485:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"485:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":14373,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"478:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14377,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"478:18:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"429:67:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"argumentTypes":null,"hexValue":"6f6e6c7920566f74696e674d616368696e65","id":14379,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"498:20:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_stringliteral_d09f602d792b11aff19268ca8644e6115c2e269c3f2202bcaa79f7e4908e11bb","typeString":"literal_string \"only VotingMachine\""},"value":"only VotingMachine"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d09f602d792b11aff19268ca8644e6115c2e269c3f2202bcaa79f7e4908e11bb","typeString":"literal_string \"only VotingMachine\""}],"id":14365,"name":"require","nodeType":"Identifier","overloadedDeclarations":[21110,21111],"referencedDeclaration":21111,"src":"421:7:50","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":14380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"421:98:50","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":14381,"nodeType":"ExpressionStatement","src":"421:98:50"},{"id":14382,"nodeType":"PlaceholderStatement","src":"529:1:50"}]},"documentation":null,"id":14384,"name":"onlyVotingMachine","nodeType":"ModifierDefinition","parameters":{"id":14364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14363,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14384,"src":"390:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14362,"name":"bytes32","nodeType":"ElementaryTypeName","src":"390:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"389:21:50"},"src":"363:174:50","visibility":"internal"},{"constant":false,"id":14390,"name":"proposalsInfo","nodeType":"VariableDeclaration","scope":14650,"src":"598:73:50","stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo))"},"typeName":{"id":14389,"keyType":{"id":14385,"name":"address","nodeType":"ElementaryTypeName","src":"606:7:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"598:52:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo))"},"valueType":{"id":14388,"keyType":{"id":14386,"name":"bytes32","nodeType":"ElementaryTypeName","src":"625:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"617:32:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo)"},"valueType":{"contractScope":null,"id":14387,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"636:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}}}},"value":null,"visibility":"public"},{"body":{"id":14436,"nodeType":"Block","src":"832:247:50","statements":[{"assignments":[14405],"declarations":[{"constant":false,"id":14405,"name":"avatar","nodeType":"VariableDeclaration","scope":14436,"src":"842:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14404,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"842:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14413,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14406,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"858:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14409,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14407,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"872:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14408,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"872:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"858:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14411,"indexExpression":{"argumentTypes":null,"id":14410,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14396,"src":"884:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"858:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"858:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"842:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14414,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"917:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"934:1:50","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":14415,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"927:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14417,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"927:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"917:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14422,"nodeType":"IfStatement","src":"913:62:50","trueBody":{"id":14421,"nodeType":"Block","src":"938:37:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":14419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"959:5:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14403,"id":14420,"nodeType":"Return","src":"952:12:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14429,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14392,"src":"1033:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14430,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14394,"src":"1042:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14432,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"1064:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14431,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1056:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14433,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1056:15:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14424,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14405,"src":"1002:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1002:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1002:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14423,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"991:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":14427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:26:50","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":14428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"mintReputation","nodeType":"MemberAccess","referencedDeclaration":730,"src":"991:41:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":14434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"991:81:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14403,"id":14435,"nodeType":"Return","src":"984:88:50"}]},"documentation":null,"id":14437,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":14399,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14396,"src":"797:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14400,"modifierName":{"argumentTypes":null,"id":14398,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"779:17:50","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"779:30:50"}],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":14397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14392,"name":"_amount","nodeType":"VariableDeclaration","scope":14437,"src":"702:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14391,"name":"uint256","nodeType":"ElementaryTypeName","src":"702:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14394,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14437,"src":"719:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14393,"name":"address","nodeType":"ElementaryTypeName","src":"719:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14396,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14437,"src":"741:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14395,"name":"bytes32","nodeType":"ElementaryTypeName","src":"741:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"701:60:50"},"returnParameters":{"id":14403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14402,"name":"","nodeType":"VariableDeclaration","scope":14437,"src":"822:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14401,"name":"bool","nodeType":"ElementaryTypeName","src":"822:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"821:6:50"},"scope":14650,"src":"678:401:50","stateMutability":"nonpayable","superFunction":19981,"visibility":"external"},{"body":{"id":14483,"nodeType":"Block","src":"1239:247:50","statements":[{"assignments":[14452],"declarations":[{"constant":false,"id":14452,"name":"avatar","nodeType":"VariableDeclaration","scope":14483,"src":"1249:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14451,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1249:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14460,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14453,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"1265:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14456,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14454,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1279:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1279:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1265:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14458,"indexExpression":{"argumentTypes":null,"id":14457,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14443,"src":"1291:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1265:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"1265:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"1249:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14461,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"1324:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1341:1:50","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":14462,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1334:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1334:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1324:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14469,"nodeType":"IfStatement","src":"1320:62:50","trueBody":{"id":14468,"nodeType":"Block","src":"1345:37:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":14466,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1366:5:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14450,"id":14467,"nodeType":"Return","src":"1359:12:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14476,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14439,"src":"1440:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14477,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14441,"src":"1449:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14479,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"1471:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1463:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1463:15:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14471,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14452,"src":"1409:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1409:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1409:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14470,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1398:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":14474,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1398:26:50","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":14475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"burnReputation","nodeType":"MemberAccess","referencedDeclaration":763,"src":"1398:41:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address,address) external returns (bool)"}},"id":14481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1398:81:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14450,"id":14482,"nodeType":"Return","src":"1391:88:50"}]},"documentation":null,"id":14484,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":14446,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14443,"src":"1204:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14447,"modifierName":{"argumentTypes":null,"id":14445,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"1186:17:50","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"1186:30:50"}],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":14444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14439,"name":"_amount","nodeType":"VariableDeclaration","scope":14484,"src":"1109:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14438,"name":"uint256","nodeType":"ElementaryTypeName","src":"1109:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14441,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14484,"src":"1126:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14440,"name":"address","nodeType":"ElementaryTypeName","src":"1126:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14443,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14484,"src":"1148:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14442,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1148:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1108:60:50"},"returnParameters":{"id":14450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14449,"name":"","nodeType":"VariableDeclaration","scope":14484,"src":"1229:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14448,"name":"bool","nodeType":"ElementaryTypeName","src":"1229:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1228:6:50"},"scope":14650,"src":"1085:401:50","stateMutability":"nonpayable","superFunction":19992,"visibility":"external"},{"body":{"id":14531,"nodeType":"Block","src":"1707:260:50","statements":[{"assignments":[14501],"declarations":[{"constant":false,"id":14501,"name":"avatar","nodeType":"VariableDeclaration","scope":14531,"src":"1717:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14500,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"1717:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14509,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14502,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"1733:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14505,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14503,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"1747:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"1747:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1733:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14507,"indexExpression":{"argumentTypes":null,"id":14506,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"1759:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1733:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"1733:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"1717:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"id":14510,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"1792:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14512,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1809:1:50","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":14511,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"1802:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1802:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"1792:19:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14518,"nodeType":"IfStatement","src":"1788:62:50","trueBody":{"id":14517,"nodeType":"Block","src":"1813:37:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"66616c7365","id":14515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1834:5:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"functionReturnParameters":14499,"id":14516,"nodeType":"Return","src":"1827:12:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14525,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14486,"src":"1915:13:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},{"argumentTypes":null,"id":14526,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14488,"src":"1930:12:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"id":14527,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14490,"src":"1944:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"argumentTypes":null,"id":14528,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"1953:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"id":14520,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14501,"src":"1877:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":20432,"src":"1877:12:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":14522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1877:14:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":14519,"name":"Controller","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1797,"src":"1866:10:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Controller_$1797_$","typeString":"type(contract Controller)"}},"id":14523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1866:26:50","typeDescriptions":{"typeIdentifier":"t_contract$_Controller_$1797","typeString":"contract Controller"}},"id":14524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"externalTokenTransfer","nodeType":"MemberAccess","referencedDeclaration":1534,"src":"1866:48:50","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_contract$_IERC20_$21017_$_t_address_$_t_uint256_$_t_contract$_Avatar_$337_$returns$_t_bool_$","typeString":"function (contract IERC20,address,uint256,contract Avatar) external returns (bool)"}},"id":14529,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1866:94:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":14499,"id":14530,"nodeType":"Return","src":"1859:101:50"}]},"documentation":null,"id":14532,"implemented":true,"kind":"function","modifiers":[{"arguments":[{"argumentTypes":null,"id":14495,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14492,"src":"1672:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":14496,"modifierName":{"argumentTypes":null,"id":14494,"name":"onlyVotingMachine","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14384,"src":"1654:17:50","typeDescriptions":{"typeIdentifier":"t_modifier$_t_bytes32_$","typeString":"modifier (bytes32)"}},"nodeType":"ModifierInvocation","src":"1654:30:50"}],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":14493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14486,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":14532,"src":"1531:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":14485,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"1531:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":14488,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":14532,"src":"1561:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14487,"name":"address","nodeType":"ElementaryTypeName","src":"1561:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14490,"name":"_amount","nodeType":"VariableDeclaration","scope":14532,"src":"1591:15:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14489,"name":"uint256","nodeType":"ElementaryTypeName","src":"1591:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":14492,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14532,"src":"1616:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14491,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1616:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"1521:115:50"},"returnParameters":{"id":14499,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14498,"name":"","nodeType":"VariableDeclaration","scope":14532,"src":"1697:4:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":14497,"name":"bool","nodeType":"ElementaryTypeName","src":"1697:4:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"1696:6:50"},"scope":14650,"src":"1492:475:50","stateMutability":"nonpayable","superFunction":20005,"visibility":"external"},{"body":{"id":14573,"nodeType":"Block","src":"2078:241:50","statements":[{"assignments":[14542],"declarations":[{"constant":false,"id":14542,"name":"avatar","nodeType":"VariableDeclaration","scope":14573,"src":"2088:13:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"typeName":{"contractScope":null,"id":14541,"name":"Avatar","nodeType":"UserDefinedTypeName","referencedDeclaration":337,"src":"2088:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"value":null,"visibility":"internal"}],"id":14550,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14543,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2104:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14546,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14544,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2118:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2118:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2104:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14548,"indexExpression":{"argumentTypes":null,"id":14547,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14536,"src":"2130:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2104:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14549,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2104:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"VariableDeclarationStatement","src":"2088:61:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14551,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2163:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14554,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14552,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2177:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2177:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2163:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14556,"indexExpression":{"argumentTypes":null,"id":14555,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14536,"src":"2189:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2163:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"id":14557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2163:45:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2219:1:50","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":14558,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2212:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2212:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2163:58:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14565,"nodeType":"IfStatement","src":"2159:97:50","trueBody":{"id":14564,"nodeType":"Block","src":"2223:33:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14562,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2244:1:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14540,"id":14563,"nodeType":"Return","src":"2237:8:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14569,"name":"avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14542,"src":"2304:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}],"id":14568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2296:7:50","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":14570,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2296:15:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"expression":{"argumentTypes":null,"id":14566,"name":"_stakingToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14534,"src":"2272:13:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"id":14567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":20962,"src":"2272:23:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":14571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2272:40:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14540,"id":14572,"nodeType":"Return","src":"2265:47:50"}]},"documentation":null,"id":14574,"implemented":true,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":14537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14534,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":14574,"src":"2004:20:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":14533,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"2004:6:50","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":14536,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14574,"src":"2026:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14535,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2026:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2003:43:50"},"returnParameters":{"id":14540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14539,"name":"","nodeType":"VariableDeclaration","scope":14574,"src":"2069:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14538,"name":"uint256","nodeType":"ElementaryTypeName","src":"2069:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2068:9:50"},"scope":14650,"src":"1973:346:50","stateMutability":"view","superFunction":20030,"visibility":"external"},{"body":{"id":14609,"nodeType":"Block","src":"2411:249:50","statements":[{"assignments":[14582],"declarations":[{"constant":false,"id":14582,"name":"proposal","nodeType":"VariableDeclaration","scope":14609,"src":"2421:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"},"typeName":{"contractScope":null,"id":14581,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"2421:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}},"value":null,"visibility":"internal"}],"id":14589,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14583,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2452:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14586,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14584,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2466:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2466:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2452:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14588,"indexExpression":{"argumentTypes":null,"id":14587,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14576,"src":"2478:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2452:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2421:69:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14590,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"2504:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14591,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2504:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2530:1:50","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":14592,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2523:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2523:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2504:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14599,"nodeType":"IfStatement","src":"2500:67:50","trueBody":{"id":14598,"nodeType":"Block","src":"2534:33:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14596,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2555:1:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14580,"id":14597,"nodeType":"Return","src":"2548:8:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14605,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"2632:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":14358,"src":"2632:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14600,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14582,"src":"2583:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2583:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"2583:32:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":14603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:34:50","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":14604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"totalSupplyAt","nodeType":"MemberAccess","referencedDeclaration":14782,"src":"2583:48:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view external returns (uint256)"}},"id":14607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2583:70:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14580,"id":14608,"nodeType":"Return","src":"2576:77:50"}]},"documentation":null,"id":14610,"implemented":true,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":14577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14576,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14610,"src":"2359:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14575,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2359:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2358:21:50"},"returnParameters":{"id":14580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14579,"name":"","nodeType":"VariableDeclaration","scope":14610,"src":"2402:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14578,"name":"uint256","nodeType":"ElementaryTypeName","src":"2402:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2401:9:50"},"scope":14650,"src":"2325:335:50","stateMutability":"view","superFunction":20012,"visibility":"external"},{"body":{"id":14648,"nodeType":"Block","src":"2756:255:50","statements":[{"assignments":[14620],"declarations":[{"constant":false,"id":14620,"name":"proposal","nodeType":"VariableDeclaration","scope":14648,"src":"2766:28:50","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"},"typeName":{"contractScope":null,"id":14619,"name":"ProposalInfo","nodeType":"UserDefinedTypeName","referencedDeclaration":14361,"src":"2766:12:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo"}},"value":null,"visibility":"internal"}],"id":14627,"initialValue":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"baseExpression":{"argumentTypes":null,"id":14621,"name":"proposalsInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14390,"src":"2797:13:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$_$","typeString":"mapping(address => mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref))"}},"id":14624,"indexExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14622,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"2811:3:50","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":14623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"2811:10:50","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2797:25:50","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_ProposalInfo_$14361_storage_$","typeString":"mapping(bytes32 => struct VotingMachineCallbacks.ProposalInfo storage ref)"}},"id":14626,"indexExpression":{"argumentTypes":null,"id":14625,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14614,"src":"2823:11:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2797:38:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_storage","typeString":"struct VotingMachineCallbacks.ProposalInfo storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2766:69:50"},{"condition":{"argumentTypes":null,"commonType":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"},"id":14633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14628,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14620,"src":"2849:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14629,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2849:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"hexValue":"30","id":14631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2875:1:50","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":14630,"name":"Avatar","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":337,"src":"2868:6:50","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Avatar_$337_$","typeString":"type(contract Avatar)"}},"id":14632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2868:9:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"src":"2849:28:50","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":null,"id":14637,"nodeType":"IfStatement","src":"2845:67:50","trueBody":{"id":14636,"nodeType":"Block","src":"2879:33:50","statements":[{"expression":{"argumentTypes":null,"hexValue":"30","id":14634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2900:1:50","subdenomination":null,"typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"functionReturnParameters":14618,"id":14635,"nodeType":"Return","src":"2893:8:50"}]}},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":14643,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14612,"src":"2975:6:50","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14620,"src":"2983:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"blockNumber","nodeType":"MemberAccess","referencedDeclaration":14358,"src":"2983:20:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"arguments":[],"expression":{"argumentTypes":[],"expression":{"argumentTypes":null,"expression":{"argumentTypes":null,"id":14638,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14620,"src":"2928:8:50","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalInfo_$14361_memory_ptr","typeString":"struct VotingMachineCallbacks.ProposalInfo memory"}},"id":14639,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberName":"avatar","nodeType":"MemberAccess","referencedDeclaration":14360,"src":"2928:15:50","typeDescriptions":{"typeIdentifier":"t_contract$_Avatar_$337","typeString":"contract Avatar"}},"id":14640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"nativeReputation","nodeType":"MemberAccess","referencedDeclaration":75,"src":"2928:32:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_Reputation_$15082_$","typeString":"function () view external returns (contract Reputation)"}},"id":14641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:34:50","typeDescriptions":{"typeIdentifier":"t_contract$_Reputation_$15082","typeString":"contract Reputation"}},"id":14642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balanceOfAt","nodeType":"MemberAccess","referencedDeclaration":14751,"src":"2928:46:50","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view external returns (uint256)"}},"id":14646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2928:76:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":14618,"id":14647,"nodeType":"Return","src":"2921:83:50"}]},"documentation":null,"id":14649,"implemented":true,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":14615,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14612,"name":"_owner","nodeType":"VariableDeclaration","scope":14649,"src":"2688:14:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":14611,"name":"address","nodeType":"ElementaryTypeName","src":"2688:7:50","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":14614,"name":"_proposalId","nodeType":"VariableDeclaration","scope":14649,"src":"2704:19:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":14613,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2704:7:50","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"2687:37:50"},"returnParameters":{"id":14618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":14617,"name":"","nodeType":"VariableDeclaration","scope":14649,"src":"2747:7:50","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":14616,"name":"uint256","nodeType":"ElementaryTypeName","src":"2747:7:50","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"2746:9:50"},"scope":14650,"src":"2666:345:50","stateMutability":"view","superFunction":20021,"visibility":"external"}],"scope":14651,"src":"148:2865:50"}],"src":"0:3014:50"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.229Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VotingMachineCallbacksInterface.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VotingMachineCallbacksInterface.json new file mode 100644 index 00000000..bc9066a1 --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/VotingMachineCallbacksInterface.json @@ -0,0 +1 @@ +{"contractName":"VotingMachineCallbacksInterface","abi":[{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"mintReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"burnReputation","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"stakingTokenTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"getTotalReputationSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"reputationOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"contract IERC20","name":"_stakingToken","type":"address"},{"internalType":"bytes32","name":"_proposalId","type":"bytes32"}],"name":"balanceOfStakingToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"balanceOfStakingToken\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"burnReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"getTotalReputationSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"mintReputation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"reputationOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"_stakingToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_beneficiary\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"_proposalId\",\"type\":\"bytes32\"}],\"name\":\"stakingTokenTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":\"VotingMachineCallbacksInterface\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol\":{\"keccak256\":\"0x6842ebb4c701b0c80e072745e7abf75b727a3afa343bf7aa8054491b19b932c5\",\"urls\":[\"bzz-raw://50c8af4a06d95d4ecf12560632bcdbd7a582c67d6a90ccb12aa82347fc77933d\",\"dweb:/ipfs/Qma84nrgy4hc3AJCykC231AJKTuSicMRLxVA99VJUqLrUY\"]},\"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}","sourceMap":"","deployedSourceMap":"","source":"pragma solidity ^0.5.11;\n\nimport \"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol\";\n\ninterface VotingMachineCallbacksInterface {\n function mintReputation(uint256 _amount, address _beneficiary, bytes32 _proposalId) external returns(bool);\n function burnReputation(uint256 _amount, address _owner, bytes32 _proposalId) external returns(bool);\n\n function stakingTokenTransfer(IERC20 _stakingToken, address _beneficiary, uint256 _amount, bytes32 _proposalId)\n external\n returns(bool);\n\n function getTotalReputationSupply(bytes32 _proposalId) external view returns(uint256);\n function reputationOf(address _owner, bytes32 _proposalId) external view returns(uint256);\n function balanceOfStakingToken(IERC20 _stakingToken, bytes32 _proposalId) external view returns(uint256);\n}\n","sourcePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","ast":{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","exportedSymbols":{"VotingMachineCallbacksInterface":[20031]},"id":20032,"nodeType":"SourceUnit","nodes":[{"id":19969,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:62"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":19970,"nodeType":"ImportDirective","scope":20032,"sourceUnit":21018,"src":"26:64:62","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":20031,"linearizedBaseContracts":[20031],"name":"VotingMachineCallbacksInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":19981,"implemented":false,"kind":"function","modifiers":[],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":19977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19972,"name":"_amount","nodeType":"VariableDeclaration","scope":19981,"src":"164:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19971,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19974,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":19981,"src":"181:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19973,"name":"address","nodeType":"ElementaryTypeName","src":"181:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19976,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19981,"src":"203:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"163:60:62"},"returnParameters":{"id":19980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19979,"name":"","nodeType":"VariableDeclaration","scope":19981,"src":"241:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19978,"name":"bool","nodeType":"ElementaryTypeName","src":"241:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"240:6:62"},"scope":20031,"src":"140:107:62","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19992,"implemented":false,"kind":"function","modifiers":[],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":19988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19983,"name":"_amount","nodeType":"VariableDeclaration","scope":19992,"src":"276:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19982,"name":"uint256","nodeType":"ElementaryTypeName","src":"276:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19985,"name":"_owner","nodeType":"VariableDeclaration","scope":19992,"src":"293:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19984,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19987,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19992,"src":"309:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"275:54:62"},"returnParameters":{"id":19991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19990,"name":"","nodeType":"VariableDeclaration","scope":19992,"src":"347:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19989,"name":"bool","nodeType":"ElementaryTypeName","src":"347:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"346:6:62"},"scope":20031,"src":"252:101:62","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20005,"implemented":false,"kind":"function","modifiers":[],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":20001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19994,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":20005,"src":"389:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":19993,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"389:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":19996,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":20005,"src":"411:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19995,"name":"address","nodeType":"ElementaryTypeName","src":"411:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19998,"name":"_amount","nodeType":"VariableDeclaration","scope":20005,"src":"433:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19997,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20000,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20005,"src":"450:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"450:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"388:82:62"},"returnParameters":{"id":20004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20003,"name":"","nodeType":"VariableDeclaration","scope":20005,"src":"496:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20002,"name":"bool","nodeType":"ElementaryTypeName","src":"496:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"495:6:62"},"scope":20031,"src":"359:143:62","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20012,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":20008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20007,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20012,"src":"542:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"542:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"541:21:62"},"returnParameters":{"id":20011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20010,"name":"","nodeType":"VariableDeclaration","scope":20012,"src":"585:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20009,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"584:9:62"},"scope":20031,"src":"508:86:62","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20021,"implemented":false,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":20017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20014,"name":"_owner","nodeType":"VariableDeclaration","scope":20021,"src":"621:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20013,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20016,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20021,"src":"637:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"637:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"620:37:62"},"returnParameters":{"id":20020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20019,"name":"","nodeType":"VariableDeclaration","scope":20021,"src":"680:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20018,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"679:9:62"},"scope":20031,"src":"599:90:62","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20030,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":20026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20023,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":20030,"src":"725:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":20022,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"725:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":20025,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20030,"src":"747:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"747:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"724:43:62"},"returnParameters":{"id":20029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20028,"name":"","nodeType":"VariableDeclaration","scope":20030,"src":"790:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20027,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"789:9:62"},"scope":20031,"src":"694:105:62","stateMutability":"view","superFunction":null,"visibility":"external"}],"scope":20032,"src":"92:709:62"}],"src":"0:802:62"},"legacyAST":{"absolutePath":"@daostack/infra/contracts/votingMachines/VotingMachineCallbacksInterface.sol","exportedSymbols":{"VotingMachineCallbacksInterface":[20031]},"id":20032,"nodeType":"SourceUnit","nodes":[{"id":19969,"literals":["solidity","^","0.5",".11"],"nodeType":"PragmaDirective","src":"0:24:62"},{"absolutePath":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","file":"openzeppelin-solidity/contracts/token/ERC20/IERC20.sol","id":19970,"nodeType":"ImportDirective","scope":20032,"sourceUnit":21018,"src":"26:64:62","symbolAliases":[],"unitAlias":""},{"baseContracts":[],"contractDependencies":[],"contractKind":"interface","documentation":null,"fullyImplemented":false,"id":20031,"linearizedBaseContracts":[20031],"name":"VotingMachineCallbacksInterface","nodeType":"ContractDefinition","nodes":[{"body":null,"documentation":null,"id":19981,"implemented":false,"kind":"function","modifiers":[],"name":"mintReputation","nodeType":"FunctionDefinition","parameters":{"id":19977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19972,"name":"_amount","nodeType":"VariableDeclaration","scope":19981,"src":"164:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19971,"name":"uint256","nodeType":"ElementaryTypeName","src":"164:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19974,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":19981,"src":"181:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19973,"name":"address","nodeType":"ElementaryTypeName","src":"181:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19976,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19981,"src":"203:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19975,"name":"bytes32","nodeType":"ElementaryTypeName","src":"203:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"163:60:62"},"returnParameters":{"id":19980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19979,"name":"","nodeType":"VariableDeclaration","scope":19981,"src":"241:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19978,"name":"bool","nodeType":"ElementaryTypeName","src":"241:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"240:6:62"},"scope":20031,"src":"140:107:62","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":19992,"implemented":false,"kind":"function","modifiers":[],"name":"burnReputation","nodeType":"FunctionDefinition","parameters":{"id":19988,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19983,"name":"_amount","nodeType":"VariableDeclaration","scope":19992,"src":"276:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19982,"name":"uint256","nodeType":"ElementaryTypeName","src":"276:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":19985,"name":"_owner","nodeType":"VariableDeclaration","scope":19992,"src":"293:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19984,"name":"address","nodeType":"ElementaryTypeName","src":"293:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19987,"name":"_proposalId","nodeType":"VariableDeclaration","scope":19992,"src":"309:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19986,"name":"bytes32","nodeType":"ElementaryTypeName","src":"309:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"275:54:62"},"returnParameters":{"id":19991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19990,"name":"","nodeType":"VariableDeclaration","scope":19992,"src":"347:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":19989,"name":"bool","nodeType":"ElementaryTypeName","src":"347:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"346:6:62"},"scope":20031,"src":"252:101:62","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20005,"implemented":false,"kind":"function","modifiers":[],"name":"stakingTokenTransfer","nodeType":"FunctionDefinition","parameters":{"id":20001,"nodeType":"ParameterList","parameters":[{"constant":false,"id":19994,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":20005,"src":"389:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":19993,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"389:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":19996,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":20005,"src":"411:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":19995,"name":"address","nodeType":"ElementaryTypeName","src":"411:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":19998,"name":"_amount","nodeType":"VariableDeclaration","scope":20005,"src":"433:15:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":19997,"name":"uint256","nodeType":"ElementaryTypeName","src":"433:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"},{"constant":false,"id":20000,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20005,"src":"450:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":19999,"name":"bytes32","nodeType":"ElementaryTypeName","src":"450:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"388:82:62"},"returnParameters":{"id":20004,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20003,"name":"","nodeType":"VariableDeclaration","scope":20005,"src":"496:4:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":20002,"name":"bool","nodeType":"ElementaryTypeName","src":"496:4:62","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"value":null,"visibility":"internal"}],"src":"495:6:62"},"scope":20031,"src":"359:143:62","stateMutability":"nonpayable","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20012,"implemented":false,"kind":"function","modifiers":[],"name":"getTotalReputationSupply","nodeType":"FunctionDefinition","parameters":{"id":20008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20007,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20012,"src":"542:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20006,"name":"bytes32","nodeType":"ElementaryTypeName","src":"542:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"541:21:62"},"returnParameters":{"id":20011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20010,"name":"","nodeType":"VariableDeclaration","scope":20012,"src":"585:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20009,"name":"uint256","nodeType":"ElementaryTypeName","src":"585:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"584:9:62"},"scope":20031,"src":"508:86:62","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20021,"implemented":false,"kind":"function","modifiers":[],"name":"reputationOf","nodeType":"FunctionDefinition","parameters":{"id":20017,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20014,"name":"_owner","nodeType":"VariableDeclaration","scope":20021,"src":"621:14:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20013,"name":"address","nodeType":"ElementaryTypeName","src":"621:7:62","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":20016,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20021,"src":"637:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20015,"name":"bytes32","nodeType":"ElementaryTypeName","src":"637:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"620:37:62"},"returnParameters":{"id":20020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20019,"name":"","nodeType":"VariableDeclaration","scope":20021,"src":"680:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20018,"name":"uint256","nodeType":"ElementaryTypeName","src":"680:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"679:9:62"},"scope":20031,"src":"599:90:62","stateMutability":"view","superFunction":null,"visibility":"external"},{"body":null,"documentation":null,"id":20030,"implemented":false,"kind":"function","modifiers":[],"name":"balanceOfStakingToken","nodeType":"FunctionDefinition","parameters":{"id":20026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20023,"name":"_stakingToken","nodeType":"VariableDeclaration","scope":20030,"src":"725:20:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"},"typeName":{"contractScope":null,"id":20022,"name":"IERC20","nodeType":"UserDefinedTypeName","referencedDeclaration":21017,"src":"725:6:62","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$21017","typeString":"contract IERC20"}},"value":null,"visibility":"internal"},{"constant":false,"id":20025,"name":"_proposalId","nodeType":"VariableDeclaration","scope":20030,"src":"747:19:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":20024,"name":"bytes32","nodeType":"ElementaryTypeName","src":"747:7:62","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":null,"visibility":"internal"}],"src":"724:43:62"},"returnParameters":{"id":20029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":20028,"name":"","nodeType":"VariableDeclaration","scope":20030,"src":"790:7:62","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":20027,"name":"uint256","nodeType":"ElementaryTypeName","src":"790:7:62","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"789:9:62"},"scope":20031,"src":"694:105:62","stateMutability":"view","superFunction":null,"visibility":"external"}],"scope":20032,"src":"92:709:62"}],"src":"0:802:62"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.266Z","devdoc":{"methods":{}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Wallet.json b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Wallet.json new file mode 100644 index 00000000..d070e33d --- /dev/null +++ b/packages/lib/src/dependency/arc/src/contracts-optimized/0.0.1-rc.41/Wallet.json @@ -0,0 +1 @@ +{"contractName":"Wallet","abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Pay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"ReceiveEther","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address payable","name":"_beneficiary","type":"address"}],"name":"pay","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"metadata":"{\"compiler\":{\"version\":\"0.5.13+commit.5b0b510c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Pay\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"ReceiveEther\",\"type\":\"event\"},{\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"constant\":true,\"inputs\":[],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_beneficiary\",\"type\":\"address\"}],\"name\":\"pay\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{\"isOwner()\":{\"details\":\"Returns true if the caller is the current owner.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/Users/oren/daostack/arc/contracts/test/Wallet.sol\":\"Wallet\"},\"evmVersion\":\"petersburg\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/oren/daostack/arc/contracts/test/Wallet.sol\":{\"keccak256\":\"0xf1db62a025f1dce9e0289b0d69c92e477e5c349486d52eb6e1fb0a6540b582d0\",\"urls\":[\"bzz-raw://374a1437967666a14857db13ccbc854c5b422048d23bcbd97735bd0b203eaf57\",\"dweb:/ipfs/QmSEPuvM9g4XrwMsnbnNE4aSJ2bXC1PaxdKneshTg7Ef7R\"]},\"openzeppelin-solidity/contracts/GSN/Context.sol\":{\"keccak256\":\"0x90a3995645af7562d84b9d69363ffa5ae7217714ab61e951bf7bc450f40e4061\",\"urls\":[\"bzz-raw://216ef9d6b614db4eb46970b4e84903f2534a45572dd30a79f0041f1a5830f436\",\"dweb:/ipfs/QmNPrJ4MWKUAWzKXpUqeyKRUfosaoANZAqXgvepdrCwZAG\"]},\"openzeppelin-solidity/contracts/ownership/Ownable.sol\":{\"keccak256\":\"0xecd8ab29d9a5771c3964d0cd1788c4a5098a0081b20fb275da850a22b1c59806\",\"urls\":[\"bzz-raw://696a75bc2c55407ce8251ccc7d19ecb1b7b2be1796a160a6524312babcc7e3d4\",\"dweb:/ipfs/QmQViKEp3y99h9uhRssE29TmjBKRnFMaoz3eJZ4eggggg2\"]}},\"version\":1}","sourceMap":"90:444:37:-;;;707:12:67;-1:-1:-1;;;;;707:10:67;:12;:::i;:::-;698:6;:21;;-1:-1:-1;;;;;;698:21:67;-1:-1:-1;;;;;698:21:67;;;;;;;734:40;;767:6;;;734:40;;698:6;;734:40;90:444:37;;788:96:63;867:10;788:96;:::o;90:444:37:-;;;;;;;","deployedSourceMap":"90:444:37:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;289:35;;;314:9;289:35;;;;302:10;;289:35;;;;;;;;;;90:444;337:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;337:194:37;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;337:194:37;-1:-1:-1;;;;;337:194:37;;:::i;:::-;;1642:137:67;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1642:137:67;;;:::i;857:77::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;857:77:67;;;:::i;:::-;;;;-1:-1:-1;;;;;857:77:67;;;;;;;;;;;;;;1208:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1208:92:67;;;:::i;:::-;;;;;;;;;;;;;;;;;;1928:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1928:107:67;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1928:107:67;-1:-1:-1;;;;;1928:107:67;;:::i;337:194:37:-;1061:9:67;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;455:29:37;;432:4;424:21;;-1:-1:-1;;;;;455:21:37;;;:29;;;;;424:21;;407:14;455:29;407:14;455:29;424:21;455;:29;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;499:25:37;;;;;;;;-1:-1:-1;;;;;499:25:37;;;;;;;;;;;;;1117:1:67;337:194:37;:::o;1642:137:67:-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1740:1;1724:6;;1703:40;;-1:-1:-1;;;;;1724:6:67;;;;1703:40;;1740:1;;1703:40;1770:1;1753:19;;-1:-1:-1;;;;;;1753:19:67;;;1642:137::o;857:77::-;895:7;921:6;-1:-1:-1;;;;;921:6:67;857:77;:::o;1208:92::-;1248:4;1287:6;;-1:-1:-1;;;;;1287:6:67;1271:12;:10;:12::i;:::-;-1:-1:-1;;;;;1271:22:67;;1264:29;;1208:92;:::o;1928:107::-;1061:9;:7;:9::i;:::-;1053:54;;;;;-1:-1:-1;;;1053:54:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2000:28;2019:8;2000:18;:28::i;:::-;1928:107;:::o;788:96:63:-;867:10;788:96;:::o;2136:225:67:-;-1:-1:-1;;;;;2209:22:67;;2201:73;;;;-1:-1:-1;;;2201:73:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2310:6;;;2289:38;;-1:-1:-1;;;;;2289:38:67;;;;2310:6;;;2289:38;;;2337:6;:17;;-1:-1:-1;;;;;;2337:17:67;-1:-1:-1;;;;;2337:17:67;;;;;;;;;;2136:225::o","source":"pragma solidity 0.5.13;\nimport \"openzeppelin-solidity/contracts/ownership/Ownable.sol\";\n\n\ncontract Wallet is Ownable {\n\n event ReceiveEther(address indexed _sender, uint256 _value);\n event Pay(address indexed _sender, uint256 _value);\n\n function() external payable {\n emit ReceiveEther(msg.sender, msg.value);\n }\n\n function pay(address payable _beneficiary) public onlyOwner {\n uint256 amount = address(this).balance;\n _beneficiary.transfer(amount);\n emit Pay(_beneficiary, amount);\n }\n\n}\n","sourcePath":"/Users/oren/daostack/arc/contracts/test/Wallet.sol","ast":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/Wallet.sol","exportedSymbols":{"Wallet":[9621]},"id":9622,"nodeType":"SourceUnit","nodes":[{"id":9568,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:37"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":9569,"nodeType":"ImportDirective","scope":9622,"sourceUnit":20510,"src":"24:63:37","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9570,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"109:7:37","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":9571,"nodeType":"InheritanceSpecifier","src":"109:7:37"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9621,"linearizedBaseContracts":[9621,20509,20058],"name":"Wallet","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":9577,"name":"ReceiveEther","nodeType":"EventDefinition","parameters":{"id":9576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9573,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":9577,"src":"143:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9572,"name":"address","nodeType":"ElementaryTypeName","src":"143:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9575,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":9577,"src":"168:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9574,"name":"uint256","nodeType":"ElementaryTypeName","src":"168:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"142:41:37"},"src":"124:60:37"},{"anonymous":false,"documentation":null,"id":9583,"name":"Pay","nodeType":"EventDefinition","parameters":{"id":9582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9579,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":9583,"src":"199:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9578,"name":"address","nodeType":"ElementaryTypeName","src":"199:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9581,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":9583,"src":"224:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9580,"name":"uint256","nodeType":"ElementaryTypeName","src":"224:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"198:41:37"},"src":"189:51:37"},{"body":{"id":9593,"nodeType":"Block","src":"274:57:37","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9587,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"302:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"302:10:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9589,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"314:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"314:9:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9586,"name":"ReceiveEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"289:12:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"289:35:37","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9592,"nodeType":"EmitStatement","src":"284:40:37"}]},"documentation":null,"id":9594,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":9584,"nodeType":"ParameterList","parameters":[],"src":"254:2:37"},"returnParameters":{"id":9585,"nodeType":"ParameterList","parameters":[],"src":"274:0:37"},"scope":9621,"src":"246:85:37","stateMutability":"payable","superFunction":null,"visibility":"external"},{"body":{"id":9619,"nodeType":"Block","src":"397:134:37","statements":[{"assignments":[9602],"declarations":[{"constant":false,"id":9602,"name":"amount","nodeType":"VariableDeclaration","scope":9619,"src":"407:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9601,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":9607,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9604,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21245,"src":"432:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$9621","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$9621","typeString":"contract Wallet"}],"id":9603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"424:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"424:13:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"424:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"407:38:37"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9611,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"477:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9608,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"455:12:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"455:21:37","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"455:29:37","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9613,"nodeType":"ExpressionStatement","src":"455:29:37"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9615,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"503:12:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":9616,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"517:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9614,"name":"Pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9583,"src":"499:3:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"499:25:37","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9618,"nodeType":"EmitStatement","src":"494:30:37"}]},"documentation":null,"id":9620,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":9599,"modifierName":{"argumentTypes":null,"id":9598,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"387:9:37","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"387:9:37"}],"name":"pay","nodeType":"FunctionDefinition","parameters":{"id":9597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9596,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9620,"src":"350:28:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9595,"name":"address","nodeType":"ElementaryTypeName","src":"350:15:37","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"349:30:37"},"returnParameters":{"id":9600,"nodeType":"ParameterList","parameters":[],"src":"397:0:37"},"scope":9621,"src":"337:194:37","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":9622,"src":"90:444:37"}],"src":"0:535:37"},"legacyAST":{"absolutePath":"/Users/oren/daostack/arc/contracts/test/Wallet.sol","exportedSymbols":{"Wallet":[9621]},"id":9622,"nodeType":"SourceUnit","nodes":[{"id":9568,"literals":["solidity","0.5",".13"],"nodeType":"PragmaDirective","src":"0:23:37"},{"absolutePath":"openzeppelin-solidity/contracts/ownership/Ownable.sol","file":"openzeppelin-solidity/contracts/ownership/Ownable.sol","id":9569,"nodeType":"ImportDirective","scope":9622,"sourceUnit":20510,"src":"24:63:37","symbolAliases":[],"unitAlias":""},{"baseContracts":[{"arguments":null,"baseName":{"contractScope":null,"id":9570,"name":"Ownable","nodeType":"UserDefinedTypeName","referencedDeclaration":20509,"src":"109:7:37","typeDescriptions":{"typeIdentifier":"t_contract$_Ownable_$20509","typeString":"contract Ownable"}},"id":9571,"nodeType":"InheritanceSpecifier","src":"109:7:37"}],"contractDependencies":[20058,20509],"contractKind":"contract","documentation":null,"fullyImplemented":true,"id":9621,"linearizedBaseContracts":[9621,20509,20058],"name":"Wallet","nodeType":"ContractDefinition","nodes":[{"anonymous":false,"documentation":null,"id":9577,"name":"ReceiveEther","nodeType":"EventDefinition","parameters":{"id":9576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9573,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":9577,"src":"143:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9572,"name":"address","nodeType":"ElementaryTypeName","src":"143:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9575,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":9577,"src":"168:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9574,"name":"uint256","nodeType":"ElementaryTypeName","src":"168:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"142:41:37"},"src":"124:60:37"},{"anonymous":false,"documentation":null,"id":9583,"name":"Pay","nodeType":"EventDefinition","parameters":{"id":9582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9579,"indexed":true,"name":"_sender","nodeType":"VariableDeclaration","scope":9583,"src":"199:23:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":9578,"name":"address","nodeType":"ElementaryTypeName","src":"199:7:37","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":null,"visibility":"internal"},{"constant":false,"id":9581,"indexed":false,"name":"_value","nodeType":"VariableDeclaration","scope":9583,"src":"224:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9580,"name":"uint256","nodeType":"ElementaryTypeName","src":"224:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"src":"198:41:37"},"src":"189:51:37"},{"body":{"id":9593,"nodeType":"Block","src":"274:57:37","statements":[{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9587,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"302:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","referencedDeclaration":null,"src":"302:10:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"expression":{"argumentTypes":null,"id":9589,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21107,"src":"314:3:37","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":9590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"value","nodeType":"MemberAccess","referencedDeclaration":null,"src":"314:9:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9586,"name":"ReceiveEther","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9577,"src":"289:12:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"289:35:37","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9592,"nodeType":"EmitStatement","src":"284:40:37"}]},"documentation":null,"id":9594,"implemented":true,"kind":"fallback","modifiers":[],"name":"","nodeType":"FunctionDefinition","parameters":{"id":9584,"nodeType":"ParameterList","parameters":[],"src":"254:2:37"},"returnParameters":{"id":9585,"nodeType":"ParameterList","parameters":[],"src":"274:0:37"},"scope":9621,"src":"246:85:37","stateMutability":"payable","superFunction":null,"visibility":"external"},{"body":{"id":9619,"nodeType":"Block","src":"397:134:37","statements":[{"assignments":[9602],"declarations":[{"constant":false,"id":9602,"name":"amount","nodeType":"VariableDeclaration","scope":9619,"src":"407:14:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":9601,"name":"uint256","nodeType":"ElementaryTypeName","src":"407:7:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":null,"visibility":"internal"}],"id":9607,"initialValue":{"argumentTypes":null,"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9604,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21245,"src":"432:4:37","typeDescriptions":{"typeIdentifier":"t_contract$_Wallet_$9621","typeString":"contract Wallet"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Wallet_$9621","typeString":"contract Wallet"}],"id":9603,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"424:7:37","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":"address"},"id":9605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"424:13:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"balance","nodeType":"MemberAccess","referencedDeclaration":null,"src":"424:21:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"407:38:37"},{"expression":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9611,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"477:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"argumentTypes":null,"id":9608,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"455:12:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":9610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":null,"src":"455:21:37","typeDescriptions":{"typeIdentifier":"t_function_transfer_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":9612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"455:29:37","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9613,"nodeType":"ExpressionStatement","src":"455:29:37"},{"eventCall":{"argumentTypes":null,"arguments":[{"argumentTypes":null,"id":9615,"name":"_beneficiary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9596,"src":"503:12:37","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"argumentTypes":null,"id":9616,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9602,"src":"517:6:37","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":9614,"name":"Pay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":9583,"src":"499:3:37","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":9617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"499:25:37","typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":9618,"nodeType":"EmitStatement","src":"494:30:37"}]},"documentation":null,"id":9620,"implemented":true,"kind":"function","modifiers":[{"arguments":null,"id":9599,"modifierName":{"argumentTypes":null,"id":9598,"name":"onlyOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":20442,"src":"387:9:37","typeDescriptions":{"typeIdentifier":"t_modifier$__$","typeString":"modifier ()"}},"nodeType":"ModifierInvocation","src":"387:9:37"}],"name":"pay","nodeType":"FunctionDefinition","parameters":{"id":9597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":9596,"name":"_beneficiary","nodeType":"VariableDeclaration","scope":9620,"src":"350:28:37","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":9595,"name":"address","nodeType":"ElementaryTypeName","src":"350:15:37","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"value":null,"visibility":"internal"}],"src":"349:30:37"},"returnParameters":{"id":9600,"nodeType":"ParameterList","parameters":[],"src":"397:0:37"},"scope":9621,"src":"337:194:37","stateMutability":"nonpayable","superFunction":null,"visibility":"public"}],"scope":9622,"src":"90:444:37"}],"src":"0:535:37"},"compiler":{"name":"solc","version":"0.5.13+commit.5b0b510c.Emscripten.clang"},"networks":{},"schemaVersion":"3.0.20","updatedAt":"2020-02-10T15:44:06.159Z","devdoc":{"methods":{"isOwner()":{"details":"Returns true if the caller is the current owner."},"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. * NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}}},"userdoc":{"methods":{}}} \ No newline at end of file diff --git a/packages/lib/src/dependency/arc/src/migrate-dao.js b/packages/lib/src/dependency/arc/src/migrate-dao.js index 97009fd2..a40ebcb8 100644 --- a/packages/lib/src/dependency/arc/src/migrate-dao.js +++ b/packages/lib/src/dependency/arc/src/migrate-dao.js @@ -1,65 +1,52 @@ -const utils = require("./utils.js"); -const sanitize = require("./sanitize"); - -async function migrateDAO({ - arcVersion, - web3, - spinner, - confirm, - opts, - migrationParams, - logTx, - previousMigration, - customAbisLocation, - restart, - getState, - setState, - cleanState, - sendTx, - getArcVersionNumber, - optimizedAbis -}) { - let network = await web3.eth.net.getNetworkType(); - if (network === "main") { - network = "mainnet"; +const utils = require('./utils.js') +const sanitize = require('./sanitize') + +async function migrateDAO ({ arcVersion, web3, spinner, confirm, opts, migrationParams, logTx, previousMigration, customAbisLocation, restart, getState, setState, cleanState, sendTx, getArcVersionNumber, optimizedAbis }) { + let network = await web3.eth.net.getNetworkType() + if (network === 'main') { + network = 'mainnet' + } + + if (network === 'private') { + if (await web3.eth.net.getId() === 100) { + network = 'xdai' + } else if (await web3.eth.net.getId() === 77) { + network = 'sokol' + } } if (restart) { - cleanState(network); + cleanState(network) } - let contractsDir = "contracts"; + let contractsDir = 'contracts' if (optimizedAbis) { - contractsDir = "contracts-optimized"; + contractsDir = 'contracts-optimized' } - let deploymentState = getState(network); + let deploymentState = getState(network) // sanitize the parameters - sanitize(migrationParams); + sanitize(migrationParams) - let base = previousMigration.base; - if (!(await confirm("About to migrate new DAO. Continue?"))) { - return; + let base = previousMigration.base + if (!(await confirm('About to migrate new DAO. Continue?'))) { + return } if (migrationParams.arcVersion !== undefined) { - arcVersion = migrationParams.arcVersion; + arcVersion = migrationParams.arcVersion } if (!base[arcVersion]) { - const msg = `Couldn't find existing base migration ('migration.json' > 'base').`; - spinner.fail(msg); - throw new Error(msg); + const msg = `Couldn't find existing base migration ('migration.json' > 'base').` + spinner.fail(msg) + throw new Error(msg) } - spinner.start("Migrating DAO..."); - let contributionRewardParams, - genericSchemeParams, - schemeRegistrarParams, - globalConstraintRegistrarParams, - upgradeSchemeParams; - let tx; + spinner.start('Migrating DAO...') + let contributionRewardParams, genericSchemeParams, schemeRegistrarParams, globalConstraintRegistrarParams, upgradeSchemeParams + let tx const { UController, @@ -73,1300 +60,841 @@ async function migrateDAO({ GenesisProtocol, GlobalConstraintRegistrar, UpgradeScheme - } = base[arcVersion]; + } = base[arcVersion] const daoCreator = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/DaoCreator.json`).abi, DaoCreator, opts - ); - - const uController = - getArcVersionNumber(arcVersion) < 34 - ? new web3.eth.Contract( - utils.importAbi( - `./${contractsDir}/${arcVersion}/UController.json` - ).abi, - UController, - opts - ) - : null; + ) + + const uController = getArcVersionNumber(arcVersion) < 34 ? new web3.eth.Contract( + utils.importAbi(`./${contractsDir}/${arcVersion}/UController.json`).abi, + UController, + opts + ) : null const schemeRegistrar = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/SchemeRegistrar.json`).abi, SchemeRegistrar, opts - ); + ) const contributionReward = new web3.eth.Contract( - utils.importAbi( - `./${contractsDir}/${arcVersion}/ContributionReward.json` - ).abi, + utils.importAbi(`./${contractsDir}/${arcVersion}/ContributionReward.json`).abi, ContributionReward, opts - ); + ) const genericScheme = new web3.eth.Contract( - getArcVersionNumber(arcVersion) >= 24 && - getArcVersionNumber(arcVersion) < 34 - ? utils.importAbi(`./${contractsDir}/${arcVersion}/UGenericScheme.json`) - .abi - : utils.importAbi(`./${contractsDir}/${arcVersion}/GenericScheme.json`) - .abi, - getArcVersionNumber(arcVersion) >= 24 && - getArcVersionNumber(arcVersion) < 34 - ? UGenericScheme - : GenericScheme, + getArcVersionNumber(arcVersion) >= 24 && getArcVersionNumber(arcVersion) < 34 ? utils.importAbi(`./${contractsDir}/${arcVersion}/UGenericScheme.json`).abi : utils.importAbi(`./${contractsDir}/${arcVersion}/GenericScheme.json`).abi, + getArcVersionNumber(arcVersion) >= 24 && getArcVersionNumber(arcVersion) < 34 ? UGenericScheme : GenericScheme, opts - ); + ) const globalConstraintRegistrar = new web3.eth.Contract( - utils.importAbi( - `./${contractsDir}/${arcVersion}/GlobalConstraintRegistrar.json` - ).abi, + utils.importAbi(`./${contractsDir}/${arcVersion}/GlobalConstraintRegistrar.json`).abi, GlobalConstraintRegistrar, opts - ); + ) const upgradeScheme = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/UpgradeScheme.json`).abi, UpgradeScheme, opts - ); + ) const genesisProtocol = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/GenesisProtocol.json`).abi, GenesisProtocol, opts - ); - - const randomName = utils.generateRnadomName(); - - const [orgName, tokenName, tokenSymbol, founders] = [ - migrationParams.orgName !== undefined - ? migrationParams.orgName - : randomName, - migrationParams.tokenName !== undefined - ? migrationParams.tokenName - : randomName + " Token", - migrationParams.tokenSymbol !== undefined - ? migrationParams.tokenSymbol - : randomName[0] + randomName.split(" ")[1][0] + "T", + ) + + let randomName = utils.generateRnadomName() + + if (deploymentState.orgName !== undefined) { + randomName = deploymentState.orgName + } + + let [orgName, tokenName, tokenSymbol, founders] = [ + migrationParams.orgName !== undefined ? migrationParams.orgName : randomName, + migrationParams.tokenName !== undefined ? migrationParams.tokenName : randomName + ' Token', + migrationParams.tokenSymbol !== undefined ? migrationParams.tokenSymbol : randomName[0] + randomName.split(' ')[1][0] + 'T', migrationParams.founders - ]; + ] + + deploymentState.orgName = orgName - let avatar; - let daoToken; - let reputation; - let controller; + let avatar + let daoToken + let reputation + let controller if (deploymentState.Schemes === undefined) { - deploymentState.Schemes = []; - deploymentState.StandAloneContracts = []; + deploymentState.Schemes = [] + deploymentState.StandAloneContracts = [] } if (migrationParams.useDaoCreator === true) { const [founderAddresses, tokenDist, repDist] = [ founders.map(({ address }) => address), - founders.map(({ tokens }) => - web3.utils.toWei(tokens !== undefined ? tokens.toString() : "0") - ), - founders.map(({ reputation }) => - web3.utils.toWei(reputation !== undefined ? reputation.toString() : "0") - ) - ]; + founders.map(({ tokens }) => web3.utils.toWei(tokens !== undefined ? tokens.toString() : '0')), + founders.map(({ reputation }) => web3.utils.toWei(reputation !== undefined ? reputation.toString() : '0')) + ] - const initFoundersBatchSize = 20; - const foundersBatchSize = 100; + const initFoundersBatchSize = 20 + const foundersBatchSize = 100 if (deploymentState.Avatar === undefined) { - let foundersInitCount = - founderAddresses.length < initFoundersBatchSize - ? founderAddresses.length - : initFoundersBatchSize; - const forgeOrg = - getArcVersionNumber(arcVersion) < 34 - ? daoCreator.methods.forgeOrg( - orgName, - tokenName, - tokenSymbol, - founderAddresses.slice(0, foundersInitCount), - tokenDist.slice(0, foundersInitCount), - repDist.slice(0, foundersInitCount), - migrationParams.useUController === true - ? UController - : "0x0000000000000000000000000000000000000000", - "0" - ) - : daoCreator.methods.forgeOrg( - orgName, - tokenName, - tokenSymbol, - founderAddresses.slice(0, foundersInitCount), - tokenDist.slice(0, foundersInitCount), - repDist.slice(0, foundersInitCount), - "0" - ); - - tx = (await sendTx(forgeOrg, "Creating a new organization...")).receipt; - await logTx(tx, "Created new organization."); + let foundersInitCount = founderAddresses.length < initFoundersBatchSize ? founderAddresses.length : initFoundersBatchSize + const forgeOrg = getArcVersionNumber(arcVersion) < 34 ? daoCreator.methods.forgeOrg( + orgName, + tokenName, + tokenSymbol, + founderAddresses.slice(0, foundersInitCount), + tokenDist.slice(0, foundersInitCount), + repDist.slice(0, foundersInitCount), + migrationParams.useUController === true ? UController : '0x0000000000000000000000000000000000000000', + '0' + ) : daoCreator.methods.forgeOrg( + orgName, + tokenName, + tokenSymbol, + founderAddresses.slice(0, foundersInitCount), + tokenDist.slice(0, foundersInitCount), + repDist.slice(0, foundersInitCount), + '0' + ) + + tx = (await sendTx(forgeOrg, 'Creating a new organization...')).receipt + await logTx(tx, 'Created new organization.') } if (deploymentState.Avatar === undefined) { - deploymentState.Avatar = tx.events.NewOrg.returnValues._avatar; - setState(deploymentState, network); + deploymentState.Avatar = tx.events.NewOrg.returnValues._avatar + setState(deploymentState, network) } - deploymentState.foundersToAddCount = - deploymentState.foundersToAddCount === undefined - ? founderAddresses.length - initFoundersBatchSize - : deploymentState.foundersToAddCount; - deploymentState.foundersAdditionCounter = - deploymentState.foundersAdditionCounter === undefined - ? 0 - : deploymentState.foundersAdditionCounter; + deploymentState.foundersToAddCount = deploymentState.foundersToAddCount === undefined ? founderAddresses.length - initFoundersBatchSize : deploymentState.foundersToAddCount + deploymentState.foundersAdditionCounter = deploymentState.foundersAdditionCounter === undefined ? 0 : deploymentState.foundersAdditionCounter while (deploymentState.foundersToAddCount > 0) { - let currentBatchCount = - deploymentState.foundersToAddCount < foundersBatchSize - ? deploymentState.foundersToAddCount - : foundersBatchSize; - tx = ( - await sendTx( - daoCreator.methods.addFounders( - deploymentState.Avatar, - founderAddresses.slice( - deploymentState.foundersAdditionCounter * foundersBatchSize + - initFoundersBatchSize, - deploymentState.foundersAdditionCounter * foundersBatchSize + - currentBatchCount + - initFoundersBatchSize - ), - tokenDist.slice( - deploymentState.foundersAdditionCounter * foundersBatchSize + - initFoundersBatchSize, - deploymentState.foundersAdditionCounter * foundersBatchSize + - currentBatchCount + - initFoundersBatchSize - ), - repDist.slice( - deploymentState.foundersAdditionCounter * foundersBatchSize + - initFoundersBatchSize, - deploymentState.foundersAdditionCounter * foundersBatchSize + - currentBatchCount + - initFoundersBatchSize - ) - ), - "Adding founders..." - ) - ).receipt; - await logTx(tx, "Finished adding founders."); - - deploymentState.foundersToAddCount -= foundersBatchSize; - deploymentState.foundersAdditionCounter++; - setState(deploymentState, network); + let currentBatchCount = deploymentState.foundersToAddCount < foundersBatchSize ? deploymentState.foundersToAddCount : foundersBatchSize + tx = (await sendTx(daoCreator.methods.addFounders( + deploymentState.Avatar, + founderAddresses.slice(deploymentState.foundersAdditionCounter * foundersBatchSize + initFoundersBatchSize, + deploymentState.foundersAdditionCounter * foundersBatchSize + currentBatchCount + initFoundersBatchSize), + tokenDist.slice(deploymentState.foundersAdditionCounter * foundersBatchSize + initFoundersBatchSize, + deploymentState.foundersAdditionCounter * foundersBatchSize + currentBatchCount + initFoundersBatchSize), + repDist.slice(deploymentState.foundersAdditionCounter * foundersBatchSize + initFoundersBatchSize, + deploymentState.foundersAdditionCounter * foundersBatchSize + currentBatchCount + initFoundersBatchSize) + ), 'Adding founders...')).receipt + await logTx(tx, 'Finished adding founders.') + + deploymentState.foundersToAddCount -= foundersBatchSize + deploymentState.foundersAdditionCounter++ + setState(deploymentState, network) } avatar = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/Avatar.json`).abi, deploymentState.Avatar, opts - ); + ) daoToken = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/DAOToken.json`).abi, await avatar.methods.nativeToken().call(), opts - ); + ) reputation = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/Reputation.json`).abi, await avatar.methods.nativeReputation().call(), opts - ); - if ( - migrationParams.useUController && - getArcVersionNumber(arcVersion) < 34 - ) { - deploymentState.Controller = UController; - controller = uController; + ) + if (migrationParams.useUController && getArcVersionNumber(arcVersion) < 34) { + deploymentState.Controller = UController + controller = uController } else { - spinner.start("Deploying Controller"); + spinner.start('Deploying Controller') controller = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/Controller.json`).abi, await avatar.methods.owner().call(), opts - ); - deploymentState.Controller = controller.options.address; + ) + deploymentState.Controller = controller.options.address } } else { if (deploymentState.DAOToken === undefined) { - let { receipt, result } = await sendTx( - new web3.eth.Contract( - utils.importAbi(`./${contractsDir}/${arcVersion}/DAOToken.json`).abi, - undefined, - opts - ).deploy({ - data: utils.importAbi(`./${contractsDir}/${arcVersion}/DAOToken.json`) - .bytecode, - arguments: [tokenName, tokenSymbol, 0] - }), - "Deploying DAO Token" - ); - daoToken = result; - await logTx(receipt, `${daoToken.options.address} => DAOToken`); - - deploymentState.DAOToken = daoToken.options.address; - setState(deploymentState, network); + let { receipt, result } = await sendTx(new web3.eth.Contract( + utils.importAbi(`./${contractsDir}/${arcVersion}/DAOToken.json`).abi, + undefined, + opts + ).deploy({ + data: utils.importAbi(`./${contractsDir}/${arcVersion}/DAOToken.json`).bytecode, + arguments: [tokenName, tokenSymbol, 0] + }), 'Deploying DAO Token') + daoToken = result + await logTx(receipt, `${daoToken.options.address} => DAOToken`) + + deploymentState.DAOToken = daoToken.options.address + setState(deploymentState, network) } daoToken = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/DAOToken.json`).abi, deploymentState.DAOToken, opts - ); + ) if (deploymentState.Reputation === undefined) { - let { receipt, result } = await sendTx( - new web3.eth.Contract( - utils.importAbi( - `./${contractsDir}/${arcVersion}/Reputation.json` - ).abi, - undefined, - opts - ).deploy({ - data: utils.importAbi( - `./${contractsDir}/${arcVersion}/Reputation.json` - ).bytecode - }), - "Deploying Reputation" - ); - reputation = result; - await logTx(receipt, `${reputation.options.address} => Reputation`); - - deploymentState.Reputation = reputation.options.address; - setState(deploymentState, network); + let { receipt, result } = await sendTx(new web3.eth.Contract( + utils.importAbi(`./${contractsDir}/${arcVersion}/Reputation.json`).abi, + undefined, + opts + ).deploy({ + data: utils.importAbi(`./${contractsDir}/${arcVersion}/Reputation.json`).bytecode + }), 'Deploying Reputation') + reputation = result + await logTx(receipt, `${reputation.options.address} => Reputation`) + + deploymentState.Reputation = reputation.options.address + setState(deploymentState, network) } reputation = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/Reputation.json`).abi, deploymentState.Reputation, opts - ); + ) if (deploymentState.Avatar === undefined) { - let { receipt, result } = await sendTx( - new web3.eth.Contract( - utils.importAbi(`./${contractsDir}/${arcVersion}/Avatar.json`).abi, - undefined, - opts - ).deploy({ - data: utils.importAbi(`./${contractsDir}/${arcVersion}/Avatar.json`) - .bytecode, - arguments: [ - orgName, - daoToken.options.address, - reputation.options.address - ] - }), - "Deploying Avatar." - ); - avatar = result; - await logTx(receipt, `${avatar.options.address} => Avatar`); - - deploymentState.Avatar = avatar.options.address; - setState(deploymentState, network); + let { receipt, result } = await sendTx(new web3.eth.Contract( + utils.importAbi(`./${contractsDir}/${arcVersion}/Avatar.json`).abi, + undefined, + opts + ).deploy({ + data: utils.importAbi(`./${contractsDir}/${arcVersion}/Avatar.json`).bytecode, + arguments: [orgName, daoToken.options.address, reputation.options.address] + }), 'Deploying Avatar.') + avatar = result + await logTx(receipt, `${avatar.options.address} => Avatar`) + + deploymentState.Avatar = avatar.options.address + setState(deploymentState, network) } avatar = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/Avatar.json`).abi, deploymentState.Avatar, opts - ); + ) if (deploymentState.foundersReputationMintedCounter === undefined) { - deploymentState.foundersReputationMintedCounter = 0; + deploymentState.foundersReputationMintedCounter = 0 } - for ( - deploymentState.foundersReputationMintedCounter; + for (deploymentState.foundersReputationMintedCounter; deploymentState.foundersReputationMintedCounter < founders.length; - deploymentState.foundersReputationMintedCounter++ - ) { - setState(deploymentState, network); + deploymentState.foundersReputationMintedCounter++) { + setState(deploymentState, network) - let founder = founders[deploymentState.foundersReputationMintedCounter]; + let founder = founders[deploymentState.foundersReputationMintedCounter] if (founder.reputation > 0) { - tx = ( - await sendTx( - reputation.methods.mint( - founder.address, - web3.utils.toWei(`${founder.reputation}`) - ) - ) - ).receipt; - await logTx( - tx, - `Minted ${founder.reputation} reputation to ${founder.address}`, - "Minting founders reputation" - ); + tx = (await sendTx(reputation.methods.mint(founder.address, web3.utils.toWei(`${founder.reputation}`)))).receipt + await logTx(tx, `Minted ${founder.reputation} reputation to ${founder.address}`, 'Minting founders reputation') } } - deploymentState.foundersReputationMintedCounter++; - setState(deploymentState, network); + deploymentState.foundersReputationMintedCounter++ + setState(deploymentState, network) if (deploymentState.foundersTokenMintedCounter === undefined) { - deploymentState.foundersTokenMintedCounter = 0; + deploymentState.foundersTokenMintedCounter = 0 } - for ( - deploymentState.foundersTokenMintedCounter; + for (deploymentState.foundersTokenMintedCounter; deploymentState.foundersTokenMintedCounter < founders.length; - deploymentState.foundersTokenMintedCounter++ - ) { - setState(deploymentState, network); + deploymentState.foundersTokenMintedCounter++) { + setState(deploymentState, network) - let founder = founders[deploymentState.foundersTokenMintedCounter]; + let founder = founders[deploymentState.foundersTokenMintedCounter] if (founder.tokens > 0) { - tx = ( - await sendTx( - daoToken.methods.mint( - founder.address, - web3.utils.toWei(`${founder.tokens}`) - ), - "Minting founders tokens" - ) - ).receipt; - await logTx( - tx, - `Minted ${founder.tokens} tokens to ${founder.address}` - ); + tx = (await sendTx(daoToken.methods.mint(founder.address, web3.utils.toWei(`${founder.tokens}`)), 'Minting founders tokens')).receipt + await logTx(tx, `Minted ${founder.tokens} tokens to ${founder.address}`) } } - deploymentState.foundersTokenMintedCounter++; - setState(deploymentState, network); - - if ( - migrationParams.useUController && - getArcVersionNumber(arcVersion) < 34 - ) { - deploymentState.Controller = UController; - controller = uController; + deploymentState.foundersTokenMintedCounter++ + setState(deploymentState, network) + + if (migrationParams.useUController && getArcVersionNumber(arcVersion) < 34) { + deploymentState.Controller = UController + controller = uController } else { if (deploymentState.Controller === undefined) { - let { receipt, result } = await sendTx( - new web3.eth.Contract( - utils.importAbi( - `./${contractsDir}/${arcVersion}/Controller.json` - ).abi, - undefined, - opts - ).deploy({ - data: utils.importAbi( - `./${contractsDir}/${arcVersion}/Controller.json` - ).bytecode, - arguments: [avatar.options.address] - }), - "Deploying Controller" - ); - controller = result; - await logTx(receipt, `${controller.options.address} => Controller`); - - deploymentState.Controller = controller.options.address; - setState(deploymentState, network); + let { receipt, result } = await sendTx(new web3.eth.Contract( + utils.importAbi(`./${contractsDir}/${arcVersion}/Controller.json`).abi, + undefined, + opts + ).deploy({ + data: utils.importAbi(`./${contractsDir}/${arcVersion}/Controller.json`).bytecode, + arguments: [avatar.options.address] + }), 'Deploying Controller') + controller = result + await logTx(receipt, `${controller.options.address} => Controller`) + + deploymentState.Controller = controller.options.address + setState(deploymentState, network) } controller = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/Controller.json`).abi, deploymentState.Controller, opts - ); + ) } - if ( - migrationParams.noTrack !== true && - getArcVersionNumber(arcVersion) >= 29 && - deploymentState.trackedDAO !== true - ) { + if (migrationParams.noTrack !== true && getArcVersionNumber(arcVersion) >= 29 && deploymentState.trackedDAO !== true) { const daoTracker = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/DAOTracker.json`).abi, DAOTracker, opts - ); - tx = ( - await sendTx( - getArcVersionNumber(arcVersion) >= 32 - ? await daoTracker.methods.track( - avatar.options.address, - deploymentState.Controller, - arcVersion - ) - : await daoTracker.methods.track( - avatar.options.address, - deploymentState.Controller - ), - "Registering DAO in DAOTracker" - ) - ).receipt; - await logTx(tx, "Finished Registering DAO in DAOTracker"); - deploymentState.trackedDAO = true; - setState(deploymentState, network); + ) + tx = (await sendTx(getArcVersionNumber(arcVersion) >= 32 + ? await daoTracker.methods.track(avatar.options.address, deploymentState.Controller, arcVersion) + : await daoTracker.methods.track(avatar.options.address, deploymentState.Controller), 'Registering DAO in DAOTracker')).receipt + await logTx(tx, 'Finished Registering DAO in DAOTracker') + deploymentState.trackedDAO = true + setState(deploymentState, network) } if (deploymentState.transferredAvatarOwnership !== true) { - tx = ( - await sendTx( - avatar.methods.transferOwnership(deploymentState.Controller), - "Transfer Avatar to Controller ownership" - ) - ).receipt; - await logTx(tx, "Finished transferring Avatar to Controller ownership"); - deploymentState.transferredAvatarOwnership = true; - setState(deploymentState, network); + tx = (await sendTx(avatar.methods.transferOwnership(deploymentState.Controller), 'Transfer Avatar to Controller ownership')).receipt + await logTx(tx, 'Finished transferring Avatar to Controller ownership') + deploymentState.transferredAvatarOwnership = true + setState(deploymentState, network) } if (deploymentState.transferredReputationOwnership !== true) { - tx = ( - await sendTx( - reputation.methods.transferOwnership(deploymentState.Controller), - "Transfer Reputation to Controller ownership" - ) - ).receipt; - await logTx( - tx, - "Finished transferring Reputation to Controller ownership" - ); - deploymentState.transferredReputationOwnership = true; - setState(deploymentState, network); + tx = (await sendTx(reputation.methods.transferOwnership(deploymentState.Controller), 'Transfer Reputation to Controller ownership')).receipt + await logTx(tx, 'Finished transferring Reputation to Controller ownership') + deploymentState.transferredReputationOwnership = true + setState(deploymentState, network) } if (deploymentState.transferredDAOTokenOwnership !== true) { - tx = ( - await sendTx( - daoToken.methods.transferOwnership(deploymentState.Controller), - "Transfer DAOToken to Controller ownership" - ) - ).receipt; - await logTx(tx, "Finished transferring DAOToken to Controller ownership"); - deploymentState.transferredDAOTokenOwnership = true; - setState(deploymentState, network); + tx = (await sendTx(daoToken.methods.transferOwnership(deploymentState.Controller), 'Transfer DAOToken to Controller ownership')).receipt + await logTx(tx, 'Finished transferring DAOToken to Controller ownership') + deploymentState.transferredDAOTokenOwnership = true + setState(deploymentState, network) } - if ( - migrationParams.useUController && - getArcVersionNumber(arcVersion) < 34 && - deploymentState.registeredAvatarToUController !== true - ) { - tx = ( - await sendTx( - controller.methods.newOrganization(avatar.options.address), - "Register Avatar to UController" - ) - ).receipt; - await logTx(tx, "Finished registerring Avatar"); - deploymentState.registeredAvatarToUController = true; - setState(deploymentState, network); + if (migrationParams.useUController && getArcVersionNumber(arcVersion) < 34 && deploymentState.registeredAvatarToUController !== true) { + tx = (await sendTx(controller.methods.newOrganization(avatar.options.address), 'Register Avatar to UController')).receipt + await logTx(tx, 'Finished registerring Avatar') + deploymentState.registeredAvatarToUController = true + setState(deploymentState, network) } } - if (network === "private") { + if (network === 'private') { const daoRegistry = new web3.eth.Contract( utils.importAbi(`./${contractsDir}/${arcVersion}/DAORegistry.json`).abi, DAORegistry, opts - ); + ) if (deploymentState.proposedRegisteringDAO !== true) { - tx = ( - await sendTx( - daoRegistry.methods.propose(avatar.options.address), - "Proposing DAO in DAORegistry" - ) - ).receipt; - deploymentState.proposedRegisteringDAO = true; - setState(deploymentState, network); - await logTx(tx, "Finished Proposing DAO in DAORegistry"); + tx = (await sendTx(daoRegistry.methods.propose(avatar.options.address), 'Proposing DAO in DAORegistry')).receipt + deploymentState.proposedRegisteringDAO = true + setState(deploymentState, network) + await logTx(tx, 'Finished Proposing DAO in DAORegistry') } if (deploymentState.registeredRegisteringDAO !== true) { - let DAOname = await avatar.methods.orgName().call(); - tx = ( - await sendTx( - daoRegistry.methods.register(avatar.options.address, DAOname), - "Registering DAO in DAORegistry" - ) - ).receipt; - deploymentState.registeredRegisteringDAO = true; - setState(deploymentState, network); - await logTx(tx, "Finished Registering DAO in DAORegistry"); + let DAOname = await avatar.methods.orgName().call() + tx = (await sendTx(daoRegistry.methods.register(avatar.options.address, DAOname), 'Registering DAO in DAORegistry')).receipt + deploymentState.registeredRegisteringDAO = true + setState(deploymentState, network) + await logTx(tx, 'Finished Registering DAO in DAORegistry') } } if (deploymentState.schemeNames === undefined) { - deploymentState.schemeNames = []; - deploymentState.schemes = []; - deploymentState.params = []; - deploymentState.permissions = []; - deploymentState.votingMachinesParams = []; + deploymentState.schemeNames = [] + deploymentState.schemes = [] + deploymentState.params = [] + deploymentState.permissions = [] + deploymentState.votingMachinesParams = [] } - if ( - migrationParams.VotingMachinesParams !== undefined && - migrationParams.VotingMachinesParams.length > 0 - ) { + if (migrationParams.VotingMachinesParams !== undefined && migrationParams.VotingMachinesParams.length > 0) { if (deploymentState.registeredGenesisProtocolParamsCount === undefined) { - deploymentState.registeredGenesisProtocolParamsCount = 0; - } - for ( - deploymentState.registeredGenesisProtocolParamsCount; - deploymentState.registeredGenesisProtocolParamsCount < - migrationParams.VotingMachinesParams.length; - deploymentState.registeredGenesisProtocolParamsCount++ - ) { - setState(deploymentState, network); - if ( - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].votingParamsHash !== undefined - ) { - deploymentState.votingMachinesParams.push( - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].votingParamsHash - ); - setState(deploymentState, network); - continue; + deploymentState.registeredGenesisProtocolParamsCount = 0 + } + for (deploymentState.registeredGenesisProtocolParamsCount; + deploymentState.registeredGenesisProtocolParamsCount < migrationParams.VotingMachinesParams.length; + deploymentState.registeredGenesisProtocolParamsCount++) { + setState(deploymentState, network) + if (migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].votingParamsHash !== undefined) { + deploymentState.votingMachinesParams.push(migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].votingParamsHash) + setState(deploymentState, network) + continue } let parameters = [ [ - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].queuedVoteRequiredPercentage.toString(), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].queuedVotePeriodLimit.toString(), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].boostedVotePeriodLimit.toString(), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].preBoostedVotePeriodLimit.toString(), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].thresholdConst.toString(), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].quietEndingPeriod.toString(), - web3.utils.toWei( - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].proposingRepReward.toString() - ), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].votersReputationLossRatio.toString(), - web3.utils.toWei( - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].minimumDaoBounty.toString() - ), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].daoBountyConst.toString(), - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].activationTime.toString() + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].queuedVoteRequiredPercentage.toString(), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].queuedVotePeriodLimit.toString(), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].boostedVotePeriodLimit.toString(), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].preBoostedVotePeriodLimit.toString(), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].thresholdConst.toString(), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].quietEndingPeriod.toString(), + web3.utils.toWei(migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].proposingRepReward.toString()), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].votersReputationLossRatio.toString(), + web3.utils.toWei(migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].minimumDaoBounty.toString()), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].daoBountyConst.toString(), + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].activationTime.toString() ], - migrationParams.VotingMachinesParams[ - deploymentState.registeredGenesisProtocolParamsCount - ].voteOnBehalf - ]; - const genesisProtocolSetParams = genesisProtocol.methods.setParameters( - ...parameters - ); - - let votingMachinesParams = await genesisProtocolSetParams.call(); - const votingMachineCheckParams = await genesisProtocol.methods - .parameters(votingMachinesParams) - .call(); - if (votingMachineCheckParams.minimumDaoBounty === "0") { - tx = ( - await sendTx( - genesisProtocolSetParams, - "Setting GenesisProtocol parameters..." - ) - ).receipt; - await logTx( - tx, - "GenesisProtocol parameters set. | Params Hash: " + - votingMachinesParams + - "\nParameters:\n" + - parameters.toString().replace(/,/g, ",\n") - ); + migrationParams.VotingMachinesParams[deploymentState.registeredGenesisProtocolParamsCount].voteOnBehalf + ] + const genesisProtocolSetParams = genesisProtocol.methods.setParameters(...parameters) + + let votingMachinesParams = await genesisProtocolSetParams.call() + const votingMachineCheckParams = await genesisProtocol.methods.parameters(votingMachinesParams).call() + if (votingMachineCheckParams.minimumDaoBounty === '0') { + tx = (await sendTx(genesisProtocolSetParams, 'Setting GenesisProtocol parameters...')).receipt + await logTx(tx, + 'GenesisProtocol parameters set. | Params Hash: ' + + votingMachinesParams + '\nParameters:\n' + + parameters.toString().replace(/,/g, ',\n') + ) } - deploymentState.votingMachinesParams.push(votingMachinesParams); - setState(deploymentState, network); + deploymentState.votingMachinesParams.push(votingMachinesParams) + setState(deploymentState, network) } } - deploymentState.registeredGenesisProtocolParamsCount++; - setState(deploymentState, network); + deploymentState.registeredGenesisProtocolParamsCount++ + setState(deploymentState, network) if (migrationParams.schemes.SchemeRegistrar) { if (deploymentState.SchemeRegistrarParamsCount === undefined) { - deploymentState.SchemeRegistrarParamsCount = 0; + deploymentState.SchemeRegistrarParamsCount = 0 } - for ( - deploymentState.SchemeRegistrarParamsCount; - deploymentState.SchemeRegistrarParamsCount < - migrationParams.SchemeRegistrar.length; - deploymentState.SchemeRegistrarParamsCount++ - ) { - setState(deploymentState, network); + for (deploymentState.SchemeRegistrarParamsCount; + deploymentState.SchemeRegistrarParamsCount < migrationParams.SchemeRegistrar.length; + deploymentState.SchemeRegistrarParamsCount++) { + setState(deploymentState, network) let parameters = [ - migrationParams.SchemeRegistrar[ - deploymentState.SchemeRegistrarParamsCount - ].voteRegisterParams === undefined + migrationParams.SchemeRegistrar[deploymentState.SchemeRegistrarParamsCount].voteRegisterParams === undefined ? deploymentState.votingMachinesParams[0] - : deploymentState.votingMachinesParams[ - migrationParams.SchemeRegistrar[ - deploymentState.SchemeRegistrarParamsCount - ].voteRegisterParams - ], - migrationParams.SchemeRegistrar[ - deploymentState.SchemeRegistrarParamsCount - ].voteRemoveParams === undefined + : deploymentState.votingMachinesParams[migrationParams.SchemeRegistrar[deploymentState.SchemeRegistrarParamsCount].voteRegisterParams], + migrationParams.SchemeRegistrar[deploymentState.SchemeRegistrarParamsCount].voteRemoveParams === undefined ? deploymentState.votingMachinesParams[0] - : deploymentState.votingMachinesParams[ - migrationParams.SchemeRegistrar[ - deploymentState.SchemeRegistrarParamsCount - ].voteRemoveParams - ], - migrationParams.SchemeRegistrar[ - deploymentState.SchemeRegistrarParamsCount - ].votingMachine === undefined + : deploymentState.votingMachinesParams[migrationParams.SchemeRegistrar[deploymentState.SchemeRegistrarParamsCount].voteRemoveParams], + migrationParams.SchemeRegistrar[deploymentState.SchemeRegistrarParamsCount].votingMachine === undefined ? GenesisProtocol - : migrationParams.SchemeRegistrar[ - deploymentState.SchemeRegistrarParamsCount - ].votingMachine - ]; - const schemeRegistrarSetParams = schemeRegistrar.methods.setParameters( - ...parameters - ); - schemeRegistrarParams = await schemeRegistrarSetParams.call(); - - const schemeRegistrarCheckParams = await schemeRegistrar.methods - .parameters(schemeRegistrarParams) - .call(); - if ( - schemeRegistrarCheckParams.intVote === - "0x0000000000000000000000000000000000000000" - ) { - tx = ( - await sendTx( - schemeRegistrarSetParams, - "Setting Scheme Registrar parameters..." - ) - ).receipt; - await logTx( - tx, - "Scheme Registrar parameters set. | Params Hash: " + - schemeRegistrarParams + - "\nParameters:\n" + - parameters.toString().replace(/,/g, ",\n") - ); + : migrationParams.SchemeRegistrar[deploymentState.SchemeRegistrarParamsCount].votingMachine + ] + const schemeRegistrarSetParams = schemeRegistrar.methods.setParameters(...parameters) + schemeRegistrarParams = await schemeRegistrarSetParams.call() + + const schemeRegistrarCheckParams = await schemeRegistrar.methods.parameters(schemeRegistrarParams).call() + if (schemeRegistrarCheckParams.intVote === '0x0000000000000000000000000000000000000000') { + tx = (await sendTx(schemeRegistrarSetParams, 'Setting Scheme Registrar parameters...')).receipt + await logTx(tx, + 'Scheme Registrar parameters set. | Params Hash: ' + + schemeRegistrarParams + '\nParameters:\n' + + parameters.toString().replace(/,/g, ',\n') + ) } - deploymentState.schemeNames.push("Scheme Registrar"); - deploymentState.schemes.push(SchemeRegistrar); - deploymentState.params.push(schemeRegistrarParams); - deploymentState.permissions.push("0x0000001F"); - setState(deploymentState, network); + deploymentState.schemeNames.push('Scheme Registrar') + deploymentState.schemes.push(SchemeRegistrar) + deploymentState.params.push(schemeRegistrarParams) + deploymentState.permissions.push('0x0000001F') + setState(deploymentState, network) } - deploymentState.SchemeRegistrarParamsCount++; - setState(deploymentState, network); + deploymentState.SchemeRegistrarParamsCount++ + setState(deploymentState, network) } if (migrationParams.schemes.ContributionReward) { if (deploymentState.ContributionRewardParamsCount === undefined) { - deploymentState.ContributionRewardParamsCount = 0; - } - for ( - deploymentState.ContributionRewardParamsCount; - deploymentState.ContributionRewardParamsCount < - migrationParams.ContributionReward.length; - deploymentState.ContributionRewardParamsCount++ - ) { - setState(deploymentState, network); - let parameters = [ - migrationParams.ContributionReward[ - deploymentState.ContributionRewardParamsCount - ].voteParams === undefined - ? deploymentState.votingMachinesParams[0] - : deploymentState.votingMachinesParams[ - migrationParams.ContributionReward[ - deploymentState.ContributionRewardParamsCount - ].voteParams - ], - migrationParams.ContributionReward[ - deploymentState.ContributionRewardParamsCount - ].votingMachine === undefined - ? GenesisProtocol - : migrationParams.ContributionReward[ - deploymentState.ContributionRewardParamsCount - ].votingMachine - ]; - const contributionRewardSetParams = contributionReward.methods.setParameters( - ...parameters - ); - contributionRewardParams = await contributionRewardSetParams.call(); - - const contributionRewardCheckParams = await contributionReward.methods - .parameters(contributionRewardParams) - .call(); - if ( - contributionRewardCheckParams.intVote === - "0x0000000000000000000000000000000000000000" - ) { - tx = ( - await sendTx( - contributionRewardSetParams, - "Setting Contribution Reward parameters..." - ) - ).receipt; - await logTx( - tx, - "Contribution Reward parameters set. | Params Hash: " + - contributionRewardParams + - "\nParameters:" + - parameters.toString().replace(/,/g, ",\n") - ); + deploymentState.ContributionRewardParamsCount = 0 + } + for (deploymentState.ContributionRewardParamsCount; + deploymentState.ContributionRewardParamsCount < migrationParams.ContributionReward.length; + deploymentState.ContributionRewardParamsCount++) { + setState(deploymentState, network) + let parameters = [migrationParams.ContributionReward[deploymentState.ContributionRewardParamsCount].voteParams === undefined + ? deploymentState.votingMachinesParams[0] + : deploymentState.votingMachinesParams[migrationParams.ContributionReward[deploymentState.ContributionRewardParamsCount].voteParams], + migrationParams.ContributionReward[deploymentState.ContributionRewardParamsCount].votingMachine === undefined + ? GenesisProtocol + : migrationParams.ContributionReward[deploymentState.ContributionRewardParamsCount].votingMachine] + const contributionRewardSetParams = contributionReward.methods.setParameters(...parameters) + contributionRewardParams = await contributionRewardSetParams.call() + + const contributionRewardCheckParams = await contributionReward.methods.parameters(contributionRewardParams).call() + if (contributionRewardCheckParams.intVote === '0x0000000000000000000000000000000000000000') { + tx = (await sendTx(contributionRewardSetParams, 'Setting Contribution Reward parameters...')).receipt + await logTx(tx, + 'Contribution Reward parameters set. | Params Hash: ' + + contributionRewardParams + '\nParameters:' + + parameters.toString().replace(/,/g, ',\n') + ) } - deploymentState.schemeNames.push("Contribution Reward"); - deploymentState.schemes.push(ContributionReward); - deploymentState.params.push(contributionRewardParams); - deploymentState.permissions.push("0x00000000"); - setState(deploymentState, network); + deploymentState.schemeNames.push('Contribution Reward') + deploymentState.schemes.push(ContributionReward) + deploymentState.params.push(contributionRewardParams) + deploymentState.permissions.push('0x00000000') + setState(deploymentState, network) } - deploymentState.ContributionRewardParamsCount++; - setState(deploymentState, network); + deploymentState.ContributionRewardParamsCount++ + setState(deploymentState, network) } - if ( - migrationParams.schemes.UGenericScheme && - getArcVersionNumber(arcVersion) < 34 - ) { + if (migrationParams.schemes.UGenericScheme && getArcVersionNumber(arcVersion) < 34) { if (deploymentState.UGenericSchemeParamsCount === undefined) { - deploymentState.UGenericSchemeParamsCount = 0; + deploymentState.UGenericSchemeParamsCount = 0 } - for ( - deploymentState.UGenericSchemeParamsCount; - deploymentState.UGenericSchemeParamsCount < - migrationParams.UGenericScheme.length; - deploymentState.UGenericSchemeParamsCount++ - ) { - setState(deploymentState, network); + for (deploymentState.UGenericSchemeParamsCount; + deploymentState.UGenericSchemeParamsCount < migrationParams.UGenericScheme.length; + deploymentState.UGenericSchemeParamsCount++) { + setState(deploymentState, network) let parameters = [ - migrationParams.UGenericScheme[ - deploymentState.UGenericSchemeParamsCount - ].voteParams === undefined - ? deploymentState.votingMachinesParams[0] - : deploymentState.votingMachinesParams[ - migrationParams.UGenericScheme[ - deploymentState.UGenericSchemeParamsCount - ].voteParams - ], - migrationParams.UGenericScheme[ - deploymentState.UGenericSchemeParamsCount - ].votingMachine === undefined - ? GenesisProtocol - : migrationParams.UGenericScheme[ - deploymentState.UGenericSchemeParamsCount - ].votingMachine, - migrationParams.UGenericScheme[ - deploymentState.UGenericSchemeParamsCount - ].targetContract - ]; - const genericSchemeSetParams = genericScheme.methods.setParameters( - ...parameters - ); - genericSchemeParams = await genericSchemeSetParams.call(); - - const genericSchemeCheckParams = await genericScheme.methods - .parameters(genericSchemeParams) - .call(); - if ( - genericSchemeCheckParams.intVote === - "0x0000000000000000000000000000000000000000" - ) { - tx = ( - await sendTx( - genericSchemeSetParams, - "Setting Generic Scheme parameters..." - ) - ).receipt; - await logTx( - tx, - "Generic Scheme parameters set. | Params Hash: " + - genericSchemeParams + - "\nParameters:\n" + - parameters.toString().replace(/,/g, ",\n") - ); + migrationParams.UGenericScheme[deploymentState.UGenericSchemeParamsCount].voteParams === undefined ? deploymentState.votingMachinesParams[0] : deploymentState.votingMachinesParams[migrationParams.UGenericScheme[deploymentState.UGenericSchemeParamsCount].voteParams], + migrationParams.UGenericScheme[deploymentState.UGenericSchemeParamsCount].votingMachine === undefined ? GenesisProtocol : migrationParams.UGenericScheme[deploymentState.UGenericSchemeParamsCount].votingMachine, + migrationParams.UGenericScheme[deploymentState.UGenericSchemeParamsCount].targetContract + ] + const genericSchemeSetParams = genericScheme.methods.setParameters(...parameters) + genericSchemeParams = await genericSchemeSetParams.call() + + const genericSchemeCheckParams = await genericScheme.methods.parameters(genericSchemeParams).call() + if (genericSchemeCheckParams.intVote === '0x0000000000000000000000000000000000000000') { + tx = (await sendTx(genericSchemeSetParams, 'Setting Generic Scheme parameters...')).receipt + await logTx(tx, + 'Generic Scheme parameters set. | Params Hash: ' + + genericSchemeParams + '\nParameters:\n' + + parameters.toString().replace(/,/g, ',\n') + ) } - deploymentState.schemeNames.push("Generic Scheme"); - deploymentState.schemes.push( - getArcVersionNumber(arcVersion) >= 24 ? UGenericScheme : GenericScheme - ); - deploymentState.params.push(genericSchemeParams); - deploymentState.permissions.push("0x00000010"); - setState(deploymentState, network); + deploymentState.schemeNames.push('Generic Scheme') + deploymentState.schemes.push(getArcVersionNumber(arcVersion) >= 24 ? UGenericScheme : GenericScheme) + deploymentState.params.push(genericSchemeParams) + deploymentState.permissions.push('0x00000010') + setState(deploymentState, network) } - deploymentState.UGenericSchemeParamsCount++; - setState(deploymentState, network); + deploymentState.UGenericSchemeParamsCount++ + setState(deploymentState, network) } if (migrationParams.schemes.GlobalConstraintRegistrar) { if (deploymentState.GlobalConstraintRegistrarParamsCount === undefined) { - deploymentState.GlobalConstraintRegistrarParamsCount = 0; + deploymentState.GlobalConstraintRegistrarParamsCount = 0 } - for ( - deploymentState.GlobalConstraintRegistrarParamsCount; - deploymentState.GlobalConstraintRegistrarParamsCount < - migrationParams.GlobalConstraintRegistrar.length; - deploymentState.GlobalConstraintRegistrarParamsCount++ - ) { - setState(deploymentState, network); + for (deploymentState.GlobalConstraintRegistrarParamsCount; + deploymentState.GlobalConstraintRegistrarParamsCount < migrationParams.GlobalConstraintRegistrar.length; + deploymentState.GlobalConstraintRegistrarParamsCount++) { + setState(deploymentState, network) let parameters = [ - migrationParams.GlobalConstraintRegistrar[ - deploymentState.GlobalConstraintRegistrarParamsCount - ].voteParams === undefined + migrationParams.GlobalConstraintRegistrar[deploymentState.GlobalConstraintRegistrarParamsCount].voteParams === undefined ? deploymentState.votingMachinesParams[0] - : deploymentState.votingMachinesParams[ - migrationParams.GlobalConstraintRegistrar[ - deploymentState.GlobalConstraintRegistrarParamsCount - ].voteParams - ], - migrationParams.GlobalConstraintRegistrar[ - deploymentState.GlobalConstraintRegistrarParamsCount - ].votingMachine === undefined + : deploymentState.votingMachinesParams[migrationParams.GlobalConstraintRegistrar[deploymentState.GlobalConstraintRegistrarParamsCount].voteParams], + migrationParams.GlobalConstraintRegistrar[deploymentState.GlobalConstraintRegistrarParamsCount].votingMachine === undefined ? GenesisProtocol - : migrationParams.GlobalConstraintRegistrar[ - deploymentState.GlobalConstraintRegistrarParamsCount - ].votingMachine - ]; - const globalConstraintRegistrarSetParams = globalConstraintRegistrar.methods.setParameters( - ...parameters - ); - globalConstraintRegistrarParams = await globalConstraintRegistrarSetParams.call(); - - const globalConstraintRegistrarCheckParams = await globalConstraintRegistrar.methods - .parameters(globalConstraintRegistrarParams) - .call(); - if ( - globalConstraintRegistrarCheckParams.intVote === - "0x0000000000000000000000000000000000000000" - ) { - tx = ( - await sendTx( - globalConstraintRegistrarSetParams, - "Setting Global Constraint Registrar parameters..." - ) - ).receipt; - await logTx( - tx, - "Global Constraints Registrar parameters set. | Params Hash: " + - globalConstraintRegistrarParams + - "\nParameters:\n" + - parameters.toString().replace(/,/g, ",\n") - ); + : migrationParams.GlobalConstraintRegistrar[deploymentState.GlobalConstraintRegistrarParamsCount].votingMachine + ] + const globalConstraintRegistrarSetParams = globalConstraintRegistrar.methods.setParameters(...parameters) + globalConstraintRegistrarParams = await globalConstraintRegistrarSetParams.call() + + const globalConstraintRegistrarCheckParams = await globalConstraintRegistrar.methods.parameters(globalConstraintRegistrarParams).call() + if (globalConstraintRegistrarCheckParams.intVote === '0x0000000000000000000000000000000000000000') { + tx = (await sendTx(globalConstraintRegistrarSetParams, 'Setting Global Constraint Registrar parameters...')).receipt + await logTx(tx, + 'Global Constraints Registrar parameters set. | Params Hash: ' + + globalConstraintRegistrarParams + '\nParameters:\n' + + parameters.toString().replace(/,/g, ',\n') + ) } - deploymentState.schemeNames.push("Global Constraints Registrar"); - deploymentState.schemes.push(GlobalConstraintRegistrar); - deploymentState.params.push(globalConstraintRegistrarParams); - deploymentState.permissions.push("0x00000004"); - setState(deploymentState, network); + deploymentState.schemeNames.push('Global Constraints Registrar') + deploymentState.schemes.push(GlobalConstraintRegistrar) + deploymentState.params.push(globalConstraintRegistrarParams) + deploymentState.permissions.push('0x00000004') + setState(deploymentState, network) } - deploymentState.GlobalConstraintRegistrarParamsCount++; - setState(deploymentState, network); + deploymentState.GlobalConstraintRegistrarParamsCount++ + setState(deploymentState, network) } if (migrationParams.schemes.UpgradeScheme) { if (deploymentState.UpgradeSchemeParamsCount === undefined) { - deploymentState.UpgradeSchemeParamsCount = 0; + deploymentState.UpgradeSchemeParamsCount = 0 } - for ( - deploymentState.UpgradeSchemeParamsCount; - deploymentState.UpgradeSchemeParamsCount < - migrationParams.UpgradeScheme.length; - deploymentState.UpgradeSchemeParamsCount++ - ) { - setState(deploymentState, network); + for (deploymentState.UpgradeSchemeParamsCount; + deploymentState.UpgradeSchemeParamsCount < migrationParams.UpgradeScheme.length; + deploymentState.UpgradeSchemeParamsCount++) { + setState(deploymentState, network) let parameters = [ - migrationParams.UpgradeScheme[deploymentState.UpgradeSchemeParamsCount] - .voteParams === undefined + migrationParams.UpgradeScheme[deploymentState.UpgradeSchemeParamsCount].voteParams === undefined ? deploymentState.votingMachinesParams[0] - : deploymentState.votingMachinesParams[ - migrationParams.UpgradeScheme[ - deploymentState.UpgradeSchemeParamsCount - ].voteParams - ], - migrationParams.UpgradeScheme[deploymentState.UpgradeSchemeParamsCount] - .votingMachine === undefined + : deploymentState.votingMachinesParams[migrationParams.UpgradeScheme[deploymentState.UpgradeSchemeParamsCount].voteParams], + migrationParams.UpgradeScheme[deploymentState.UpgradeSchemeParamsCount].votingMachine === undefined ? GenesisProtocol - : migrationParams.UpgradeScheme[ - deploymentState.UpgradeSchemeParamsCount - ].votingMachine - ]; - const upgradeSchemeSetParams = upgradeScheme.methods.setParameters( - ...parameters - ); - upgradeSchemeParams = await upgradeSchemeSetParams.call(); - - const upgradeSchemeCheckParams = await upgradeScheme.methods - .parameters(upgradeSchemeParams) - .call(); - if ( - upgradeSchemeCheckParams.intVote === - "0x0000000000000000000000000000000000000000" - ) { - tx = ( - await sendTx( - upgradeSchemeSetParams, - "Setting Upgrade Scheme parameters..." - ) - ).receipt; - await logTx( - tx, - "Upgrade Scheme parameters set. | Params Hash: " + - upgradeSchemeParams + - "\nParameters:\n" + - parameters.toString().replace(/,/g, ",\n") - ); + : migrationParams.UpgradeScheme[deploymentState.UpgradeSchemeParamsCount].votingMachine + ] + const upgradeSchemeSetParams = upgradeScheme.methods.setParameters(...parameters) + upgradeSchemeParams = await upgradeSchemeSetParams.call() + + const upgradeSchemeCheckParams = await upgradeScheme.methods.parameters(upgradeSchemeParams).call() + if (upgradeSchemeCheckParams.intVote === '0x0000000000000000000000000000000000000000') { + tx = (await sendTx(upgradeSchemeSetParams, 'Setting Upgrade Scheme parameters...')).receipt + await logTx(tx, + 'Upgrade Scheme parameters set. | Params Hash: ' + + upgradeSchemeParams + '\nParameters:\n' + + parameters.toString().replace(/,/g, ',\n') + ) } - deploymentState.schemeNames.push("Upgrade Scheme"); - deploymentState.schemes.push(UpgradeScheme); - deploymentState.params.push(upgradeSchemeParams); - deploymentState.permissions.push("0x0000000A"); - setState(deploymentState, network); + deploymentState.schemeNames.push('Upgrade Scheme') + deploymentState.schemes.push(UpgradeScheme) + deploymentState.params.push(upgradeSchemeParams) + deploymentState.permissions.push('0x0000000A') + setState(deploymentState, network) + } + deploymentState.UpgradeSchemeParamsCount++ + setState(deploymentState, network) + } + + let runFunctions = async function (object, contract) { + if (object.runFunctions !== undefined) { + for (let i in object.runFunctions) { + let functionParams = [] + for (let j in object.runFunctions[i].params) { + if (object.runFunctions[i].params[j].StandAloneContract !== undefined) { + functionParams.push(deploymentState.StandAloneContracts[object.runFunctions[i].params[j].StandAloneContract].address) + } else if (object.runFunctions[i].params[j] === 'AvatarAddress') { + functionParams.push(avatar.options.address) + } else { + functionParams.push(object.runFunctions[i].params[j]) + } + } + const functionCall = contract.methods[object.runFunctions[i].functionName](...functionParams) + + tx = (await sendTx(functionCall, `Calling ${object.name} - ${object.runFunctions[i].functionName}...`)).receipt + await logTx(tx, `${object.name} called function ${object.runFunctions[i].functionName}.`) + } } - deploymentState.UpgradeSchemeParamsCount++; - setState(deploymentState, network); } if (migrationParams.StandAloneContracts) { - let len = migrationParams.StandAloneContracts.length; + let len = migrationParams.StandAloneContracts.length if (deploymentState.standAloneContractsCounter === undefined) { - deploymentState.standAloneContractsCounter = 0; + deploymentState.standAloneContractsCounter = 0 } - for ( - deploymentState.standAloneContractsCounter; + for (deploymentState.standAloneContractsCounter; deploymentState.standAloneContractsCounter < len; - deploymentState.standAloneContractsCounter++ - ) { - setState(deploymentState, network); - let standAlone = - migrationParams.StandAloneContracts[ - deploymentState.standAloneContractsCounter - ]; - - const path = require("path"); - let contractJson; + deploymentState.standAloneContractsCounter++) { + setState(deploymentState, network) + let standAlone = migrationParams.StandAloneContracts[deploymentState.standAloneContractsCounter] + + const path = require('path') + let contractJson if (standAlone.fromArc) { - contractJson = utils.importAbi( - `./${contractsDir}/${ - standAlone.arcVersion ? standAlone.arcVersion : arcVersion - }/${standAlone.name}.json` - ); + contractJson = utils.importAbi(`./${contractsDir}/${standAlone.arcVersion ? standAlone.arcVersion : arcVersion}/${standAlone.name}.json`) } else { - contractJson = require(path.resolve( - `${customAbisLocation}/${standAlone.name}.json` - )); + contractJson = require(path.resolve(`${customAbisLocation}/${standAlone.name}.json`)) } - let abi = contractJson.abi; - let bytecode = contractJson.bytecode; + let abi = contractJson.abi + let bytecode = contractJson.bytecode + let contractParams = [] - const StandAloneContract = new web3.eth.Contract(abi, undefined, opts); - const { receipt, result: standAloneContract } = await sendTx( - StandAloneContract.deploy({ - data: bytecode, - arguments: null - }), - `Migrating ${standAlone.name}...` - ); - await logTx( - receipt, - `${standAloneContract.options.address} => ${standAlone.name}` - ); + const StandAloneContract = new web3.eth.Contract(abi, undefined, opts) if (standAlone.params !== undefined) { - let contractParams = []; for (let i in standAlone.params) { if (standAlone.params[i].StandAloneContract !== undefined) { - contractParams.push( - deploymentState.StandAloneContracts[ - standAlone.params[i].StandAloneContract - ].address - ); + contractParams.push(deploymentState.StandAloneContracts[standAlone.params[i].StandAloneContract].address) + } else if (standAlone.params[i] === 'GenesisProtocolAddress') { + contractParams.push(GenesisProtocol) + } else if (standAlone.params[i] === 'AvatarAddress') { + contractParams.push(avatar.options.address) + } else if (standAlone.params[i] === 'DAOTokenAddress') { + contractParams.push(daoToken.options.address) + } else if (standAlone.params[i] === 'ReputationAddress') { + contractParams.push(reputation.options.address) } else { - contractParams.push(standAlone.params[i]); + contractParams.push(standAlone.params[i]) } } - const contractSetParams = standAloneContract.methods.initialize( - ...contractParams - ); - - tx = ( - await sendTx(contractSetParams, `Initializing ${standAlone.name}...`) - ).receipt; - await logTx(tx, `${standAlone.name} initialized.`); } - if (standAlone.runFunctions !== undefined) { - for (let i in standAlone.runFunctions) { - let functionParams = []; - for (let j in standAlone.runFunctions[i].params) { - if ( - standAlone.runFunctions[i].params[j].StandAloneContract !== - undefined - ) { - functionParams.push( - deploymentState.StandAloneContracts[ - standAlone.runFunctions[i].params[j].StandAloneContract - ].address - ); - } else if ( - standAlone.runFunctions[i].params[j] === "AvatarAddress" - ) { - functionParams.push(avatar.options.address); - } else { - functionParams.push(standAlone.runFunctions[i].params[j]); - } - } - const functionCall = standAloneContract.methods[ - standAlone.runFunctions[i].functionName - ](...functionParams); - - tx = ( - await sendTx( - functionCall, - `Calling ${standAlone.name} - ${standAlone.runFunctions[i].functionName}...` - ) - ).receipt; - await logTx( - tx, - `${standAlone.name} called function ${standAlone.runFunctions[i].functionName}.` - ); - } + const { receipt, result: standAloneContract } = await sendTx(StandAloneContract.deploy({ + data: bytecode, + arguments: standAlone.constructor ? contractParams : null + }), `Migrating ${standAlone.name}...`) + await logTx(receipt, `${standAloneContract.options.address} => ${standAlone.name}`) + + if (standAlone.constructor !== true && standAlone.params !== undefined) { + const contractSetParams = standAloneContract.methods.initialize(...contractParams) + + tx = (await sendTx(contractSetParams, `Initializing ${standAlone.name}...`)).receipt + await logTx(tx, `${standAlone.name} initialized.`) } - deploymentState.StandAloneContracts.push({ - name: standAlone.name, - alias: standAlone.alias, - address: standAloneContract.options.address, - arcVersion: standAlone.arcVersion ? standAlone.arcVersion : arcVersion - }); - setState(deploymentState, network); + await runFunctions(standAlone, standAloneContract) + + deploymentState.StandAloneContracts.push( + { + name: standAlone.name, + alias: standAlone.alias, + address: standAloneContract.options.address, + arcVersion: (standAlone.arcVersion ? standAlone.arcVersion : arcVersion) + } + ) + setState(deploymentState, network) } - deploymentState.standAloneContractsCounter++; - setState(deploymentState, network); + deploymentState.standAloneContractsCounter++ + setState(deploymentState, network) } if (migrationParams.CustomSchemes) { - let len = migrationParams.CustomSchemes.length; + let len = migrationParams.CustomSchemes.length if (deploymentState.CustomSchemeCounter === undefined) { - deploymentState.CustomSchemeCounter = 0; - } - for ( - deploymentState.CustomSchemeCounter; - deploymentState.CustomSchemeCounter < len; - deploymentState.CustomSchemeCounter++ - ) { - setState(deploymentState, network); - let customeScheme = - migrationParams.CustomSchemes[deploymentState.CustomSchemeCounter]; - const path = require("path"); - let contractJson; + deploymentState.CustomSchemeCounter = 0 + } + for (deploymentState.CustomSchemeCounter; + deploymentState.CustomSchemeCounter < len; deploymentState.CustomSchemeCounter++) { + setState(deploymentState, network) + let customeScheme = migrationParams.CustomSchemes[deploymentState.CustomSchemeCounter] + const path = require('path') + let contractJson if (customeScheme.fromArc) { - contractJson = utils.importAbi( - `./${contractsDir}/${ - customeScheme.arcVersion ? customeScheme.arcVersion : arcVersion - }/${customeScheme.name}.json` - ); + contractJson = utils.importAbi(`./${contractsDir}/${customeScheme.arcVersion ? customeScheme.arcVersion : arcVersion}/${customeScheme.name}.json`) } else { - contractJson = require(path.resolve( - `${customAbisLocation}/${customeScheme.name}.json` - )); + contractJson = require(path.resolve(`${customAbisLocation}/${customeScheme.name}.json`)) } - let abi = contractJson.abi; - let bytecode = contractJson.bytecode; - let schemeContract; + let abi = contractJson.abi + let bytecode = contractJson.bytecode + let schemeContract if (customeScheme.address === undefined) { - const SchemeContract = new web3.eth.Contract(abi, undefined, opts); - let { receipt, result } = await sendTx( - SchemeContract.deploy({ - data: bytecode, - arguments: null - }), - `Migrating ${customeScheme.name}...` - ); - schemeContract = result; - await logTx( - receipt, - `${schemeContract.options.address} => ${customeScheme.name}` - ); + const SchemeContract = new web3.eth.Contract(abi, undefined, opts) + let { receipt, result } = await sendTx(SchemeContract.deploy({ + data: bytecode, + arguments: null + }), `Migrating ${customeScheme.name}...`) + schemeContract = result + await logTx(receipt, `${schemeContract.options.address} => ${customeScheme.name}`) } else { if (customeScheme.address.StandAloneContract !== undefined) { - customeScheme.address = - deploymentState.StandAloneContracts[ - customeScheme.address.StandAloneContract - ].address; + customeScheme.address = deploymentState.StandAloneContracts[customeScheme.address.StandAloneContract].address } - schemeContract = new web3.eth.Contract( - abi, - customeScheme.address, - opts - ); + schemeContract = new web3.eth.Contract(abi, customeScheme.address, opts) } - let schemeParamsHash = - "0x0000000000000000000000000000000000000000000000000000000000000000"; + let schemeParamsHash = '0x0000000000000000000000000000000000000000000000000000000000000000' if (customeScheme.isUniversal) { - let schemeParams = []; + let schemeParams = [] for (let i in customeScheme.params) { if (customeScheme.params[i].voteParams !== undefined) { - schemeParams.push( - deploymentState.votingMachinesParams[ - customeScheme.params[i].voteParams - ] - ); - } else if (customeScheme.params[i] === "GenesisProtocolAddress") { - schemeParams.push(GenesisProtocol); + schemeParams.push(deploymentState.votingMachinesParams[customeScheme.params[i].voteParams]) + } else if (customeScheme.params[i] === 'GenesisProtocolAddress') { + schemeParams.push(GenesisProtocol) + } else if (customeScheme.params[i] === 'AvatarAddress') { + schemeParams.push(avatar.options.address) + } else if (customeScheme.params[i] === 'DAOTokenAddress') { + schemeParams.push(daoToken.options.address) + } else if (customeScheme.params[i] === 'ReputationAddress') { + schemeParams.push(reputation.options.address) } else { - schemeParams.push(customeScheme.params[i]); + schemeParams.push(customeScheme.params[i]) } } - const schemeSetParams = schemeContract.methods.setParameters( - ...schemeParams - ); - schemeParamsHash = await schemeSetParams.call(); - tx = ( - await sendTx( - schemeSetParams, - `Setting ${customeScheme.name} parameters...` - ) - ).receipt; - await logTx( - tx, - customeScheme.name + - " parameters set. | Params Hash: " + - schemeParamsHash + - "\nParameters:\n" + - schemeParams.toString().replace(/,/g, ",\n") - ); + const schemeSetParams = schemeContract.methods.setParameters(...schemeParams) + schemeParamsHash = await schemeSetParams.call() + tx = (await sendTx(schemeSetParams, `Setting ${customeScheme.name} parameters...`)).receipt + await logTx(tx, + customeScheme.name + ' parameters set. | Params Hash: ' + + schemeParamsHash + '\nParameters:\n' + + schemeParams.toString().replace(/,/g, ',\n') + ) } else if (schemeContract.methods.initialize !== undefined) { - let schemeParams = [avatar.options.address]; + let schemeParams = [avatar.options.address] for (let i in customeScheme.params) { if (customeScheme.params[i].voteParams !== undefined) { - schemeParams.push( - deploymentState.votingMachinesParams[ - customeScheme.params[i].voteParams - ] - ); - } else if (customeScheme.params[i] === "GenesisProtocolAddress") { - schemeParams.push(GenesisProtocol); + schemeParams.push(deploymentState.votingMachinesParams[customeScheme.params[i].voteParams]) + } else if (customeScheme.params[i] === 'GenesisProtocolAddress') { + schemeParams.push(GenesisProtocol) } else if (customeScheme.params[i].StandAloneContract !== undefined) { - schemeParams.push( - deploymentState.StandAloneContracts[ - customeScheme.params[i].StandAloneContract - ].address - ); - } else if (customeScheme.params[i] === "AvatarAddress") { - schemeParams.push(avatar.options.address); + schemeParams.push(deploymentState.StandAloneContracts[customeScheme.params[i].StandAloneContract].address) + } else if (customeScheme.params[i] === 'AvatarAddress') { + schemeParams.push(avatar.options.address) + } else if (customeScheme.params[i] === 'DAOTokenAddress') { + schemeParams.push(daoToken.options.address) + } else if (customeScheme.params[i] === 'ReputationAddress') { + schemeParams.push(reputation.options.address) } else { - schemeParams.push(customeScheme.params[i]); + schemeParams.push(customeScheme.params[i]) } } - const schemeSetParams = schemeContract.methods.initialize( - ...schemeParams - ); - schemeParamsHash = await schemeSetParams.call(); + const schemeSetParams = schemeContract.methods.initialize(...schemeParams) + schemeParamsHash = await schemeSetParams.call() if (schemeParamsHash.Result === undefined) { - schemeParamsHash = - "0x0000000000000000000000000000000000000000000000000000000000000000"; + schemeParamsHash = '0x0000000000000000000000000000000000000000000000000000000000000000' } - tx = ( - await sendTx(schemeSetParams, `Initializing ${customeScheme.name}...`) - ).receipt; - await logTx(tx, `${customeScheme.name} initialized.`); + tx = (await sendTx(schemeSetParams, `Initializing ${customeScheme.name}...`)).receipt + await logTx(tx, `${customeScheme.name} initialized.`) } else { - continue; + continue } - deploymentState.schemeNames.push(customeScheme.name); - deploymentState.schemes.push(schemeContract.options.address); - deploymentState.params.push(schemeParamsHash); - deploymentState.permissions.push(customeScheme.permissions); - deploymentState.Schemes.push({ - name: customeScheme.name, - alias: customeScheme.alias, - address: schemeContract.options.address, - arcVersion: customeScheme.arcVersion - ? customeScheme.arcVersion - : arcVersion - }); - setState(deploymentState, network); + await runFunctions(customeScheme, schemeContract) + + deploymentState.schemeNames.push(customeScheme.name) + deploymentState.schemes.push(schemeContract.options.address) + deploymentState.params.push(schemeParamsHash) + deploymentState.permissions.push(customeScheme.permissions) + deploymentState.Schemes.push( + { + name: customeScheme.name, + alias: customeScheme.alias, + address: schemeContract.options.address, + arcVersion: (customeScheme.arcVersion ? customeScheme.arcVersion : arcVersion) + } + ) + setState(deploymentState, network) } - deploymentState.CustomSchemeCounter++; - setState(deploymentState, network); + deploymentState.CustomSchemeCounter++ + setState(deploymentState, network) } if (deploymentState.schemesSet !== true) { if (migrationParams.useDaoCreator === true) { - tx = ( - await sendTx( - daoCreator.methods.setSchemes( - avatar.options.address, - deploymentState.schemes, - deploymentState.params, - deploymentState.permissions, - "metaData" - ), - "Setting DAO schemes..." - ) - ).receipt; - await logTx(tx, "DAO schemes set."); - deploymentState.schemesSet = true; - setState(deploymentState, network); + tx = (await sendTx( + daoCreator.methods.setSchemes( + avatar.options.address, + deploymentState.schemes, + deploymentState.params, + deploymentState.permissions, + 'metaData'), 'Setting DAO schemes...')).receipt + await logTx(tx, 'DAO schemes set.') + deploymentState.schemesSet = true + setState(deploymentState, network) } else { - for ( - let i = - deploymentState.schemesSetCounter === undefined - ? 0 - : deploymentState.schemesSetCounter; - i < deploymentState.schemes.length; - i++ - ) { - deploymentState.schemesSetCounter = i; - setState(deploymentState, network); - tx = ( - await sendTx( - controller.methods.registerScheme( - deploymentState.schemes[i], - deploymentState.params[i], - deploymentState.permissions[i], - avatar.options.address - ), - "Registering " + deploymentState.schemeNames[i] + " to the DAO..." - ) - ).receipt; - await logTx( - tx, - deploymentState.schemeNames[i] + - " was successfully registered to the DAO." - ); + for (let i = deploymentState.schemesSetCounter === undefined ? 0 : deploymentState.schemesSetCounter; + i < deploymentState.schemes.length; i++) { + deploymentState.schemesSetCounter = i + setState(deploymentState, network) + tx = (await sendTx( + controller.methods.registerScheme( + deploymentState.schemes[i], + deploymentState.params[i], + deploymentState.permissions[i], + avatar.options.address), 'Registering ' + deploymentState.schemeNames[i] + ' to the DAO...')).receipt + await logTx(tx, deploymentState.schemeNames[i] + ' was successfully registered to the DAO.') } - deploymentState.schemesSet = true; - setState(deploymentState, network); + deploymentState.schemesSet = true + setState(deploymentState, network) } - deploymentState.schemesSetCounter++; - setState(deploymentState, network); + deploymentState.schemesSetCounter++ + setState(deploymentState, network) } let dao = { @@ -1378,14 +906,14 @@ async function migrateDAO({ Schemes: deploymentState.Schemes, StandAloneContracts: deploymentState.StandAloneContracts, arcVersion - }; - console.log(JSON.stringify(dao, null, 2)); - let migration = { dao: previousMigration.dao || {} }; - migration.dao[arcVersion] = dao; - - cleanState(network); - spinner.succeed("DAO Migration has Finished Successfully!"); - return migration; + } + console.log(JSON.stringify(dao, null, 2)) + let migration = { 'dao': previousMigration.dao || {} } + migration.dao[arcVersion] = dao + + cleanState(network) + spinner.succeed('DAO Migration has Finished Successfully!') + return migration } -module.exports = migrateDAO; +module.exports = migrateDAO diff --git a/packages/lib/src/dependency/arc/src/migration.json b/packages/lib/src/dependency/arc/src/migration.json index 12b2e9c0..69bddabb 100644 --- a/packages/lib/src/dependency/arc/src/migration.json +++ b/packages/lib/src/dependency/arc/src/migration.json @@ -325,134 +325,134 @@ }, "0.0.1-rc.35": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0x7200B43892c05231Fb5841dEf2782ceA5bbf4E14", - "DAOTracker": "0xAD99276C293B7c491A8070d5E45EB380fC0f8976", - "ControllerCreator": "0x4F475aD35D69b274e4EC58D76eA4Ce7081336049", - "DaoCreator": "0x7e294552E729f9987910C9090B5F4155D29139db", - "GenesisProtocol": "0xf32E0eB1795746757232e240FC8b7EE23E678fb4", - "SchemeRegistrar": "0x37446F84f72519553C739036E301a0CdCcC8c069", - "UpgradeScheme": "0x6F6BfF298e182882091B8D0FF40208d09aE96B62", - "GlobalConstraintRegistrar": "0xAb682420d99CcB96d1F8b39B5FDe43810D159b67", - "ContributionReward": "0x02C74b5249D989F9A24714a2E2101926CE8cd873", - "AbsoluteVote": "0x0fD381F5c0E9037a5c536B7bB5e3F109B6243651", - "QuorumVote": "0x185efa089A3D10a56c971fa8036b9468bB540f72", - "TokenCapGC": "0xC3862Bc375bad786d51989a431E0cc734F350Ac3", - "VoteInOrganizationScheme": "0x28F56A97e4a493762b4507EB41Ca54D3Ae678DEE", - "OrganizationRegister": "0xC5e29Bb3cfC0daA6e4e1179Ac91c4f07a93D2B3c", - "Redeemer": "0xEAE767D5D670826Bf531c2692335c52c6cA7010B" + "DAORegistry": "0x7e294552E729f9987910C9090B5F4155D29139db", + "DAOTracker": "0xf32E0eB1795746757232e240FC8b7EE23E678fb4", + "ControllerCreator": "0x37446F84f72519553C739036E301a0CdCcC8c069", + "DaoCreator": "0x6F6BfF298e182882091B8D0FF40208d09aE96B62", + "GenesisProtocol": "0xAb682420d99CcB96d1F8b39B5FDe43810D159b67", + "SchemeRegistrar": "0x02C74b5249D989F9A24714a2E2101926CE8cd873", + "UpgradeScheme": "0x0fD381F5c0E9037a5c536B7bB5e3F109B6243651", + "GlobalConstraintRegistrar": "0x185efa089A3D10a56c971fa8036b9468bB540f72", + "ContributionReward": "0xC3862Bc375bad786d51989a431E0cc734F350Ac3", + "AbsoluteVote": "0x28F56A97e4a493762b4507EB41Ca54D3Ae678DEE", + "QuorumVote": "0xC5e29Bb3cfC0daA6e4e1179Ac91c4f07a93D2B3c", + "TokenCapGC": "0xEAE767D5D670826Bf531c2692335c52c6cA7010B", + "VoteInOrganizationScheme": "0xf81996Eb82Cf337B31aBBd16FdB283e1cbC360f3", + "OrganizationRegister": "0x22c38638aC5007e1De99fEAB20f664046cB42768", + "Redeemer": "0xd5866DBDE071F070C254570d1BBbfE732860221e" }, "0.0.1-rc.36": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0xAFb23b2dE890F3aaC5FfF7a5Fb62523009A836F1", - "DAOTracker": "0x8d4DEDB9fF2E7632EBdb3e979d7FCa09A238BF50", - "ControllerCreator": "0x62F64fB83fEFE35A988D1230f718E1A5D2844561", - "DaoCreator": "0x95891E443D369e1B8010f7c3cd79902F3C805C96", - "GenesisProtocol": "0xdEd827B4187a28C143b862302886D77e57800ED7", - "SchemeRegistrar": "0x99f5a5D38d6cd364f4b0489Da549c3e2013A7e32", - "UpgradeScheme": "0x77c89b315072dc62Ca11170E37227304b798A555", - "GlobalConstraintRegistrar": "0x8E796D2b38DB236D2360F6AFb29E43fdfDA57EB9", - "ContributionReward": "0x6A5361584065db235573339D658a350796ba76DA", - "AbsoluteVote": "0x3Fd06f0F2907A1382dA5Fd54F7158117d40E0F04", - "QuorumVote": "0xeD76E4aDB341c94e3E476e9ea38838C0b1440E35", - "TokenCapGC": "0x62552dcB7cd91E08d00f93C66a34F3521bBA172a", - "VoteInOrganizationScheme": "0x7291B798C3C4f051e3792336849b2c0Cf918C647", - "OrganizationRegister": "0x356C05Dba1a9Fb9b6b47DA691c43B4fc1C39C466", - "Redeemer": "0xc5806267E82b22852e364A3A94B648bca6080992" + "DAORegistry": "0x77c89b315072dc62Ca11170E37227304b798A555", + "DAOTracker": "0x8E796D2b38DB236D2360F6AFb29E43fdfDA57EB9", + "ControllerCreator": "0x6A5361584065db235573339D658a350796ba76DA", + "DaoCreator": "0x3Fd06f0F2907A1382dA5Fd54F7158117d40E0F04", + "GenesisProtocol": "0xeD76E4aDB341c94e3E476e9ea38838C0b1440E35", + "SchemeRegistrar": "0x62552dcB7cd91E08d00f93C66a34F3521bBA172a", + "UpgradeScheme": "0x7291B798C3C4f051e3792336849b2c0Cf918C647", + "GlobalConstraintRegistrar": "0x356C05Dba1a9Fb9b6b47DA691c43B4fc1C39C466", + "ContributionReward": "0xc5806267E82b22852e364A3A94B648bca6080992", + "AbsoluteVote": "0x383E8EEea6EAEDA66b89ADFccBDE756E13C02c66", + "QuorumVote": "0xcC832Ed1B2614ECa45f2c414AC03d7E7775e137a", + "TokenCapGC": "0xC62629CC3f1C5f91D6757498F14cbaAA0CAE27FA", + "VoteInOrganizationScheme": "0x5CA3509163e32aaa71820D096F1e61e038421f0b", + "OrganizationRegister": "0x2F18751e9Eb3621892E7F96420b720398C7F00d8", + "Redeemer": "0x00B18A3278aAd02bCdC96673615ec1359f504c8e" }, "0.0.1-rc.37": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0xD3dC362BbA6a7c3237D3221362A6fADaDE5e4D28", - "DAOTracker": "0x7793b9e0345d207ef178EB13d0fdEa70c2E714AD", - "ControllerCreator": "0x136fF6ecc0e8D8c4235e8b0DC9eD2D5405B87686", - "DaoCreator": "0x0Ad9b90602141A9f7a08798fE36fEF0E01CFA8d5", - "GenesisProtocol": "0xD4095A0D7Bb0FD4a5475731268dbdaE600F0471a", - "SchemeRegistrar": "0x4801dA853E672103B0A974978C42747ebb83a4B2", - "UpgradeScheme": "0x21d8C51e1bF068D17a9BA4b287dBc5a3aB4b7eC1", - "GlobalConstraintRegistrar": "0x5192ca7c384D30e7B7231aa1C86592e519e6a826", - "ContributionReward": "0xeA7Bb57Af61B130290E17f02853751a21a97428F", - "AbsoluteVote": "0xb2bac372Dba33c2aC70ED432c29A18BC52c3C429", - "QuorumVote": "0x7c97df6154098231543f9228f5F5FA3E6e21ACa6", - "TokenCapGC": "0xA03408EF1e3C6929e364Bd7db24F62D50842D7F3", - "VoteInOrganizationScheme": "0xD726b7b8CE2075FA4e65cC471A3687FB00B39e13", - "OrganizationRegister": "0x72D9Ca808747b01e97c38C9Fc95E99FdC0a8Ab1b", - "Redeemer": "0x9Bbe05c2f6289D8DaA8a2B318309d7202e089c4e" + "DAORegistry": "0xb2bac372Dba33c2aC70ED432c29A18BC52c3C429", + "DAOTracker": "0x7c97df6154098231543f9228f5F5FA3E6e21ACa6", + "ControllerCreator": "0xA03408EF1e3C6929e364Bd7db24F62D50842D7F3", + "DaoCreator": "0xD726b7b8CE2075FA4e65cC471A3687FB00B39e13", + "GenesisProtocol": "0x72D9Ca808747b01e97c38C9Fc95E99FdC0a8Ab1b", + "SchemeRegistrar": "0x9Bbe05c2f6289D8DaA8a2B318309d7202e089c4e", + "UpgradeScheme": "0xAE1e226DF21998bB61087E02Ce87d76a419Dc113", + "GlobalConstraintRegistrar": "0x8eA9E6070193f228cAB66d86ae4FBb47A611BF54", + "ContributionReward": "0x65A949eB75a93A01FDfE32600E35cc0535F86705", + "AbsoluteVote": "0x76BB3AF1C9e5c61Ed37d1802e814c994cE267264", + "QuorumVote": "0x7dabCBBfeF04eEa1514f38e5157137416dAE94C8", + "TokenCapGC": "0x9901C26665F94c0e772319A234aC52FDBD12436e", + "VoteInOrganizationScheme": "0x4BE0D97106ca2031AcB7222601c31be1bC7Cf683", + "OrganizationRegister": "0x21a7ED5a6C08f954522ac8bDB282F4b6f758BC2e", + "Redeemer": "0x0E1598278e34793C83A4B1989d410DD0D7652b92" }, "0.0.1-rc.38": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0x00bF1ca60263EDe30a11D9e4583C61BAE9178cA3", - "DAOTracker": "0xa818a2De91D84F6e045a95E9EF9eD2B20C6202FD", - "ControllerCreator": "0xccA8D680Df84FC409eA33Dcf05b5ba5c3d6c31C2", - "DaoCreator": "0xBc7B49A52635831B35978b053a6c18381730888F", - "GenesisProtocol": "0x2B2F8e787bA2922d3aF4C773dC1C9720261bc99c", - "SchemeRegistrar": "0x36DF36C163304531c6EF352494E1466C662cCC35", - "UpgradeScheme": "0xd15Bb6B9A2B4d6C697557a872E41FeF9bE467F64", - "GlobalConstraintRegistrar": "0xaaA54d75fA463076B600e2A5f179cB123275A189", - "ContributionReward": "0x858Ee12859DE5fcC4512ada3F1Ab884D5ce88702", - "AbsoluteVote": "0xeEEA0e95276F0666d383F38f818989CA1B544B74", - "QuorumVote": "0x02d3a38bC1f981a60F7e50cEDc10833BA9b66250", - "TokenCapGC": "0xC93636E2b3Ecf7788E95c890cFB7FA81695931ca", - "VoteInOrganizationScheme": "0x1889f423dB91056858b7b073b7142222B7c6B263", - "OrganizationRegister": "0x34fd4D8Fe1Ba7eAf06db2EF4f9c87116431800b2", - "Redeemer": "0xe708F1E0Ca12d21adB823062e34f1bb5A79DD979" + "DAORegistry": "0x1889f423dB91056858b7b073b7142222B7c6B263", + "DAOTracker": "0x34fd4D8Fe1Ba7eAf06db2EF4f9c87116431800b2", + "ControllerCreator": "0xe708F1E0Ca12d21adB823062e34f1bb5A79DD979", + "DaoCreator": "0x1EDb12b8CC6f4Ff8c405B36A95c6a506dd254f0A", + "GenesisProtocol": "0x5F8B7361920FbD01C5Efd52A657c33a525f0E584", + "SchemeRegistrar": "0xfe5884b36Cc812bCc20D4D1E250F0521c982560c", + "UpgradeScheme": "0x673c1f9ae39C7eD5B92ea719FA2a299124A1AD8A", + "GlobalConstraintRegistrar": "0x3b4A311A2ddbeEB648949E65a356D43c8162fC8A", + "ContributionReward": "0xf2d73CdC88494bE097724584088306BDd510c4bd", + "AbsoluteVote": "0xDA645253d111476DDc549bA5538B81Aefa53b2dC", + "QuorumVote": "0x264aA768a6247B423DB76E3EF53D8537F13b014C", + "TokenCapGC": "0x4f89E1754c066e79b30954ED0FFE0AD173D63250", + "VoteInOrganizationScheme": "0x00D5813aa4F83F6b6E3A92af8e8f51643c3959A5", + "OrganizationRegister": "0x97d3dB2767855540b5e290E4Fa931950853875F8", + "Redeemer": "0xb30796E3d96aA720F7c478e32eCD8a7c97335f54" }, "0.0.1-rc.39": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0x1c7E1848751DD81de077ED71Cd16f5ceFaB01a6C", - "DAOTracker": "0xD991A3298c548257B7a60A8A414cf7598966DBdE", - "ControllerCreator": "0xBA7619DFA824A168fDD76a77b8236f83528d015C", - "DaoCreator": "0x2F662573d2Bc45E4eEb24E155aD8Fe4DB566946a", - "GenesisProtocol": "0xE32f949F23d57Ff8A87670fc8126245C2F659029", - "SchemeRegistrar": "0x827F548ebB79051FEB82ADc6Aa8d64aDB39D7b29", - "UpgradeScheme": "0x364F8a80F7D479D2592693B2165e6304c6c68D2E", - "GlobalConstraintRegistrar": "0x14211D968fceEA924F1B3480224Ac40F66008ED8", - "ContributionReward": "0x9EB98f96b76F4c6eBBc7A48CaF33CD1F0AB58A59", - "AbsoluteVote": "0x3fe8336f641646d4A127b1215EF2b2E7f9c3c2d5", - "QuorumVote": "0x8367c8d334A9B2bc357C46cA3712331b99179a6d", - "TokenCapGC": "0xED85d82Da1463255b287EC1592aFC92BF655630d", - "VoteInOrganizationScheme": "0x4845BEAd787ACeAc404Fce7F408B655a7ed39fC5", - "OrganizationRegister": "0xcd3ECC7b0F4e4BDb2a8DC65a3E9B1ABB333dF8a1", - "Redeemer": "0xFF2B5b561343404a78234274d587B81523130407" + "DAORegistry": "0x46Ceedaf5053975dAa438A50bdcD34C9B90C5656", + "DAOTracker": "0x9Bf8d88500470323ebDF4E05f175357d00c1da11", + "ControllerCreator": "0xe67774e0CF965E50c96E1eFFcbC88b285e1D2c24", + "DaoCreator": "0x73CA05ca54B0Ef2F5d9B47165C5D833126E765b0", + "GenesisProtocol": "0xbe13772c54BD4319155BD5181eB599E35C7412D5", + "SchemeRegistrar": "0xE778BF2A2BbA92A4b50732c0157Cf5F30B262662", + "UpgradeScheme": "0xae6E0C611ab2dc9689dd2E361cfb386Fb6765ed7", + "GlobalConstraintRegistrar": "0x9Db934F7a95B60E513D7B9EAAE0449F152B107B2", + "ContributionReward": "0x7CD480523bec017c726D0555FAED58b525a7C568", + "AbsoluteVote": "0x8924DAe6B7fb0E467407ba30D7260925605d3Cb6", + "QuorumVote": "0xD54f2D5dDb3c1b89AB1458F8e4B35FdbD0be58f9", + "TokenCapGC": "0x872eB3D8E034DF7450be1A5FA266b7C38074e3d5", + "VoteInOrganizationScheme": "0x600029315FB794D2D66D91842E78247526429a78", + "OrganizationRegister": "0xd4e21e63A431a3D1e8c1886c8c355c6dc800e194", + "Redeemer": "0xf8B70492E90AdAd839F5D77Bb2e969b932e80Ca9" }, "0.0.1-rc.40": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0x05dda20E48BCF6c617Af1953Cb54da5c69Ae1D9E", - "DAOTracker": "0x592c129085b61A3110Ebd1DCD99F3Cfe97A54dF3", - "ControllerCreator": "0x0A8266160BeE022E0e16d0195c52B21e829f2334", - "DaoCreator": "0x718A681EC5ECc2533532e070a65F2172F4c13074", - "GenesisProtocol": "0xE45e9288b6F9eF22a4c113848117bba0883c37CA", - "SchemeRegistrar": "0x5088Fc39c95f3c83C0179B8109d016Cf86aa0979", - "UpgradeScheme": "0x0077de6E87A97b477b102B51576E9De2eF08A441", - "GlobalConstraintRegistrar": "0xe6d3035f2CEebFCA07D4C09F874c008DB5305C06", - "ContributionReward": "0x707C1a98B35f772daB1AB2D8023FF52366Fa09D6", - "AbsoluteVote": "0x558aE6F7Bca33f0286d5695F68301b562e50c07c", - "QuorumVote": "0xb5DE32f099685A45c2E233384A09525c9b12f843", - "TokenCapGC": "0x4eb40A0300C1E0d2BC198CBe2702EC75021E488B", - "VoteInOrganizationScheme": "0xcC1F5Acdf59FCa8bc4774Ce8B3fF9C7581B00588", - "OrganizationRegister": "0x4fB56F4593EE973482Fb2Fc68e59BBd62a322767", - "Redeemer": "0xe5952d8F950CfbfD669C5F0b692468360fd8315F" + "DAORegistry": "0xDd0bC158162ABB1aecD1Fae87391e6d2316d31d1", + "DAOTracker": "0xA5E67133D01BDc93DCfD2c3C156bEE1Bf4Ea655c", + "ControllerCreator": "0x636DB4fFBE6e8ea8137f6ED46AF4d918161d5516", + "DaoCreator": "0x15EcD398bc9e2738863F550698b6c7cEf34B29C1", + "GenesisProtocol": "0x0FA530c5c0014525767047c780E68881f43d08DF", + "SchemeRegistrar": "0xfe8FCf4A155B3b4Af14C834Da36c4b394ABFF15f", + "UpgradeScheme": "0x006e5e558Ee9E46677f14c791a1b749b8cB83ec5", + "GlobalConstraintRegistrar": "0x95677d0125645055c6EfAACd0C7480945e729A83", + "ContributionReward": "0x916568cCcBD9967f0c0BA2a319b571F61a39FF8D", + "AbsoluteVote": "0x538d3062fAdFB17D40c26FaCAE6c55c076146803", + "QuorumVote": "0xd60E1d268431DC9BddA1C1e1D8A93e898bC99657", + "TokenCapGC": "0x63aF764d17b78879774988E011f67cf4b3A111F6", + "VoteInOrganizationScheme": "0x0da069CB343cF98897748E9BB36D960E3A28F057", + "OrganizationRegister": "0xBC76F5E3242FB87a948327424f3C94dEEa4Ec6Ca", + "Redeemer": "0x29341E0Fea3d1fdD3FD25a929B8e9A2085CD4E7D" }, "0.0.1-rc.41": { "GEN": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab", - "DAORegistry": "0x7b03ff5df5e6D6F13f468E786a7B0EcD562e9CF2", - "DAOTracker": "0xc4Ec44A6093dE4ab082d2403091F7C0cA303B513", - "ControllerCreator": "0xab8A1078d984C20A8646A3cEA960A29586D48631", - "DaoCreator": "0x6D401A19c626A15730E64D5F3f2FA19680Fa88B4", - "GenesisProtocol": "0xe6a72676021cA4A4646cf41b90eA791e371Ad784", - "SchemeRegistrar": "0x32ea1C645430482f7c297F145052A52D9952109a", - "UpgradeScheme": "0xf9e59CdF52f5745C15268B4DAa39C1BB976B82F5", - "GlobalConstraintRegistrar": "0xc59d95b66aF45a5b2f17Cf1097EE708727990a4c", - "ContributionReward": "0x96Cc3ea46F59A1b6bf83081Ee41C9fA795fB46BB", - "AbsoluteVote": "0x00266082DE5E6CF65D12A706B817d315943aB9B9", - "QuorumVote": "0x8B074eE849EB477191B6F49E8e05f6FDCE5B5a69", - "TokenCapGC": "0x2356a4F7f66e7fd60eE0c0cB7a2990ba8Ea4e3c8", - "VoteInOrganizationScheme": "0xB6721C7F775b49FbE92A7c39Fc5dfBC8d5F400Ab", - "OrganizationRegister": "0x17a47115d589FDe38835FfBA180A832c29119b5f", - "Redeemer": "0xC974cF3e7625c1ef0aD0FF5f939aBE34f22f7EDD" + "DAORegistry": "0xCb2F831D8Cc5DDfdb9b9a81964aB04eDbc53ddB1", + "DAOTracker": "0xd40b14a33FeeBBA5915D7ADEEDd98E78C9516f25", + "ControllerCreator": "0x492D7121bc673a2acAEc76C57531ee6E046ffdBd", + "DaoCreator": "0xEeaaf6A9167bfa594A75B0009C418A477d912bd0", + "GenesisProtocol": "0xC94424eb26839a2B195eBb7230f7a43C00F20428", + "SchemeRegistrar": "0x218DFb4f7295FE4f0B6cF64AA7121F60Ea36deDa", + "UpgradeScheme": "0x1226EE84C49BedE8220ff20Ab972467f7F5599A6", + "GlobalConstraintRegistrar": "0x49f4dc93c37949C2c682c94700547C7EcE44C439", + "ContributionReward": "0x7Bd1E72F599CC08495455d74312c5c70ACd9E305", + "AbsoluteVote": "0x86F2d3A404502D32B567B101eaE10337073510B9", + "QuorumVote": "0xa0c57889357759dE1557188Be8c670F2737FFA7E", + "TokenCapGC": "0x98a98Bf4B3c9e917570CB62326F3fAf7633677af", + "VoteInOrganizationScheme": "0x4E163f97766fC492ebA967Ef2044DfF4132492C1", + "OrganizationRegister": "0x65fcf441f00395A5649c05E5c81fC6Fad463FFc1", + "Redeemer": "0x3E7d0A809E154f946381C9ce042EbfCDBDfAF1AC" } }, "dao": { "0.0.1-rc.16": { - "name": "Jejune Sea barnacles", + "name": "Friable Nibblets", "Avatar": "0xE7A2C59e134ee81D4035Ae6DB2254f79308e334f", "DAOToken": "0xcDbe8b52A6c60A5f101d4A0F1f049f19a9e1D35F", "Reputation": "0x93cdbf39fB9e13BD253CA5819247D52fbabf0F2f", @@ -485,7 +485,7 @@ "arcVersion": "0.0.1-rc.16" }, "0.0.1-rc.17": { - "name": "Turgid Beets", + "name": "Munificent Senor", "Avatar": "0x77c46A6d606D9e21f1ce435847C2a7Edb4990853", "DAOToken": "0xBBc9C59F1Cd3528Ac34DfEfCa9BaeD2452f1441D", "Reputation": "0x11f5dAF9B2432FFd140Bb70f836337716c12bc89", @@ -518,7 +518,7 @@ "arcVersion": "0.0.1-rc.17" }, "0.0.1-rc.18": { - "name": "Limpid Wheelwright", + "name": "Adroit Artist", "Avatar": "0x575BF71a1201965dd2A7bC3Bc2C316941A291905", "DAOToken": "0x8d7529F4805972673bAD04CbB7C8916635F9a9E3", "Reputation": "0xDa6B10418fce74f9F85D5A388364500e279E6DD9", @@ -551,7 +551,7 @@ "arcVersion": "0.0.1-rc.18" }, "0.0.1-rc.19": { - "name": "Luminous Plant operator", + "name": "Petulant Penciller", "Avatar": "0xf88E4C158298323a85dD7678eD60DBfF6DA71007", "DAOToken": "0xa09Cd74C747bf9DDB9154B1C75e271Dd12E45224", "Reputation": "0x5E06A0d7BA9728E3B3140857B26fFD6626D66793", @@ -584,7 +584,7 @@ "arcVersion": "0.0.1-rc.19" }, "0.0.1-rc.21": { - "name": "Insidious Plant operator", + "name": "Risible Flatter", "Avatar": "0x06f6d4B8D58287ae6634ea8d9A53d3f43bE9e93b", "DAOToken": "0x30Dc0f3A36987b8e2d24584045E8BBB68f0f355c", "Reputation": "0x280f423A9038D9702d0454972520E49faAe75CeA", @@ -617,7 +617,7 @@ "arcVersion": "0.0.1-rc.21" }, "0.0.1-rc.22": { - "name": "Serpentine Pancake", + "name": "Uxorious Toejam", "Avatar": "0xBD3FfBBba66dF5ad18C417Ba5FB37fE61bDC4340", "DAOToken": "0xAB5acA3428E9079d4f77d70d135aCA7Ea9415be3", "Reputation": "0xDf38D7091be008e42360b9DB2d1a805a29Df4B95", @@ -650,7 +650,7 @@ "arcVersion": "0.0.1-rc.22" }, "0.0.1-rc.23": { - "name": "Ruminative Plant operator", + "name": "Munificent Engineering", "Avatar": "0xa78E9256ea2F6B729f44BA0fAFc48a6F6b44eC06", "DAOToken": "0x68d49Ad5EFcCa1353842ccc2773C0583859858f0", "Reputation": "0x71A80d891122B92C102D556E1F846747D90b17CA", @@ -683,7 +683,7 @@ "arcVersion": "0.0.1-rc.23" }, "0.0.1-rc.24": { - "name": "Equanimous Snakes", + "name": "Mordant Beets", "Avatar": "0x4D2de84609a39064EC6c901DB4BCb6e80C3d6a4f", "DAOToken": "0x2E9b038b7EEeFD1De58E9DA10bA412442eA07D11", "Reputation": "0x2C5502f382B3fb9c305d9dC802811952F8F65CEf", @@ -722,7 +722,7 @@ "arcVersion": "0.0.1-rc.24" }, "0.0.1-rc.25": { - "name": "Serpentine Moldmaker", + "name": "Tenacious Locomotive", "Avatar": "0xeb09a386e36046A1ec9CbaB475078DF46987421E", "DAOToken": "0x3964BE1b3e635348aed81C5931CE254ee925bb11", "Reputation": "0xF2c709AE9736499F76144Ecd474610110D1d7d11", @@ -761,7 +761,7 @@ "arcVersion": "0.0.1-rc.25" }, "0.0.1-rc.27": { - "name": "Sagacious Model", + "name": "Tenacious Artist", "Avatar": "0x035bdda4Add334eF45Dc5C6c4A3534B75Dfb55AD", "DAOToken": "0xcE7979df8a6034afD878c9B0CD5f7678F54f03A7", "Reputation": "0xF5511e2E74E3975ecc5bDe18508217Ef638631fF", @@ -800,7 +800,7 @@ "arcVersion": "0.0.1-rc.27" }, "0.0.1-rc.28": { - "name": "Redolent Foreman", + "name": "Intransigent Hot air balloon", "Avatar": "0xF9bB7Bb73abEaf187fe183A5be11aE80b52FEca6", "DAOToken": "0x74f1B231cc81Db100F46AB8A2d4675d50F06e226", "Reputation": "0x223C166efAFfcc584F8E496b25061d5ED19408ae", @@ -839,7 +839,7 @@ "arcVersion": "0.0.1-rc.28" }, "0.0.1-rc.29": { - "name": "Jejune Coppersmith", + "name": "Caustic Carnival", "Avatar": "0xaB7709b97eA9F29564BAbcd23909c5B991d29231", "DAOToken": "0xA6c4EF318ea12460A4e99b07AD8826b4479bA979", "Reputation": "0xBA41f03Bb75B78Ae9e038F04F5Dc7F72aa47E56F", @@ -878,7 +878,7 @@ "arcVersion": "0.0.1-rc.29" }, "0.0.1-rc.30": { - "name": "Feckless Colorist", + "name": "Insidious Senor", "Avatar": "0xdFe079B58d06635077D5c207A54b948b61AD1e9A", "DAOToken": "0x3537720e7aC2Ef4ec2D87C740A1C69c469aab064", "Reputation": "0xDdA4357A7Ae177FB73Ac86f3A5F254797637d359", @@ -917,7 +917,7 @@ "arcVersion": "0.0.1-rc.30" }, "0.0.1-rc.31": { - "name": "Lachrymose Chair", + "name": "Tenacious Stick figures", "Avatar": "0x76685Ce842E73e1a40F37C5c7a461686FA1b8845", "DAOToken": "0x9672159725e5936843b83B39CDDCc629d76b139F", "Reputation": "0x744f1f6cC092C7386cB1799392c8779F877a7572", @@ -956,7 +956,7 @@ "arcVersion": "0.0.1-rc.31" }, "0.0.1-rc.32": { - "name": "Adamant Opera singer", + "name": "Calamitous Circus", "Avatar": "0x98CcB5051fD767e2E89567bCCCA4Efc532250544", "DAOToken": "0x30dB4905b474aff3e1EAfc60394ece85dC524A92", "Reputation": "0x4992595a747d772bF291f64112735064BFc8878f", @@ -995,7 +995,7 @@ "arcVersion": "0.0.1-rc.32" }, "0.0.1-rc.33": { - "name": "Invidious Penciller", + "name": "Fulsome Kazoo", "Avatar": "0x2268317B403ADEc49Fde9241a977335aba406A55", "DAOToken": "0x78B7beA9fB68616E4520DC2F522833616f6413d5", "Reputation": "0x0819C56Db86FbC6Cb3e0ef63F7DF0c4d5e60d915", @@ -1034,7 +1034,7 @@ "arcVersion": "0.0.1-rc.33" }, "0.0.1-rc.34": { - "name": "Rhadamanthine Make-up artist", + "name": "Hubristic Silversmith", "Avatar": "0xdaBdF92D1FE4c7dA414c570a880eAf640d4a4579", "DAOToken": "0x7743ae18888Be1692358aABA3EBb69c3b16852c3", "Reputation": "0x8F9360CD85bF1364A4515f020600358Cf512b2e8", @@ -1073,273 +1073,273 @@ "arcVersion": "0.0.1-rc.34" }, "0.0.1-rc.35": { - "name": "Dowdy Colorist", - "Avatar": "0xcf13fFcAF78259Ab49714A4634a9a518Cd2e30e9", - "DAOToken": "0x89cdFe95c4E16220028D14FC88516Ad7A09Ff130", - "Reputation": "0x5872024e06a7bB0C55E64BC6D0a84318C9C7113b", - "Controller": "0x791c19214A6b01a58928A82678cb294504349c5D", + "name": "Adamant Senor", + "Avatar": "0x0D620d76446e84954d158f8a06FC2454FEA72208", + "DAOToken": "0xbf660A83C7DeB994884e0bEE70A63eB9f2D681a6", + "Reputation": "0xb9c0b9b4264A9DFCa10f19A4dC60f8A1A5672303", + "Controller": "0xfAee46129Bd678EcD33EADf50677b4aF52d78F6E", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0x02a01FD7431F457380eBDAa00A4f5bDFA3e751c4", + "address": "0x75FDc3D0415ac6EF34A4B619dc376aa0Bab66284", "arcVersion": "0.0.1-rc.35" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0x49Aec747d48b443aeDC8d70d0f3dFBc6515C7e8A", + "address": "0x02a01FD7431F457380eBDAa00A4f5bDFA3e751c4", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0x4A6010cf9A8f142034CA14fd802ec7372D498150", + "address": "0xC565D008100a9A3d305cD08c3119582e822c88A9", "arcVersion": "0.0.1-rc.35" }, { "name": "ContributionRewardExt", - "address": "0x49Aec747d48b443aeDC8d70d0f3dFBc6515C7e8A", + "address": "0x02a01FD7431F457380eBDAa00A4f5bDFA3e751c4", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0xC565D008100a9A3d305cD08c3119582e822c88A9", + "address": "0x556D3670880C7e0E55cA1A87185B35E8424B2b4d", "arcVersion": "0.0.1-rc.41" } ], "arcVersion": "0.0.1-rc.35" }, "0.0.1-rc.36": { - "name": "Lachrymose Unicorn", - "Avatar": "0x46e342972535e15776Cf31f9407975f3E8A4078c", - "DAOToken": "0x1f1DFd38F0cc6C1c7d2516d9aA9f99a4192C7249", - "Reputation": "0x3AFEebAb0eA2D0A31BB882d3C1a6B6f0C8dE4859", - "Controller": "0x9Ef023Ca8D27076b6b3823aA1108E0f03bfF9800", + "name": "Jejune Statue", + "Avatar": "0x81195CA782a83DEc3255F4c626fBFc8FfDFbFF2d", + "DAOToken": "0xF67d08F2c54ad41dEc7E438524A2069412bEbb5F", + "Reputation": "0xF82Fd9D7cb7BfC8d46e905cB50d5090ef028E384", + "Controller": "0xD84A00Bb661Feb63B4149C1cE4A91E7B0DE19A5a", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0x38d2AD56A9F589c2d6f0a330291F79BfF9B13C6d", + "address": "0xdBE36A7251e7564b4fE86c45EB1Fe8B7C832Cf54", "arcVersion": "0.0.1-rc.36" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0x68c29524E583380aF7896f7e63463740225Ac026", + "address": "0x52538ef9Bf93187C0AcdCddA27610d0f81A17227", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0x9AD84A087C55F61e116df9A8c474703E3D58c536", + "address": "0xffF3D978a59b8c5Dba74833C92622985E2d975B2", "arcVersion": "0.0.1-rc.36" }, { "name": "ContributionRewardExt", - "address": "0x68c29524E583380aF7896f7e63463740225Ac026", + "address": "0x52538ef9Bf93187C0AcdCddA27610d0f81A17227", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0x4b7284ac4714e27F9098c57F54306ed74454D05F", + "address": "0x978D9248Ae3E19888E0a86eb14AF53A4d9415070", "arcVersion": "0.0.1-rc.41" } ], "arcVersion": "0.0.1-rc.36" }, "0.0.1-rc.37": { - "name": "Dowdy Dragons", - "Avatar": "0x66301c44C22E0AEcd8ee8e6073A8300dC138A7af", - "DAOToken": "0xa6b58AE81c37b45BbeAC4C86866fA4b48e378139", - "Reputation": "0xB9e9DfAcb27f42357215aC3942810786C0cb75e2", - "Controller": "0xf577703d169b02e6807f80a4fCe029f7F91124CB", + "name": "Fecund Cupcake", + "Avatar": "0x11f17Ac53c784e93868e7F13a3080dab181936B3", + "DAOToken": "0xc95c3fD30ABF3A146126fCfbe0D3aC74E382E9bB", + "Reputation": "0x0a445C55aA2E735792E205cC6f5bBCAaF0C564E2", + "Controller": "0x727834Af1E8b6D4c24d6aB5dcDEbFceeB8A7f81d", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0xCE792fA3A9cd660fFD1be077CB1358A08Cf9106B", + "address": "0x8eF6c58e894F525C4A382c0202b2046fc4eAb4FB", "arcVersion": "0.0.1-rc.37" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0xA10f1c26d7D4BCB1a93F84652177D2E2b320378B", + "address": "0x6ff58D7EeaBBDB4F3029b94859fc6f179E2ef914", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0x0E1598278e34793C83A4B1989d410DD0D7652b92", + "address": "0x9D3EB4C2906BB096af6a23B3dA2bf8583d521741", "arcVersion": "0.0.1-rc.37" }, { "name": "ContributionRewardExt", - "address": "0xA10f1c26d7D4BCB1a93F84652177D2E2b320378B", + "address": "0x6ff58D7EeaBBDB4F3029b94859fc6f179E2ef914", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0xD65d9Cb0fC54c95Ed021D74cB5164b5B30bB4B86", + "address": "0xc95C11783f1443417D66A32C6Ddb97B48554c07B", "arcVersion": "0.0.1-rc.41" } ], "arcVersion": "0.0.1-rc.37" }, "0.0.1-rc.38": { - "name": "Fulsome Sawfiler", - "Avatar": "0xB4338a1DAEf80472C9a8041c3dEE03239a8a5ec0", - "DAOToken": "0x36BA4e706327BC6bcdd5511f5799A7F46d0dA5Ad", - "Reputation": "0x7e075b685A85492d335082bF12EE7CCD06A2b15c", - "Controller": "0x30553AE4b803DbDDc8873d5Fc972e0fBfbDaE46D", + "name": "Incendiary Unicorn", + "Avatar": "0x87DED286b1D2a3B6E815E0963f5f620dC1537102", + "DAOToken": "0xf4896584207dBE85704eA2dab6d5962f799147b8", + "Reputation": "0x78bEa62d758cC8e3d6Ca1270c124317c7e4C15Db", + "Controller": "0xc70746927C7C0CCC4Ce036C7F7c78aBEFb3Eb08B", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0x620610Cb5e4a3e2439807682DbE92246Dc256cE3", + "address": "0x5a4509d679F1022bBDbe41ea4E85d7FA9eEBD0f8", "arcVersion": "0.0.1-rc.38" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0x97d3dB2767855540b5e290E4Fa931950853875F8", + "address": "0x02851b6fcA1cF980Ba841a55375367f5E8Bbe279", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0x4f89E1754c066e79b30954ED0FFE0AD173D63250", + "address": "0x73530F673B829B58CfFeb23d4809a4179f60367B", "arcVersion": "0.0.1-rc.38" }, { "name": "ContributionRewardExt", - "address": "0x97d3dB2767855540b5e290E4Fa931950853875F8", + "address": "0x02851b6fcA1cF980Ba841a55375367f5E8Bbe279", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0xb30796E3d96aA720F7c478e32eCD8a7c97335f54", + "address": "0x87d71C91b565A5283116F4FA0bB2F2F4fcFFd6d0", "arcVersion": "0.0.1-rc.41" } ], "arcVersion": "0.0.1-rc.38" }, "0.0.1-rc.39": { - "name": "Arcadian Ukulele", - "Avatar": "0x69c348135B7540cfdCeE5E19CA5A20C9d13a83E8", - "DAOToken": "0x98d97291de7dE044e1D60f75ace66baE1Ba7cd40", - "Reputation": "0xCbc18888E47C555cdEf4D8C68cA90BcABCdA04B9", - "Controller": "0x31Ccfa6E061df478f1af147c3E860D5f113A9346", + "name": "Querulous Carousel", + "Avatar": "0x4e9DFad785D642EF2f966c242EF328fBea225fec", + "DAOToken": "0xB311A08772220a349e8cB903FA7f2bFf6cB9F735", + "Reputation": "0x037A757D548A9000261a943d5D667FFbBCE0e064", + "Controller": "0x1C319b425C92c06A7772943Fdb8862d507a965Be", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0xd4e21e63A431a3D1e8c1886c8c355c6dc800e194", + "address": "0x3aa0198aA707BF4b65e665BCBD79D113bde43039", "arcVersion": "0.0.1-rc.39" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0xD54f2D5dDb3c1b89AB1458F8e4B35FdbD0be58f9", + "address": "0x85d56b293360242dDa394F42E2a33D2bd03e1390", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0x7CD480523bec017c726D0555FAED58b525a7C568", + "address": "0x8Ca4a35D4502b9BaE0d0b509fc251432b2cd059d", "arcVersion": "0.0.1-rc.39" }, { "name": "ContributionRewardExt", - "address": "0xD54f2D5dDb3c1b89AB1458F8e4B35FdbD0be58f9", + "address": "0x85d56b293360242dDa394F42E2a33D2bd03e1390", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0x872eB3D8E034DF7450be1A5FA266b7C38074e3d5", + "address": "0x6e53f989d2816724038E1a9f72825173C6B7b068", "arcVersion": "0.0.1-rc.41" } ], "arcVersion": "0.0.1-rc.39" }, "0.0.1-rc.40": { - "name": "Bellicose Shop foreman", - "Avatar": "0x33c411F5C9065a290808BFC15E7FACdD34F6e715", - "DAOToken": "0xc9eB43e5eEf58AEC353Cb5fA459dB5e2f9bf40eC", - "Reputation": "0x13D78B478C18c6b9E7C76459cC22B737A375F53e", - "Controller": "0x554cE50200822AAc70DaC3d4dD6D747a16E3134b", + "name": "Turbulent Kazoo", + "Avatar": "0x906F4739C12a6D3BFef5f97c9E3E128f277b3AaB", + "DAOToken": "0xf561AC6f3FD7FBdaC6707B91C18D476D6993C79a", + "Reputation": "0x43FF27E246661850ACd8f402A3E97883EA2580a8", + "Controller": "0x750D56d5730aC434CC67Cf260Bc130C4cf7Be602", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0xd60E1d268431DC9BddA1C1e1D8A93e898bC99657", + "address": "0x8402AeAD7a85b9934ede2a2558C195da08886A9c", "arcVersion": "0.0.1-rc.40" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0x95677d0125645055c6EfAACd0C7480945e729A83", + "address": "0x005D5ABF6A4A9e9aa25638dcb7a18eEF0675b20F", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0xfe8FCf4A155B3b4Af14C834Da36c4b394ABFF15f", + "address": "0x66e2ffa5FC2c5B3A9691728bA5f82eaA02Fe96Af", "arcVersion": "0.0.1-rc.40" }, { "name": "ContributionRewardExt", - "address": "0x95677d0125645055c6EfAACd0C7480945e729A83", + "address": "0x005D5ABF6A4A9e9aa25638dcb7a18eEF0675b20F", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0x916568cCcBD9967f0c0BA2a319b571F61a39FF8D", + "address": "0x9504876c1835B286bDE7e26d660094Ac353D1F3D", "arcVersion": "0.0.1-rc.41" } ], "arcVersion": "0.0.1-rc.40" }, "0.0.1-rc.41": { - "name": "Pervasive Hot air balloon", - "Avatar": "0x5951c93dCb47068fcbe1AcE235B2ea625d9823a5", - "DAOToken": "0x820FbBC729B157f91CA5C2659aF2971C766e6A4b", - "Reputation": "0xADb82bc43A7e402f40E1F166FC238c849791A928", - "Controller": "0xFa4F3a023874075Ae061de75E7e0E82a66ED7f1F", + "name": "Inveterate Apples", + "Avatar": "0x1EaddB8b4095320cf44cEE3448ac73eeCD9A2D6D", + "DAOToken": "0x375f4ecc738EE3175FA00F5bC13a47DC15AbeBd7", + "Reputation": "0xcBDFAB17efb4F1b5cd3B05615D7e32415fa80d10", + "Controller": "0x923F16917b0929CC08F5Fa35113F3e207aEE4fB3", "Schemes": [ { "name": "GenericScheme", "alias": "GenericSchemeAlias", - "address": "0x49f4dc93c37949C2c682c94700547C7EcE44C439", + "address": "0x158CBa029dE5D141f0e6e264de7b4F22C1c6A700", "arcVersion": "0.0.1-rc.41" }, { "name": "ContributionRewardExt", "alias": "ContributionRewardExt", - "address": "0xC94424eb26839a2B195eBb7230f7a43C00F20428", + "address": "0x3f63362ef1a187dcec09C5C951DB47be3FddBF11", "arcVersion": "0.0.1-rc.41" } ], "StandAloneContracts": [ { "name": "Wallet", - "address": "0x492D7121bc673a2acAEc76C57531ee6E046ffdBd", + "address": "0x12eb8682598481A2AEb01F86B3d9DBF00291Ef7D", "arcVersion": "0.0.1-rc.41" }, { "name": "ContributionRewardExt", - "address": "0xC94424eb26839a2B195eBb7230f7a43C00F20428", + "address": "0x3f63362ef1a187dcec09C5C951DB47be3FddBF11", "arcVersion": "0.0.1-rc.41" }, { "name": "Competition", - "address": "0x218DFb4f7295FE4f0B6cF64AA7121F60Ea36deDa", + "address": "0xd5484bb1F891023ABC512902d6F5949E3AC063e4", "arcVersion": "0.0.1-rc.41" } ], @@ -1348,7 +1348,7 @@ }, "test": { "0.0.1-rc.16": { - "name": "Turbulent Unicorn", + "name": "Pendulous Locomotive", "Controller": "0x5fD287667AC7D13161648e82dA6e8B8A3C9Bc432", "Avatar": "0x86e9Fe552E75e4Fc51f46E4efc128628eCd5ada7", "DAOToken": "0xeA4eB8B837F0f5B4d43259e5FAB1Ce3761869D2A", @@ -1366,7 +1366,7 @@ } }, "0.0.1-rc.17": { - "name": "Serpentine Model", + "name": "Luminous Coppersmith", "Controller": "0xe7b32ffbB70Ba2547448853522587e12f5011D33", "Avatar": "0x1A81131312053b3c6D5083F9eFdCEEb22D5870ab", "DAOToken": "0xbE206e6eDcEe7D7897931625C47aa42c58395e32", @@ -1384,7 +1384,7 @@ } }, "0.0.1-rc.18": { - "name": "Taciturn Pancake", + "name": "Irksome Plant operator", "Controller": "0x58795F353CC21F6F2CFda45d1e91448F28945B34", "Avatar": "0xFEC6305AD86Ac6db7E046Cc3cA8690d14417d7d0", "DAOToken": "0x845eC6beBd93c846E357AF59c05719B0CB9840cc", @@ -1402,7 +1402,7 @@ } }, "0.0.1-rc.19": { - "name": "Intransigent Wheelwright", + "name": "Tremulous Musician", "Controller": "0xB2fAC2146a011695aa091D2992CCB79dfE3b659D", "Avatar": "0x1f950c73E060895603ACdA49457bC8F1Ae6cF53D", "DAOToken": "0x530bF5d1AD8e6F6D684e9372fe690d4f1bF477c8", @@ -1420,7 +1420,7 @@ } }, "0.0.1-rc.21": { - "name": "Noxious Beets", + "name": "Gustatory Gnomes", "Controller": "0xdB8036a9608E461fA1e0DCB87902e3695f5c9e21", "Avatar": "0x1E162a93a643B40C024Dd196bAD047fAd2a157eB", "DAOToken": "0xDa315DE8F4069640edCc98EafbD5ADBc7dE39D7A", @@ -1438,7 +1438,7 @@ } }, "0.0.1-rc.22": { - "name": "Calamitous Model", + "name": "Wheedling Statue", "Controller": "0xFC24406F0F0B135334cb5CA6997F3Eb358bc07BC", "Avatar": "0xF57B747d9885CabC5a223788021A185E6923FC24", "DAOToken": "0x0E931177e3D90CAeF51230c401FA1C1Ce1D25900", @@ -1456,7 +1456,7 @@ } }, "0.0.1-rc.23": { - "name": "Equanimous Beets", + "name": "Tenacious Moldmaker", "Controller": "0xdc17b28C3884b854604c772dAaACA14B8c85ef15", "Avatar": "0xE94935a3732e72b3197Ff66f02Fc7f47a2b5961E", "DAOToken": "0x637F81F34E9d82cd70e85B47FbAdCB211E689EF0", @@ -1474,7 +1474,7 @@ } }, "0.0.1-rc.24": { - "name": "Fastidious Circus", + "name": "Munificent Glitter", "Controller": "0xdc4106Cf59B9B7C6D442894E17b4b23680AdAf35", "Avatar": "0x2DD23bd966A37973BAd3cc1158814EDc996E1a27", "DAOToken": "0x564B1e7c312cceAC9CDb90Ab7DDeE7fF495C1e25", @@ -1492,7 +1492,7 @@ } }, "0.0.1-rc.25": { - "name": "Loquacious Salad", + "name": "Rhadamanthine Opera singer", "Controller": "0xf8B22CC13EF46b39281200671d88a37beE6c3930", "Avatar": "0xAb861111C10638055b0C6d862A1c5b8BCD584ff2", "DAOToken": "0x25945954FA18BBa629B9D3c40a402defe36b2649", @@ -1510,7 +1510,7 @@ } }, "0.0.1-rc.27": { - "name": "Invidious Musician", + "name": "Turbulent Plumber", "Controller": "0x3359bdA8399D1513517e56415Bbd2ba983CC52E2", "Avatar": "0x67c774138ba6FEeDA753300F0a76364F4C083e2a", "DAOToken": "0x920BdEd24D5338Bf62a083315432F59Bb5137EDD", @@ -1528,7 +1528,7 @@ } }, "0.0.1-rc.28": { - "name": "Rebarbative Colorist", + "name": "Verdant Inker", "Controller": "0x9A66Baa636cf4459A2ce4c2780DA20F42d3c6588", "Avatar": "0xDd80Cb1022f15242D5F4978a4DD537E1c9765BC4", "DAOToken": "0xDaF3507197971C87BdD4C9c74513029705F32F8F", @@ -1546,7 +1546,7 @@ } }, "0.0.1-rc.29": { - "name": "Precipitate Hot air balloon", + "name": "Invidious Designer", "Controller": "0xCc6C17c72C7002FB063D3f0B4398D303af7B021F", "Avatar": "0x49dECA103B283035709104474A1A641098eBA98d", "DAOToken": "0x8eCB241941E524e97eFfe6Ce891875704280DE49", @@ -1564,7 +1564,7 @@ } }, "0.0.1-rc.30": { - "name": "Salubrious Animator", + "name": "Lachrymose Toejam", "Controller": "0x4D2F3dc4ce71268997cB2adb98c597ADe0c5Dca6", "Avatar": "0xed73843fbDfF5c94e6a66E1585AEF681f874931D", "DAOToken": "0xf598Bb7f8410Cfe98f05Ce2D12b1fEEede8C53ab", @@ -1582,7 +1582,7 @@ } }, "0.0.1-rc.31": { - "name": "Heuristic Make-up artist", + "name": "Platitudinous Carousel", "Controller": "0xe43e65Abdd48DfC507C34c2504b84708347c688A", "Avatar": "0xe396457AB019a86C0d9df3155b1559b0AC27ccB9", "DAOToken": "0x48cbEcEf0A072646E27250c62372C581281013F9", @@ -1600,7 +1600,7 @@ } }, "0.0.1-rc.32": { - "name": "Dowdy Panel beater", + "name": "Pervasive Artist", "Controller": "0x423e872e7801a490752248f3B41399A10E5c0a84", "Avatar": "0x39f1f0BDb1c50f5DD5Cc11C8251590dd7bA84E07", "DAOToken": "0x00721Ce485e83b6BbdFCa9B7538CBCa488dE9701", @@ -1618,7 +1618,7 @@ } }, "0.0.1-rc.33": { - "name": "Intransigent Chair", + "name": "Tenacious Soaper", "Controller": "0xF52dBA2E4637f62Ca0dc69Ded1561e76FE5CE262", "Avatar": "0xe538Bd95f5832021b2a94562A069b014b5Cd8e54", "DAOToken": "0x854F875B42AeE3F2D20B467512BF719D50e391B0", @@ -1636,147 +1636,147 @@ } }, "0.0.1-rc.34": { - "name": "Voracious Leadman", + "name": "Redolent Trampoline", "Controller": "0xbb4C09489256Bb3b236c2f528f3C23f55a8bF8e6", "Avatar": "0x299A9830026802c3e97AFC1B32c900892422a40c", "DAOToken": "0xbBFec9749f8c5Bd5Af8f1F5cc9AAC005308479d6", "Reputation": "0x98C3149381e375d14fd3A72edf375C0DCA4550fD", - "ActionMock": null, + "ActionMock": "0xf56Ca75Ac4EB296978Cf3773caA5d52FC57a9FE8", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", "queuedProposalId": "0x3ab7df8783a69ad88ebb945c3deb8d96955db6b593a827afa39250664be3dc2c", "preBoostedProposalId": "0x9ba6ee7806a0b43175b37c9a89709dc4269c236293421ddf9847823a4bff6e14", "boostedProposalId": "0xc740bdeac3fce3970434b448b2055229a611bfefa199f2ee0c95e2e29135c1af", "executedProposalId": "0xa3ddfeeee1132827f5152542f222f7118b9e18360159836123562a22706b8baa", "organs": { - "DemoAvatar": "0x3E79B9B49d9CA8957B0faF6EB283fFb68b87E759", - "DemoDAOToken": "0xD8109358fd1bb6C369b2962ABDDEDA5E5D0B1ceC", - "DemoReputation": "0x32A357Df0aBA1b0dAD892a2d36fA9D63fB02C777" + "DemoAvatar": "0x64B0E9F16884F483e5182A15f0e7B9eC78461C0e", + "DemoDAOToken": "0x0eAdc321E9307076823fC7c1AF1c45d54f5e7F18", + "DemoReputation": "0x2a6AEdad496B1E76E7C5Fa9948216D38Ca7EC3bb" } }, "0.0.1-rc.35": { - "name": "Feckless Miller", - "Controller": "0xf222263310f73973528D283Ff50260870e82c17B", - "Avatar": "0x489e74dfD725d40ab051d1abB9881AD7c7bfe24E", - "DAOToken": "0x7b7823Ab27C82474DA21C1AE33439036df74a188", - "Reputation": "0x76B0603CC68D92F251cD37b92a358A003A5c2aAd", - "ActionMock": null, + "name": "Didactic Coppersmith", + "Controller": "0x8f0BB7767b2b247c049B05775Cb7485F0A2a7f59", + "Avatar": "0x8bCF92B3eD2D1A0190117f74f7eA473e6F8e4F14", + "DAOToken": "0x2DAdAE3Eb25AD2F2690b54C6BFd32b1c7F4BeaEa", + "Reputation": "0xf21635181C3D9E18FF48194B094A254DAA8Eb7F7", + "ActionMock": "0xe8DA818c69Bdd2caebEd5175A2155394Cb7Aab1a", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0x8e34aa2be75c9d2609ed1c11a24a430936c0a0151c3bef4e30ae6c67feef829d", - "preBoostedProposalId": "0x13355b6b7ae7dc075b9f84be39d3b63cb1daba0fdb028357f63b6a0060584575", - "boostedProposalId": "0x3a1803c555a563d2c6d348cf964db3013e3fa01808efc4c521eae0ebffd2ee9c", - "executedProposalId": "0x698de986e4166831fb742a0a40970aeb4196fc931fb9efca98bcfaaa98e838f2", + "queuedProposalId": "0x46dd19bf15d8513c6a3a92d3b9a8b3b80e201cce7ef0b4b760bc1ce7bbf2d592", + "preBoostedProposalId": "0x807eb985189f8562e67f267a5de0d2e161bb8fb118794e80c27121b437060cd3", + "boostedProposalId": "0x3c96ffb967c822aaadbeb8f0d4412b9a294d3e2ba864c37f178cf41ae1989129", + "executedProposalId": "0x41aebbf3e5e8766f2614a7cc1b68d3eb279ef9d2384f3d0ab963d2e430060d23", "organs": { - "DemoAvatar": "0xD651232e84AcE01964f7c1998d09A99F2269D215", - "DemoDAOToken": "0xac47009E1D5f9CBA3054B13b8d3d34FcE619bb48", - "DemoReputation": "0x1fbF3e5B4F4A8b1A4fB8128FB8234A22D2d4a148" + "DemoAvatar": "0x95ff7c914fE6f2bF70A3aaDFf4B8ab2d4E907555", + "DemoDAOToken": "0xf99b692CC1A3D79698B0161995EcF8eee3754744", + "DemoReputation": "0x36C385B809849B3db2DF51fE13D22703587F0739" } }, "0.0.1-rc.36": { - "name": "Petulant Captain", - "Controller": "0x7ABA0dE52f0CAB1b93Ee8819b1433B3ee20267e7", - "Avatar": "0x94D52415f187f530A105A275E8f4e0d34630d9Ea", - "DAOToken": "0xaB2017e35bF393439cE72cAB76FC36656dA6df68", - "Reputation": "0x03e62604bF00FcfC8BE6ABa4858749112c0ea13B", - "ActionMock": null, + "name": "Baleful Opera singer", + "Controller": "0x890d8787924e8Fb59d0Cad0d54c923566a610032", + "Avatar": "0x3F73ad9e8275DeB5C4e2EA423109f3892c44C30D", + "DAOToken": "0xbB860ca548eaE3D65C6879c3173Aeb97b915cD13", + "Reputation": "0x1553EAa2FDB3F1a2eaF7775BcBc29443645aFBfa", + "ActionMock": "0xCEE49e7eBB1A252A0194B19f1Eaa23a7641fCeFC", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0x8a5bd0300d1de58702ec8dd8b56b136dbc2db48141809e16ba163d9c33f7ab37", - "preBoostedProposalId": "0x900049eeab363cb8e81f36da133d49402a1e51c1f9d7d6fa9d50575722cb41d6", - "boostedProposalId": "0xaf3d62abcb1b2af88e17ec088c94ed6b39a5eb255f51f69d72cb5b9c3917cee5", - "executedProposalId": "0x4216e0ac18cd249634aed900343a05b7465b80fac0842d1f0745d764c0b52358", + "queuedProposalId": "0xb58c37a8d554637fc5613f89ead0bf0c9946e168f00b32e51b5b735b334c969e", + "preBoostedProposalId": "0x9e3f8496a208dd13365017562f55bfc25fd3cd14e8d617c23350a3ce926cf4d7", + "boostedProposalId": "0x9bddff62f060e29e729cdde4fb64b6f2e116c880709f73d767ef7c52b28df14e", + "executedProposalId": "0x9ad26293f9220b0db9c7fe880d2f14b5d7686ecd93fe8b7f0143f39748e6a6d0", "organs": { - "DemoAvatar": "0xf0EC0F1D6B72e8ea59981612A60fe09F08C45A5F", - "DemoDAOToken": "0x56EAf60c7C0e7Bb37C9A7Dff9282A1F75e4C9556", - "DemoReputation": "0x44dBE331b33Fb7e6cECB673F2520c39AD5a6505b" + "DemoAvatar": "0x9B8dF962ac65Ff2C08803443Cdbf30B60c633DFC", + "DemoDAOToken": "0x4630E1AE57E0635c029a8A21374Dd210d02d830e", + "DemoReputation": "0x8653C1f78fa712313C4921A06CFDEa5592C32E84" } }, "0.0.1-rc.37": { - "name": "Propitious Bushes", - "Controller": "0xE9455028a806390b485345cacd9Cba1F7B796BBc", - "Avatar": "0x7c254de434068955e83B18dBe42Cfac0D45c40eE", - "DAOToken": "0xEfFa217877691B998B5bA8aae6BB1517A511A09e", - "Reputation": "0x6122c6D4E2BD56e1CF1c67C329869EC1E1Fe55f9", - "ActionMock": null, + "name": "Obtuse Artist", + "Controller": "0x32Cba7Cbeca0AAc11E9B9BF572eB4346D5d5B128", + "Avatar": "0x0cf91418874F7961A94e2d407f909F2E6f1F3726", + "DAOToken": "0x38564514026A0eFD925A0EEb6E46595dCCD83957", + "Reputation": "0xaB689080f205D3F701D12BDC6dDe3a965d1f2761", + "ActionMock": "0x99750Da185B646E56DdBDc80dd3263e2166bcb3f", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0xcc9967b8f74d3f1c52a0a15f7c7d6d89b6a3081b4316989a0f08add019f8e58d", - "preBoostedProposalId": "0x1cb838545ab024a95881d3c278629a1da3bb2bc450d89bfc2a0969086ebc2ca2", - "boostedProposalId": "0x5a12b884ab1f398b3e782ab280548b4152726309522793940899b8b7ac4e0feb", - "executedProposalId": "0xf13824a4cce7061d2c7ee070edbab5dd917db7ee0f696934e2d56e751313b5d0", + "queuedProposalId": "0x3b2e44a7750a68608c749b079cf8eb483c55326ce75d794ece82b88328c843f8", + "preBoostedProposalId": "0x1a65f757f2b0e4d2b3adc13f12f3157c96e556ccbc8d35e555618dea0bd14ffb", + "boostedProposalId": "0x409c653ba1253f356ce6842d741eb8fa5649acb20db2743e24f0194eacb59818", + "executedProposalId": "0x99a6049c8a755ec0e5b7bf3e8a3afcbbd1e2b9c6b42d6e6c85d446f1d017f7c9", "organs": { - "DemoAvatar": "0x2877c3987aFd071678049AB752fE7a4F72e1eA8b", - "DemoDAOToken": "0xA06874181879E7fd79Fa1B8e7B1079dA9502B8B5", - "DemoReputation": "0xe3EFb597876088E2e72d45F3A9Cbb05f8a90D8f2" + "DemoAvatar": "0xa818a2De91D84F6e045a95E9EF9eD2B20C6202FD", + "DemoDAOToken": "0x8B1226fCfc51bf2344F2F99C6A5aD984F5176DdC", + "DemoReputation": "0x00bF1ca60263EDe30a11D9e4583C61BAE9178cA3" } }, "0.0.1-rc.38": { - "name": "Invidious Flatter", - "Controller": "0xFC708792F66ee36D86d3938074C5ef5a27242d93", - "Avatar": "0x615238c4AF1301ECbDCA429AfBc7F9BbBA5b121c", - "DAOToken": "0x91c05Ccd82B17eB1DF2038c1EcEB98caBEebAfB9", - "Reputation": "0xE9555d00FDC3BA24FE0419f784A0D9cce9A2bc4b", - "ActionMock": null, + "name": "Adamant Stick figures", + "Controller": "0xa3268826e5e34E657E87A524B98f7207B00D0741", + "Avatar": "0x0a880a2A9c54fce5263A35C8E9E32a5984c16701", + "DAOToken": "0x7b0B9b8c83c9091aCbEF1DBafdD561F1F905cE27", + "Reputation": "0x48772Fe4D485791F18035D3aF4943C29A7DE5dc0", + "ActionMock": "0xf2e197EfC8EBb2e399948F71a51d624E60019A09", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0x978c57fe237b8b2a1c622e457de38805dae4052b8a20ef365648de7d22bf4587", - "preBoostedProposalId": "0xb87cf56526599ede489a73ba75e3d25e5a3499d92708960b71c89d6a467fee53", - "boostedProposalId": "0xdef44cc8e8c9e7fc536cadb78e5302448161eaa16e317928cd093ffd2bb81021", - "executedProposalId": "0x35eb949cfb72acc93dc374cc37ba569ac111ce758f3f56b7accffd02bcdbf862", + "queuedProposalId": "0xa2b84e54ff9359c61371f16dc489191ca9ed5f75dfac27e932e1c1a6047253d6", + "preBoostedProposalId": "0x9bb0162da6763dc824e8e0d6ce316b172a52717bfa9a23be4dad1cb2f20f1a01", + "boostedProposalId": "0xecbc7047bc435bbad0736fc14600b157552a6962693a4e6ba67d23f199d7efe1", + "executedProposalId": "0x542882bd91f3ebd8d82369939ba75f5ef57687ca3c1a4fcdc0174c5f29223ecb", "organs": { - "DemoAvatar": "0xf2e197EfC8EBb2e399948F71a51d624E60019A09", - "DemoDAOToken": "0x502f7aDF60E5CA61c2F8B8d76F4Dd9F5D188a04c", - "DemoReputation": "0x31D8fCA7Be48B59410d7fdBa67cac80C66F8d584" + "DemoAvatar": "0xE32f949F23d57Ff8A87670fc8126245C2F659029", + "DemoDAOToken": "0xBA7619DFA824A168fDD76a77b8236f83528d015C", + "DemoReputation": "0x2F662573d2Bc45E4eEb24E155aD8Fe4DB566946a" } }, "0.0.1-rc.39": { - "name": "Precipitate Exorcism", - "Controller": "0x9378AaB64F910ee3Ae5bFc99255381DFBac860C0", - "Avatar": "0xCE5146E169b558BF1E1ADbBdc04F6247BB64eEDC", - "DAOToken": "0x857B3d069842e0Bad4080e3C40253aEf79774740", - "Reputation": "0x528DE6aFe195c22a554dd57cb0cA2b9D895cf089", - "ActionMock": null, + "name": "Guileless Coppersmith", + "Controller": "0xb7918E21B8D91281D346A1d0570df07cC33CEE7A", + "Avatar": "0x44a514c340986ef37179A3e651BA6f5E7ef7Db1B", + "DAOToken": "0x01923531ccd2B7cFa967022aE1F2F6689959D423", + "Reputation": "0x56cadf98518e5D80330694E1F439aBCA2c2C6CB3", + "ActionMock": "0xFD22ac4045A030C280d4054AE6189FBF4E244B39", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0x20a3b4c24370066fd0793d2a7f42f39adaa364f459bf5a213d9de5142549d0c4", - "preBoostedProposalId": "0x28b64e7ad81934b497a9367507da14133be0579faef3cf9113acdc99244c1504", - "boostedProposalId": "0x522c36813ae11808eed9a7f943e2db3c773ddd3a3b73819d3ae7fcf50c458e16", - "executedProposalId": "0xb6377b598a858a5d38fe8d97c16a2819f99b376f0941824a9bdc2df7d412c8f6", + "queuedProposalId": "0xec6f765b5e0552c1b2994c1ee0d9e210e3c8b337fd532a8d212644bf380e32ab", + "preBoostedProposalId": "0xf0ba19078a89ef7f117f17c767014fd33e8a6fbf70b5e16a9295296ab081ed47", + "boostedProposalId": "0xf253863663fe5eb37e154761c8cec44bc569e4dfd9a0ab5e740ad85195832a41", + "executedProposalId": "0x90c650d6b37ac4e890aefb8c431c61f411c0de4fe57ebe43f80a63426c6e194e", "organs": { - "DemoAvatar": "0xF633F3fBBf679cde9cdaC74Ec94c16D6F8DaB353", - "DemoDAOToken": "0xabEd85c03fe5fb13e05959F333864071c5175050", - "DemoReputation": "0xBA8d6172dA1A00CF052194cB22fa465A0fcDD942" + "DemoAvatar": "0xe6d3035f2CEebFCA07D4C09F874c008DB5305C06", + "DemoDAOToken": "0x5088Fc39c95f3c83C0179B8109d016Cf86aa0979", + "DemoReputation": "0x0077de6E87A97b477b102B51576E9De2eF08A441" } }, "0.0.1-rc.40": { - "name": "Puckish Scenographer", - "Controller": "0x7dAa177987E2943F3E29Db107b4eBe792cCCf987", - "Avatar": "0x212b30468e0f35CC9CA5Df17C799EB0998C0A603", - "DAOToken": "0x5f53D98D73EcAbe1515046946540d64A46F061B7", - "Reputation": "0x07a2cbcBA255945DC551ABeADCf02765E0E0e59D", - "ActionMock": null, + "name": "Minatory Limner", + "Controller": "0x0EaC77287Dd23db0f06105Eb77a7762b372Ca461", + "Avatar": "0x37C42BCc7d15d7a039875a3ee017f7fa336D4DB1", + "DAOToken": "0xF5eD040C217EF58377aD4c17eD32ed97bE389a39", + "Reputation": "0xfA02167058C04e79dB45aBA00895166891517A7c", + "ActionMock": "0x2130De17060686a89F7318A7fFBd576779fF8459", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0x202003dbf97f40adb38b44c435eec787a7cdbfca0ba6b412c3ef87434372d0ac", - "preBoostedProposalId": "0x574f2e0fdb975291be5996e6af693d588a2d174dc0b121e4b91f06b679460c5e", - "boostedProposalId": "0x40c4d78a24364ce8eed919014147e6c85f421bc7c1db65f632f3504798e2e291", - "executedProposalId": "0xb74d067d3a9f8b328d5e5feefe8fcea1f7abfc29c2aa79e6e94489651bc39831", + "queuedProposalId": "0x24a2519c62de75ad343ab32641ea4fdb530ab50772ce1b30802fdbf5ebc518ff", + "preBoostedProposalId": "0x652de78ee84d5b860d104901370d154d91ff8fc38dfd4c6496021dbea1d2f889", + "boostedProposalId": "0x69f5f9e48a6968db3c022a7b81dd52340d8c849a09427c8e36d44b4449bf646d", + "executedProposalId": "0x61858be801fd9024fdcb76edfb67f1aa913257e27dfa16f13540acf933c0dca3", "organs": { - "DemoAvatar": "0x66Eed840100947B7C4889Dec32776b0188ba9B88", - "DemoDAOToken": "0x2c309a63827c941d704c0B155E39444A2d885755", - "DemoReputation": "0x4efAe7CE1C4EfCaa02E1DBb587F66e2a7483f993" + "DemoAvatar": "0x8B074eE849EB477191B6F49E8e05f6FDCE5B5a69", + "DemoDAOToken": "0x96Cc3ea46F59A1b6bf83081Ee41C9fA795fB46BB", + "DemoReputation": "0x00266082DE5E6CF65D12A706B817d315943aB9B9" } }, "0.0.1-rc.41": { - "name": "Ubiquitous Potato", - "Controller": "0x310258A9131a6450809a09c2cCc3400288F73888", - "Avatar": "0x02981eC0aEfE7329442C39DfE5a52fb8781e7659", - "DAOToken": "0x057D53A8EF8D0f328dE5a4270Ac2DD2344eCeFAA", - "Reputation": "0x010CfA8c168D6Cd548fF027E6c35c03D89769e7F", - "ActionMock": null, + "name": "Friable Beets", + "Controller": "0xdf4DeC78F721ef9764B88E63Cc2CD560a6d6D41f", + "Avatar": "0xFDFc8b9a9b9246271f0b676d5fBfE060eAf6C79a", + "DAOToken": "0xA7769B143bEBa1A2CB243170c6d27dBCE0BD4743", + "Reputation": "0xd2E3A0f10804DebF9380DeD62c56F4CC4fF5101a", + "ActionMock": "0x9E32124CbECC2460E54735D356C0CB5CA8C8AA44", "gsProposalId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "queuedProposalId": "0x02fd1079f9a842581eb742ea44507a461466b791c2990783732bfe660aa6a711", - "preBoostedProposalId": "0x1ab859396e79dd4e006402ffc29913a6ddeb5c51b328b39ee5102cd43e26856b", - "boostedProposalId": "0xc24269017413138c9eedfe0d00bd18e6eaeccfade0da1827c0c5278c68f860e0", - "executedProposalId": "0x61b6373346cecc2a10cf67042ca9ba1115c3d16f56e2a0033ba33107206240dd", + "queuedProposalId": "0x5194d27f4e26fdf02605f39751a6aad79b975f1961d1a45572e6a55d797540eb", + "preBoostedProposalId": "0x2e3951d80272d53d718a508aa8bf587c1919ea7624b8beb00f46e8fcc5bd6f91", + "boostedProposalId": "0x2857dfde5930ce07971d812c2d1f57fd8d7b3e29e72b35ce0904928b4ae22f0c", + "executedProposalId": "0xc0b79eb5f11b6615a69b34831db1ecbc4a3ab34aebe666a68cd6e5a8949fc25f", "organs": { - "DemoAvatar": "0x158CBa029dE5D141f0e6e264de7b4F22C1c6A700", - "DemoDAOToken": "0xd5484bb1F891023ABC512902d6F5949E3AC063e4", - "DemoReputation": "0x06D689c6665534Aa81dA58cA6D363989D6D92f0B" + "DemoAvatar": "0x67cf3CC4f17E46EDfB45e9A0c09B680E064bB52f", + "DemoDAOToken": "0x0E52A4Ac7aEA40Fbb0C2E7518abe98A91fd23203", + "DemoReputation": "0xb7fDB0ba6089BA9B878D1C4922666B93451d0Df0" } } } diff --git a/packages/lib/src/dependency/arc/src/sanitize.js b/packages/lib/src/dependency/arc/src/sanitize.js index f265e26d..0b02d375 100644 --- a/packages/lib/src/dependency/arc/src/sanitize.js +++ b/packages/lib/src/dependency/arc/src/sanitize.js @@ -1,57 +1,54 @@ -const Web3Utils = require("web3-utils"); -const Validator = require("jsonschema").Validator; -const validator = new Validator(); +const Web3Utils = require('web3-utils') +const Validator = require('jsonschema').Validator +const validator = new Validator() const requiredNumber = { - type: "number", + type: 'number', required: true -}; +} const requiredString = { - type: "string", + type: 'string', required: true -}; +} -Validator.prototype.customFormats.address = function(input) { - const addr = input.toLowerCase(); - return addr[0] === "0" && addr[1] === "x" && Web3Utils.isAddress(addr); -}; +Validator.prototype.customFormats.address = function (input) { + const addr = input.toLowerCase() + return addr[0] === '0' && addr[1] === 'x' && Web3Utils.isAddress(addr) +} const optionalAddress = { anyOf: [ { - type: "string" + type: 'string' }, { - type: "object", + type: 'object', minLength: 4 } ] -}; + +} const requiredAddress = { ...optionalAddress, required: true -}; +} -Validator.prototype.customFormats.permission = function(input) { - return ( - input[0] === "0" && - input[1] === "x" && - input.length === 10 && - Web3Utils.isHex(input) - ); -}; +Validator.prototype.customFormats.permission = function (input) { + return input[0] === '0' && input[1] === 'x' && + input.length === 10 && Web3Utils.isHex(input) +} const requiredPermission = { - type: "string", - format: "permission", + type: 'string', + format: 'permission', required: true -}; +} const genesisProtocol = { - id: "GenesisProtocol", - type: "object", + id: 'GenesisProtocol', + type: 'object', properties: { boostedVotePeriodLimit: requiredNumber, daoBountyConst: requiredNumber, @@ -66,132 +63,132 @@ const genesisProtocol = { votersReputationLossRatio: requiredNumber, activationTime: requiredNumber } -}; -validator.addSchema(genesisProtocol); +} +validator.addSchema(genesisProtocol) const votingMachineParams = { - id: "VotingMachineParams", - type: "array", + id: 'VotingMachineParams', + type: 'array', items: { - $ref: "GenesisProtocol", + $ref: 'GenesisProtocol', minItems: 1 } -}; -validator.addSchema(votingMachineParams); +} +validator.addSchema(votingMachineParams) const schemes = { - id: "SchemeToggles", - type: "object", + id: 'SchemeToggles', + type: 'object', properties: { - ContributionReward: { type: "boolean" }, - UGenericScheme: { type: "boolean" }, - SchemeRegistrar: { type: "boolean" }, - GlobalConstraintRegistrar: { type: "boolean" }, - UpgradeScheme: { type: "boolean" } + ContributionReward: { type: 'boolean' }, + UGenericScheme: { type: 'boolean' }, + SchemeRegistrar: { type: 'boolean' }, + GlobalConstraintRegistrar: { type: 'boolean' }, + UpgradeScheme: { type: 'boolean' } } -}; -validator.addSchema(schemes); +} +validator.addSchema(schemes) const contributionReward = { - id: "ContributionReward", - type: "object", + id: 'ContributionReward', + type: 'object', properties: { - voteParams: { type: "number" }, + voteParams: { type: 'number' }, votingMachine: optionalAddress } -}; -validator.addSchema(contributionReward); +} +validator.addSchema(contributionReward) const contributionRewards = { - id: "ContributionRewards", - type: "array", + id: 'ContributionRewards', + type: 'array', items: { - $ref: "ContributionReward" + $ref: 'ContributionReward' } -}; -validator.addSchema(contributionRewards); +} +validator.addSchema(contributionRewards) const uGenericScheme = { - id: "UGenericScheme", - type: "object", + id: 'UGenericScheme', + type: 'object', properties: { - voteParams: { type: "number" }, + voteParams: { type: 'number' }, votingMachine: optionalAddress, targetContract: requiredAddress } -}; -validator.addSchema(uGenericScheme); +} +validator.addSchema(uGenericScheme) const uGenericSchemes = { - id: "UGenericSchemes", - type: "array", + id: 'UGenericSchemes', + type: 'array', items: { - $ref: "UGenericScheme" + $ref: 'UGenericScheme' } -}; -validator.addSchema(uGenericSchemes); +} +validator.addSchema(uGenericSchemes) const schemeRegistrar = { - id: "SchemeRegistrar", - type: "object", + id: 'SchemeRegistrar', + type: 'object', properties: { - voteRegisterParams: { type: "number" }, - voteRemoveParams: { type: "number" }, + voteRegisterParams: { type: 'number' }, + voteRemoveParams: { type: 'number' }, votingMachine: optionalAddress } -}; -validator.addSchema(schemeRegistrar); +} +validator.addSchema(schemeRegistrar) const schemeRegistrars = { - id: "SchemeRegistrars", - type: "array", + id: 'SchemeRegistrars', + type: 'array', items: { - $ref: "SchemeRegistrar" + $ref: 'SchemeRegistrar' } -}; -validator.addSchema(schemeRegistrars); +} +validator.addSchema(schemeRegistrars) const globalConstraintRegistrar = { - id: "GlobalConstraintRegistrar", - type: "object", + id: 'GlobalConstraintRegistrar', + type: 'object', properties: { - voteParams: { type: "number" }, + voteParams: { type: 'number' }, votingMachine: optionalAddress } -}; -validator.addSchema(globalConstraintRegistrar); +} +validator.addSchema(globalConstraintRegistrar) const globalConstraintRegistrars = { - id: "GlobalConstraintRegistrars", - type: "array", + id: 'GlobalConstraintRegistrars', + type: 'array', items: { - $ref: "GlobalConstraintRegistrar" + $ref: 'GlobalConstraintRegistrar' } -}; -validator.addSchema(globalConstraintRegistrars); +} +validator.addSchema(globalConstraintRegistrars) const upgradeScheme = { - id: "UpgradeScheme", - type: "object", + id: 'UpgradeScheme', + type: 'object', properties: { - voteParams: { type: "number" }, + voteParams: { type: 'number' }, votingMachine: optionalAddress } -}; -validator.addSchema(upgradeScheme); +} +validator.addSchema(upgradeScheme) const upgradeSchemes = { - id: "UpgradeSchemes", - type: "array", + id: 'UpgradeSchemes', + type: 'array', items: { - $ref: "UpgradeScheme" + $ref: 'UpgradeScheme' } -}; -validator.addSchema(upgradeSchemes); +} +validator.addSchema(upgradeSchemes) const customScheme = { - id: "CustomScheme", - type: "object", + id: 'CustomScheme', + type: 'object', properties: { // TODO: verify this contract exists in either // 1. @daostack/arc/build/contracts/${name}.json @@ -199,92 +196,90 @@ const customScheme = { name: requiredString, alias: requiredString, address: optionalAddress, - fromArc: { type: "boolean" }, - isUniversal: { type: "boolean" }, + fromArc: { type: 'boolean' }, + isUniversal: { type: 'boolean' }, permissions: requiredPermission, // TODO: verify params array entries - params: { type: "array" } + params: { type: 'array' } } -}; -validator.addSchema(customScheme); +} +validator.addSchema(customScheme) const customSchemes = { - id: "CustomSchemes", - type: "array", + id: 'CustomSchemes', + type: 'array', items: { - $ref: "CustomScheme" + $ref: 'CustomScheme' } -}; -validator.addSchema(customSchemes); +} +validator.addSchema(customSchemes) const member = { - id: "Member", - type: "object", + id: 'Member', + type: 'object', properties: { address: requiredAddress, - tokens: { type: "number" }, + tokens: { type: 'number' }, reputation: requiredNumber } -}; -validator.addSchema(member); +} +validator.addSchema(member) const founders = { - id: "Founders", - type: "array", + id: 'Founders', + type: 'array', items: { - $ref: "Member", + $ref: 'Member', minItems: 1 } -}; -validator.addSchema(founders); +} +validator.addSchema(founders) const paramsSchema = { - id: "Params", - type: "object", + id: 'Params', + type: 'object', properties: { - orgName: { type: "string" }, - tokenName: { type: "string" }, - tokenSymbol: { type: "string" }, + orgName: { type: 'string' }, + tokenName: { type: 'string' }, + tokenSymbol: { type: 'string' }, VotingMachineParams: { - $ref: "VotingMachineParams", + $ref: 'VotingMachineParams', required: true }, schemes: { - $ref: "SchemeToggles", + $ref: 'SchemeToggles', require: true }, - ContributionReward: { $ref: "ContributionRewards" }, - UGenericScheme: { $ref: "UGenericSchemes" }, - SchemeRegistrar: { $ref: "SchemeRegistrars" }, - GlobalConstraintRegistrar: { $ref: "GlobalConstraintRegistrars" }, - UpgradeScheme: { $ref: "UpgradeSchemes" }, - CustomSchemes: { $ref: "CustomSchemes" }, - unregisterOwner: { type: "boolean" }, - useUController: { type: "boolean" }, - useDaoCreator: { type: "boolean" }, + ContributionReward: { $ref: 'ContributionRewards' }, + UGenericScheme: { $ref: 'UGenericSchemes' }, + SchemeRegistrar: { $ref: 'SchemeRegistrars' }, + GlobalConstraintRegistrar: { $ref: 'GlobalConstraintRegistrars' }, + UpgradeScheme: { $ref: 'UpgradeSchemes' }, + CustomSchemes: { $ref: 'CustomSchemes' }, + unregisterOwner: { type: 'boolean' }, + useUController: { type: 'boolean' }, + useDaoCreator: { type: 'boolean' }, founders: { - $ref: "Founders", + $ref: 'Founders', required: true }, // network overrides - mainnet: { type: "object" }, - rinkeby: { type: "object" }, - private: { type: "object" }, - ropsten: { type: "object" }, - kovan: { type: "object" } + mainnet: { type: 'object' }, + rinkeby: { type: 'object' }, + private: { type: 'object' }, + ropsten: { type: 'object' }, + kovan: { type: 'object' } } -}; +} -function sanitizeParams(paramsJsonObj) { - const result = validator.validate(paramsJsonObj, paramsSchema); +function sanitizeParams (paramsJsonObj) { + const result = validator.validate(paramsJsonObj, paramsSchema) if (!result.valid) { throw Error( - `Params Malformed, Errors:\n${result.errors.map(error => - error.toString() - )}` - ); + `Params Malformed, Errors:\n${result.errors.map(error => error.toString())}` + ) } } -module.exports = sanitizeParams; +module.exports = sanitizeParams diff --git a/packages/lib/src/dependency/arc/src/utils.js b/packages/lib/src/dependency/arc/src/utils.js index 8c5f52a3..af1ca8a0 100644 --- a/packages/lib/src/dependency/arc/src/utils.js +++ b/packages/lib/src/dependency/arc/src/utils.js @@ -1,209 +1,31 @@ -const path = require("path"); +const path = require('path') -function randomEl(list) { - var i = Math.floor(Math.random() * list.length); - return list[i]; +function randomEl (list) { + var i = Math.floor(Math.random() * list.length) + return list[i] } -var adjectives = [ - "adamant", - "adroit", - "amatory", - "animistic", - "antic", - "arcadian", - "baleful", - "bellicose", - "bilious", - "boorish", - "calamitous", - "caustic", - "cerulean", - "comely", - "concomitant", - "contumacious", - "corpulent", - "crapulous", - "defamatory", - "didactic", - "dilatory", - "dowdy", - "efficacious", - "effulgent", - "egregious", - "endemic", - "equanimous", - "execrable", - "fastidious", - "feckless", - "fecund", - "friable", - "fulsome", - "garrulous", - "guileless", - "gustatory", - "heuristic", - "histrionic", - "hubristic", - "incendiary", - "insidious", - "insolent", - "intransigent", - "inveterate", - "invidious", - "irksome", - "jejune", - "jocular", - "judicious", - "lachrymose", - "limpid", - "loquacious", - "luminous", - "mannered", - "mendacious", - "meretricious", - "minatory", - "mordant", - "munificent", - "nefarious", - "noxious", - "obtuse", - "parsimonious", - "pendulous", - "pernicious", - "pervasive", - "petulant", - "platitudinous", - "precipitate", - "propitious", - "puckish", - "querulous", - "quiescent", - "rebarbative", - "recalcitant", - "redolent", - "rhadamanthine", - "risible", - "ruminative", - "sagacious", - "salubrious", - "sartorial", - "sclerotic", - "serpentine", - "spasmodic", - "strident", - "taciturn", - "tenacious", - "tremulous", - "trenchant", - "turbulent", - "turgid", - "ubiquitous", - "uxorious", - "verdant", - "voluble", - "voracious", - "wheedling", - "withering", - "zealous" -]; -var nouns = [ - "ninja", - "chair", - "pancake", - "statue", - "unicorn", - "rainbows", - "laser", - "senor", - "bunny", - "captain", - "nibblets", - "cupcake", - "carrot", - "gnomes", - "glitter", - "potato", - "salad", - "toejam", - "curtains", - "beets", - "toilet", - "exorcism", - "stick figures", - "mermaid eggs", - "sea barnacles", - "dragons", - "jellybeans", - "snakes", - "dolls", - "bushes", - "cookies", - "apples", - "ukulele", - "kazoo", - "banjo", - "opera singer", - "circus", - "trampoline", - "carousel", - "carnival", - "locomotive", - "hot air balloon", - "animator", - "artisan", - "artist", - "colorist", - "inker", - "coppersmith", - "director", - "designer", - "flatter", - "stylist", - "leadman", - "limner", - "make-up artist", - "model", - "musician", - "penciller", - "producer", - "scenographer", - "silversmith", - "teacher", - "beader", - "foreman", - "maintenance", - "engineering", - "mechanic", - "miller", - "moldmaker", - "panel beater", - "patternmaker", - "plant operator", - "plumber", - "sawfiler", - "shop foreman", - "soaper", - "wheelwright", - "woodworkers" -]; +var adjectives = ['adamant', 'adroit', 'amatory', 'animistic', 'antic', 'arcadian', 'baleful', 'bellicose', 'bilious', 'boorish', 'calamitous', 'caustic', 'cerulean', 'comely', 'concomitant', 'contumacious', 'corpulent', 'crapulous', 'defamatory', 'didactic', 'dilatory', 'dowdy', 'efficacious', 'effulgent', 'egregious', 'endemic', 'equanimous', 'execrable', 'fastidious', 'feckless', 'fecund', 'friable', 'fulsome', 'garrulous', 'guileless', 'gustatory', 'heuristic', 'histrionic', 'hubristic', 'incendiary', 'insidious', 'insolent', 'intransigent', 'inveterate', 'invidious', 'irksome', 'jejune', 'jocular', 'judicious', 'lachrymose', 'limpid', 'loquacious', 'luminous', 'mannered', 'mendacious', 'meretricious', 'minatory', 'mordant', 'munificent', 'nefarious', 'noxious', 'obtuse', 'parsimonious', 'pendulous', 'pernicious', 'pervasive', 'petulant', 'platitudinous', 'precipitate', 'propitious', 'puckish', 'querulous', 'quiescent', 'rebarbative', 'recalcitant', 'redolent', 'rhadamanthine', 'risible', 'ruminative', 'sagacious', 'salubrious', 'sartorial', 'sclerotic', 'serpentine', 'spasmodic', 'strident', 'taciturn', 'tenacious', 'tremulous', 'trenchant', 'turbulent', 'turgid', 'ubiquitous', 'uxorious', 'verdant', 'voluble', 'voracious', 'wheedling', 'withering', 'zealous'] +var nouns = ['ninja', 'chair', 'pancake', 'statue', 'unicorn', 'rainbows', 'laser', 'senor', 'bunny', 'captain', 'nibblets', 'cupcake', 'carrot', 'gnomes', 'glitter', 'potato', 'salad', 'toejam', 'curtains', 'beets', 'toilet', 'exorcism', 'stick figures', 'mermaid eggs', 'sea barnacles', 'dragons', 'jellybeans', 'snakes', 'dolls', 'bushes', 'cookies', 'apples', 'ukulele', 'kazoo', 'banjo', 'opera singer', 'circus', 'trampoline', 'carousel', 'carnival', 'locomotive', 'hot air balloon', 'animator', 'artisan', 'artist', 'colorist', 'inker', 'coppersmith', 'director', 'designer', 'flatter', 'stylist', 'leadman', 'limner', 'make-up artist', 'model', 'musician', 'penciller', 'producer', 'scenographer', 'silversmith', 'teacher', 'beader', 'foreman', 'maintenance', 'engineering', 'mechanic', 'miller', 'moldmaker', 'panel beater', 'patternmaker', 'plant operator', 'plumber', 'sawfiler', 'shop foreman', 'soaper', 'wheelwright', 'woodworkers'] -const capitalize = s => { - if (typeof s !== "string") return ""; - return s.charAt(0).toUpperCase() + s.slice(1); -}; +const capitalize = (s) => { + if (typeof s !== 'string') return '' + return s.charAt(0).toUpperCase() + s.slice(1) +} -exports.generateRnadomName = function() { - return capitalize(randomEl(adjectives)) + " " + capitalize(randomEl(nouns)); -}; +exports.generateRnadomName = function () { + return capitalize(randomEl(adjectives)) + ' ' + capitalize(randomEl(nouns)) +} -exports.importAbi = function(abiPath) { - let abi = require(`${abiPath}`); +exports.importAbi = function (abiPath) { + let abi = require(`${abiPath}`) if (abi.rootVersion) { - const abiName = abiPath.substring(abiPath.lastIndexOf("/") + 1); - const abiFolder = path.dirname(abiPath); - const rootPath = path.join(abiFolder, `../${abi.rootVersion}/${abiName}`); - abi = require(`./${rootPath}`); + const abiName = abiPath.substring(abiPath.lastIndexOf('/') + 1) + const abiFolder = path.dirname(abiPath) + const rootPath = path.join( + abiFolder, `../${abi.rootVersion}/${abiName}` + ) + abi = require(`./${rootPath}`) } - return abi; -}; + return abi +} diff --git a/packages/lib/src/dependency/arc/types/migration.ts b/packages/lib/src/dependency/arc/types/migration.ts index bb4fa67e..de9f5bef 100644 --- a/packages/lib/src/dependency/arc/types/migration.ts +++ b/packages/lib/src/dependency/arc/types/migration.ts @@ -8,16 +8,11 @@ export interface DAOMigrationParams { VotingMachinesParams: GenesisProtocolConfig[]; schemes: { ContributionReward?: boolean; - UGenericScheme?: boolean; SchemeRegistrar?: boolean; }; ContributionReward?: { voteParams?: number; }[]; - UGenericScheme?: { - voteParams?: number; - targetContract: string; - }[]; SchemeRegistrar?: { voteRegisterParams?: number; voteRemoveParams?: number; diff --git a/packages/lib/src/dependency/arc/types/schemes.ts b/packages/lib/src/dependency/arc/types/schemes.ts index 03f2dbad..a8300701 100644 --- a/packages/lib/src/dependency/arc/types/schemes.ts +++ b/packages/lib/src/dependency/arc/types/schemes.ts @@ -3,8 +3,7 @@ import { Address } from "../../../dependency/web3"; export enum SchemeType { ContributionReward, - SchemeRegistrar, - GenericScheme + SchemeRegistrar } export interface Scheme { @@ -33,13 +32,3 @@ export class SchemeRegistrar implements Scheme { this.votingMachine = votingMachine; } } - -export class GenericScheme implements Scheme { - type = SchemeType.GenericScheme; - permissions: string = "0x00000010"; - votingMachine: VotingMachine; - - constructor(public contractToCall: Address, votingMachine: VotingMachine) { - this.votingMachine = votingMachine; - } -} diff --git a/packages/lib/src/forms/dao/SchemeForm.ts b/packages/lib/src/forms/dao/SchemeForm.ts index b904be88..f6f12b5b 100644 --- a/packages/lib/src/forms/dao/SchemeForm.ts +++ b/packages/lib/src/forms/dao/SchemeForm.ts @@ -3,13 +3,11 @@ import { Form } from "../../forms/Form"; import { AnyField, requireElement, - GenericSchemeForm, ContributionRewardForm, SchemeRegistrarForm, GenesisProtocolForm } from "../../forms"; import { - GenericScheme, ContributionReward, SchemeRegistrar, SchemeType @@ -17,7 +15,6 @@ import { import { Scheme } from "../../dependency/arc"; export type AnySchemeForm = - | GenericSchemeForm | ContributionRewardForm | SchemeRegistrarForm; @@ -65,10 +62,6 @@ export class SchemesForm extends Form { schemeForm = new SchemeRegistrarForm(); schemeForm.fromState(scheme as SchemeRegistrar); break; - case SchemeType.GenericScheme: - schemeForm = new GenericSchemeForm(); - schemeForm.fromState(scheme as GenericScheme); - break; default: throw Error(`Unimplemented SchemeType ${SchemeType[scheme.type]}`); } diff --git a/packages/lib/src/forms/dao/schemes/GenericSchemeForm.ts b/packages/lib/src/forms/dao/schemes/GenericSchemeForm.ts deleted file mode 100644 index bd5ca6ea..00000000 --- a/packages/lib/src/forms/dao/schemes/GenericSchemeForm.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { SchemeForm } from "../../../forms/dao/SchemeForm"; -import { - AnyField, - AddressField, - GenesisProtocolForm, - requiredText, - validAddress, - nonZeroAddress -} from "../../../forms"; -import { - SchemeType, - GenericScheme, - GenesisProtocol, - GenesisProtocolPreset -} from "../../../state"; - -// TODO: support custom permissions -// TODO: support custom addresses / versions? -export class GenericSchemeForm extends SchemeForm< - GenericScheme, - { - votingMachine: GenesisProtocolForm; - contractToCall: AddressField; - } -> { - constructor(form?: GenericSchemeForm) { - super(SchemeType.GenericScheme, { - votingMachine: form - ? form.$.votingMachine - : new GenesisProtocolForm({ preset: GenesisProtocolPreset.Normal }), - - contractToCall: new AddressField( - form - ? form.$.contractToCall.value - : "0x0000000000000000000000000000000000000000" - ) - .validators(requiredText, validAddress, nonZeroAddress) - .setDisplayName("Contract Address") - .setDescription("Address of the contract to call") - }); - - this.setDisplayName("Generic Scheme"); - this.setDescription( - "A scheme for proposing and executing calls to an arbitrary function on a specific contract on behalf of the organization avatar." - ); - } - - public toState(): GenericScheme { - return new GenericScheme( - this.$.contractToCall.value, - this.$.votingMachine.toState() - ); - } - - public fromState(state: GenericScheme) { - this.$.contractToCall.value = state.contractToCall; - // TODO: support multiple voting machine types - this.$.votingMachine.fromState(state.votingMachine as GenesisProtocol); - } - - public getParams(): AnyField[] { - return [this.$.contractToCall]; - } -} diff --git a/packages/lib/src/forms/dao/schemes/index.ts b/packages/lib/src/forms/dao/schemes/index.ts index 1662bb5b..4d1afd0a 100644 --- a/packages/lib/src/forms/dao/schemes/index.ts +++ b/packages/lib/src/forms/dao/schemes/index.ts @@ -1,3 +1,2 @@ export * from "./ContributionRewardForm"; -export * from "./GenericSchemeForm"; export * from "./SchemeRegistrarForm"; diff --git a/packages/lib/src/state.ts b/packages/lib/src/state.ts index 99c05b48..5f7dabfb 100644 --- a/packages/lib/src/state.ts +++ b/packages/lib/src/state.ts @@ -4,7 +4,6 @@ import { Member, Scheme, SchemeType, - GenericScheme, ContributionReward, SchemeRegistrar, GenesisProtocol @@ -13,7 +12,6 @@ export { SchemeType, ContributionReward, SchemeRegistrar, - GenericScheme, GenesisProtocol, GenesisProtocolPreset, DAOMigrationCallbacks, @@ -60,18 +58,6 @@ export const toDAOMigrationParams = ( params.schemes.ContributionReward = true; break; } - case SchemeType.GenericScheme: { - const genericScheme = scheme as GenericScheme; - if (!params.UGenericScheme) { - params.UGenericScheme = []; - } - params.UGenericScheme.push({ - voteParams: params.VotingMachinesParams.length, - targetContract: genericScheme.contractToCall - }); - params.schemes.UGenericScheme = true; - break; - } case SchemeType.SchemeRegistrar: { if (!params.SchemeRegistrar) { params.SchemeRegistrar = []; @@ -120,85 +106,60 @@ export const fromDAOMigrationParams = ( // schemes let schemes: Scheme[] = []; - Object.keys(params.schemes).forEach(type => { - // TODO: support multiple schemes of a single type - switch (type) { - case "ContributionReward": - if (params.schemes[type]) { - const config = params.ContributionReward - ? params.ContributionReward[0] - : undefined; - let index; - - if (config && config.voteParams) { - index = config.voteParams; - } else { - index = 0; - } - - const votingMachine = new GenesisProtocol({ - config: params.VotingMachinesParams[index] - }); - schemes.push(new ContributionReward(votingMachine)); - } - break; - case "UGenericScheme": - if (params.schemes[type]) { - const config = params.UGenericScheme - ? params.UGenericScheme[0] - : undefined; - let index; - let address; - - if (config && config.voteParams) { - index = config.voteParams; - } else { - index = 0; - } - - if (config && config.targetContract) { - address = config.targetContract; - } else { - address = "0x0000000000000000000000000000000000000000"; + if (params.schemes) { + Object.keys(params.schemes).forEach(type => { + // TODO: support multiple schemes of a single type + switch (type) { + case "ContributionReward": + if (params.schemes[type]) { + const config = params.ContributionReward + ? params.ContributionReward[0] + : undefined; + let index; + + if (config && config.voteParams) { + index = config.voteParams; + } else { + index = 0; + } + + const votingMachine = new GenesisProtocol({ + config: params.VotingMachinesParams[index] + }); + schemes.push(new ContributionReward(votingMachine)); } - - const votingMachine = new GenesisProtocol({ - config: params.VotingMachinesParams[index] - }); - - schemes.push(new GenericScheme(address, votingMachine)); - } - break; - case "SchemeRegistrar": - if (params.schemes[type]) { - const config = params.SchemeRegistrar - ? params.SchemeRegistrar[0] - : undefined; - let index; - - if (config) { - if (config.voteRegisterParams) { - index = config.voteRegisterParams; - } else if (config.voteRemoveParams) { - index = config.voteRemoveParams; + break; + case "SchemeRegistrar": + if (params.schemes[type]) { + const config = params.SchemeRegistrar + ? params.SchemeRegistrar[0] + : undefined; + let index; + + if (config) { + if (config.voteRegisterParams) { + index = config.voteRegisterParams; + } else if (config.voteRemoveParams) { + index = config.voteRemoveParams; + } else { + index = 0; + } } else { index = 0; } - } else { - index = 0; + + const votingMachine = new GenesisProtocol({ + config: params.VotingMachinesParams[index] + }); + + schemes.push(new SchemeRegistrar(votingMachine)); } - - const votingMachine = new GenesisProtocol({ - config: params.VotingMachinesParams[index] - }); - - schemes.push(new SchemeRegistrar(votingMachine)); - } - break; - default: - break; - } - }); + break; + default: + break; + } + }); + } return { config, diff --git a/packages/lib/test/dao-params/dao-params-test-3.json b/packages/lib/test/dao-params/dao-params-test-3.json index a9fcfab8..d52f70aa 100644 --- a/packages/lib/test/dao-params/dao-params-test-3.json +++ b/packages/lib/test/dao-params/dao-params-test-3.json @@ -7,8 +7,7 @@ "useDaoCreator": true, "schemes": { "ContributionReward": true, - "SchemeRegistrar": true, - "UGenericScheme": true + "SchemeRegistrar": true }, "VotingMachinesParams": [ { @@ -81,11 +80,5 @@ "voteRegisterParams": 1, "voteRemoveParams": 1 } - ], - "UGenericScheme": [ - { - "voteParams": 2, - "targetContract": "0xB1B7586656116D546033e3bAFF69BFcD6592225E" - } ] } diff --git a/packages/ui_v2/package.json b/packages/ui_v2/package.json index 4f9c771a..56167c07 100644 --- a/packages/ui_v2/package.json +++ b/packages/ui_v2/package.json @@ -1,6 +1,6 @@ { "name": "@dorgtech/daocreator-ui", - "version": "1.0.9", + "version": "1.0.10", "main": "./dist/index.js", "scripts": { "start": "react-scripts start", @@ -16,7 +16,7 @@ "dependencies": { "@date-io/core": "^1.3.6", "@date-io/date-fns": "^1.3.11", - "@dorgtech/daocreator-lib": "1.0.1", + "@dorgtech/daocreator-lib": "1.0.2", "@fortawesome/fontawesome-free": "^5.11.2", "@material-ui/core": "^4.7.2", "@material-ui/pickers": "3.2.2", diff --git a/packages/ui_v2/src/components/commonV2/dao/Migrator/DeployButton.tsx b/packages/ui_v2/src/components/commonV2/dao/Migrator/DeployButton.tsx index e7a33041..338c6671 100644 --- a/packages/ui_v2/src/components/commonV2/dao/Migrator/DeployButton.tsx +++ b/packages/ui_v2/src/components/commonV2/dao/Migrator/DeployButton.tsx @@ -417,11 +417,19 @@ export const DeployButton: FC = ({ migrationStates }) => { // Getting around unimplemented callback if (!result) return; - const network = await getNetworkName(); + let network = await getNetworkName(); + if (network === 'private') { + if (await web3.eth.net.getId() === 100) { + network = 'xdai' + } else if (await web3.eth.net.getId() === 77) { + network = 'sokol' + } + } let url; if (network === "mainnet") url = `https://alchemy.daostack.io/dao/${result.Avatar}`; else if (network === "rinkeby") url = `https://alchemy-staging-rinkeby.herokuapp.com/dao/${result.Avatar}`; + else if (network === "xdai") url = `https://alchemy-staging-xdai.herokuapp.com/dao/${result.Avatar}`; else url = `/dao/${result.Avatar}`; setAlchemyURL(url); diff --git a/packages/ui_v2/src/components/commonV2/dao/Schemes/AdvancedEditor.tsx b/packages/ui_v2/src/components/commonV2/dao/Schemes/AdvancedEditor.tsx index ad4e3eaa..f260ef00 100644 --- a/packages/ui_v2/src/components/commonV2/dao/Schemes/AdvancedEditor.tsx +++ b/packages/ui_v2/src/components/commonV2/dao/Schemes/AdvancedEditor.tsx @@ -12,7 +12,6 @@ import { } from "mdbreact"; import { AnySchemeForm, - GenericSchemeForm, ContributionRewardForm, SchemeRegistrarForm, SchemeType, @@ -39,8 +38,7 @@ interface Props { const schemeTemplates: AnySchemeForm[] = [ new ContributionRewardForm(), - new SchemeRegistrarForm(), - new GenericSchemeForm() + new SchemeRegistrarForm() ]; const AdvancedEditor: FC = ({ diff --git a/packages/ui_v2/src/components/commonV2/dao/Schemes/SchemeEditor.tsx b/packages/ui_v2/src/components/commonV2/dao/Schemes/SchemeEditor.tsx index 77fb89ab..74cc00e3 100644 --- a/packages/ui_v2/src/components/commonV2/dao/Schemes/SchemeEditor.tsx +++ b/packages/ui_v2/src/components/commonV2/dao/Schemes/SchemeEditor.tsx @@ -9,7 +9,6 @@ import { GenesisProtocolForm, ContributionRewardForm, SchemeRegistrarForm, - GenericSchemeForm, DurationField } from "@dorgtech/daocreator-lib"; @@ -27,7 +26,7 @@ interface Props { setLoadedSpeed: (speed: DAOSpeed) => void; } -export type FullSchemes = [ContributionRewardForm, SchemeRegistrarForm, GenericSchemeForm]; +export type FullSchemes = [ContributionRewardForm, SchemeRegistrarForm]; export type VotingMachinePresets = GenesisProtocolForm[]; @@ -45,24 +44,21 @@ const schemeSpeeds: SchemeSpeeds = new SchemeSpeeds([ DAOSpeed.Slow, new SchemePresets([ [SchemeType.ContributionReward, GenesisProtocolPreset.Critical], - [SchemeType.SchemeRegistrar, GenesisProtocolPreset.Critical], - [SchemeType.GenericScheme, GenesisProtocolPreset.Critical] + [SchemeType.SchemeRegistrar, GenesisProtocolPreset.Critical] ]) ], [ DAOSpeed.Medium, new SchemePresets([ [SchemeType.ContributionReward, GenesisProtocolPreset.Normal], - [SchemeType.SchemeRegistrar, GenesisProtocolPreset.Critical], - [SchemeType.GenericScheme, GenesisProtocolPreset.Normal] + [SchemeType.SchemeRegistrar, GenesisProtocolPreset.Critical] ]) ], [ DAOSpeed.Fast, new SchemePresets([ [SchemeType.ContributionReward, GenesisProtocolPreset.Easy], - [SchemeType.SchemeRegistrar, GenesisProtocolPreset.Normal], - [SchemeType.GenericScheme, GenesisProtocolPreset.Easy] + [SchemeType.SchemeRegistrar, GenesisProtocolPreset.Normal] ]) ] ]); @@ -70,7 +66,7 @@ const schemeSpeeds: SchemeSpeeds = new SchemeSpeeds([ const initialVotingMachines = () => { let vms = []; let i = 0; - for (i; i < 3; i++) { + for (i; i < 2; i++) { const schemePresetMap = schemeSpeeds.get(DAOSpeed.Medium); if (schemePresetMap === undefined) throw Error("Unimplemented Scheme Speed Configuration"); @@ -103,8 +99,7 @@ const SchemeEditor: FC = ({ form, toggleCollapse, modal, setModal, loaded const [fullSchemes, setFullSchemes] = useState([ new ContributionRewardForm(), - new SchemeRegistrarForm(), - new GenericSchemeForm() + new SchemeRegistrarForm() ]); const [presetVotingMachines, setPresetVotingMachines] = useState(initialVotingMachines); @@ -143,7 +138,6 @@ const SchemeEditor: FC = ({ form, toggleCollapse, modal, setModal, loaded const activeSchemes = [ containsType(SchemeType.ContributionReward), containsType(SchemeType.SchemeRegistrar), - containsType(SchemeType.GenericScheme) ]; updateSchemes(form.$, activeSchemes); diff --git a/yarn.lock b/yarn.lock index e45a3ad5..a9cb3f31 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1019,10 +1019,10 @@ dependencies: openzeppelin-solidity "2.2.0" -"@daostack/arc@0.0.1-rc.36": - version "0.0.1-rc.36" - resolved "https://registry.yarnpkg.com/@daostack/arc/-/arc-0.0.1-rc.36.tgz#7138b5439a7272b553982870b077bd7295edc389" - integrity sha512-rf2rlWoThZl+s6x/crj1buiVnAoCTUNzbEVvt+V/zFwg9pHW6jiNJQ1NvE8ha7DSokf0tKTyx1Q3emj5lR6KFA== +"@daostack/arc@0.0.1-rc.41": + version "0.0.1-rc.41" + resolved "https://registry.yarnpkg.com/@daostack/arc/-/arc-0.0.1-rc.41.tgz#06c639ccb464ca9592654c2f8d1436035b5f7d3d" + integrity sha512-U/M+ZhEV/4f/+zwZOjYNv67bbP386qSvas8LUB31bV0nzxQKhjG+8JzKKmxpCqz0ixLuzMG7/pJcn3dG2MF5Kg== dependencies: "@daostack/infra" "0.0.1-rc.15" math "0.0.3" @@ -1037,16 +1037,16 @@ ethereumjs-abi "^0.6.5" openzeppelin-solidity "2.3.0" -"@daostack/migration@0.0.1-rc.36-v5": - version "0.0.1-rc.36-v5" - resolved "https://registry.yarnpkg.com/@daostack/migration/-/migration-0.0.1-rc.36-v5.tgz#dde643d9adc29dbe4ba172c606836ac6a45cb78a" - integrity sha512-oUfgo4QeY/mXshentf3nZj5NDOxEft5Qgug2G6iBYmsem6LAANMpYZZ7rD4O+hoiSBNTm6ekrxTdLDsT7TfbVw== +"@daostack/migration@0.0.1-rc.41-v7": + version "0.0.1-rc.41-v7" + resolved "https://registry.yarnpkg.com/@daostack/migration/-/migration-0.0.1-rc.41-v7.tgz#7b4f219cec5b05c938f5b480a3149153fd472ee4" + integrity sha512-0efcx6Rty8krblSJnMrFSV9BldjNxqD7E35X66E1pdQnoHkG/VXhbc8wBlM6+3Y4hWunTPJ18Q3p2RK2pSBq5g== dependencies: - "@daostack/arc" "0.0.1-rc.36" + "@daostack/arc" "0.0.1-rc.41" "@daostack/arc-hive" "0.0.1-rc.4" ethereumjs-wallet "^0.6.3" fstream "^1.0.12" - ganache-cli "^6.4.1" + ganache-cli "6.9.0" hdwallet-accounts "0.0.1" inquirer "^6.2.2" jsonschema "^1.2.4" @@ -1056,7 +1056,7 @@ prompt-confirm "^2.0.4" rimraf "^2.6.3" tar "^4.4.8" - web3 "1.0.0-beta.37" + web3 "1.2.6" yargs "^12.0.2" "@date-io/core@^1.3.13", "@date-io/core@^1.3.6": @@ -3338,7 +3338,7 @@ ansi-yellow@^0.1.1: dependencies: ansi-wrap "0.1.0" -any-promise@1.3.0, any-promise@^1.0.0, any-promise@^1.3.0: +any-promise@1.3.0, any-promise@^1.0.0: version "1.3.0" resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= @@ -3835,18 +3835,6 @@ bl@^1.0.0: readable-stream "^2.3.5" safe-buffer "^5.1.1" -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - -bluebird@^2.9.34: - version "2.11.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" - integrity sha1-U0uQM8AiyVecVro7Plpcqvu2UOE= - bluebird@^3.5.0, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" @@ -3990,14 +3978,6 @@ browserify-rsa@^4.0.0: bn.js "^4.1.0" randombytes "^2.0.1" -browserify-sha3@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.4.tgz#086c47b8c82316c9d47022c26185954576dd8e26" - integrity sha1-CGxHuMgjFsnUcCLCYYWVRXbdjiY= - dependencies: - js-sha3 "^0.6.1" - safe-buffer "^5.1.1" - browserify-sign@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" @@ -4634,7 +4614,7 @@ commander@2.17.x: resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf" integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg== -commander@^2.11.0, commander@^2.20.0, commander@^2.8.1, commander@~2.20.3: +commander@^2.11.0, commander@^2.20.0, commander@~2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -6359,19 +6339,6 @@ eth-ens-namehash@2.0.8: idna-uts46-hx "^2.3.1" js-sha3 "^0.5.7" -eth-lib@0.1.27: - version "0.1.27" - resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.1.27.tgz#f0b0fd144f865d2d6bf8257a40004f2e75ca1dd6" - integrity sha512-B8czsfkJYzn2UIEMwjc7Mbj+Cy72V+/OXH/tb44LV8jhrjizQJJ325xMOMyk3+ETa6r6oi0jsUY14+om8mQMWA== - dependencies: - bn.js "^4.11.6" - elliptic "^6.4.0" - keccakjs "^0.2.1" - nano-json-stream-parser "^0.1.2" - servify "^0.1.12" - ws "^3.0.0" - xhr-request-promise "^0.1.2" - eth-lib@0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.7.tgz#2f93f17b1e23aec3759cd4a3fe20c1286a3fc1ca" @@ -6393,6 +6360,15 @@ eth-lib@^0.1.26: ws "^3.0.0" xhr-request-promise "^0.1.2" +eth-lib@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/eth-lib/-/eth-lib-0.2.8.tgz#b194058bef4b220ad12ea497431d6cb6aa0623c8" + integrity sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw== + dependencies: + bn.js "^4.11.6" + elliptic "^6.4.0" + xhr-request-promise "^0.1.2" + ethereum-blockies-base64@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/ethereum-blockies-base64/-/ethereum-blockies-base64-1.0.2.tgz#4aebca52142bf4d16a3144e6e2b59303e39ed2b3" @@ -6469,22 +6445,6 @@ ethereumjs-wallet@^0.6.3: utf8 "^3.0.0" uuid "^3.3.2" -ethers@4.0.0-beta.1: - version "4.0.0-beta.1" - resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.0-beta.1.tgz#0648268b83e0e91a961b1af971c662cdf8cbab6d" - integrity sha512-SoYhktEbLxf+fiux5SfCEwdzWENMvgIbMZD90I62s4GZD9nEjgEWy8ZboI3hck193Vs0bDoTohDISx84f2H2tw== - dependencies: - "@types/node" "^10.3.2" - aes-js "3.0.0" - bn.js "^4.4.0" - elliptic "6.3.3" - hash.js "1.1.3" - js-sha3 "0.5.7" - scrypt-js "2.0.3" - setimmediate "1.0.4" - uuid "2.0.1" - xmlhttprequest "1.8.0" - ethers@4.0.0-beta.3: version "4.0.0-beta.3" resolved "https://registry.yarnpkg.com/ethers/-/ethers-4.0.0-beta.3.tgz#15bef14e57e94ecbeb7f9b39dd0a4bd435bc9066" @@ -6517,11 +6477,6 @@ ethjs-util@0.1.6: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -eventemitter3@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.1.1.tgz#47786bdaa087caf7b1b75e73abc5c7d540158cd0" - integrity sha1-R3hr2qCHyvext15zq8XH1UAVjNA= - eventemitter3@3.1.2, eventemitter3@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" @@ -7061,14 +7016,6 @@ fs-extra@7.0.1, fs-extra@^7.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^2.0.0, fs-extra@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" - integrity sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU= - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - fs-extra@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -7094,16 +7041,6 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.6.0" -fs-promise@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/fs-promise/-/fs-promise-2.0.3.tgz#f64e4f854bcf689aa8bddcba268916db3db46854" - integrity sha1-9k5PhUvPaJqovdy6JokW2z20aFQ= - dependencies: - any-promise "^1.3.0" - fs-extra "^2.0.0" - mz "^2.6.0" - thenify-all "^1.6.0" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -7132,7 +7069,7 @@ fsevents@^1.2.7: bindings "^1.5.0" nan "^2.12.1" -fstream@^1.0.12, fstream@^1.0.8: +fstream@^1.0.12: version "1.0.12" resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== @@ -7152,10 +7089,10 @@ functional-red-black-tree@^1.0.1: resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= -ganache-cli@^6.4.1: - version "6.9.1" - resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.9.1.tgz#1e13eee098fb9f19b031a191ec3f62ae926ea8b3" - integrity sha512-VPBumkNUZzXDRQwVOby5YyQpd5t1clkr06xMgB28lZdEIn5ht1GMwUskOTFOAxdkQ4J12IWP0gdeacVRGowqbA== +ganache-cli@6.9.0: + version "6.9.0" + resolved "https://registry.yarnpkg.com/ganache-cli/-/ganache-cli-6.9.0.tgz#94d7e26964dff80b7382a33829ec75e15709a948" + integrity sha512-ZdL6kPrApXF/O+f6uU431OJcwxMk69H3KPDSHHrMP82ZvZRNpDHbR+rVv7XX/YUeoQ5q6nZ2AFiGiFAVn9pfzA== dependencies: ethereumjs-util "6.1.0" source-map-support "0.5.12" @@ -7428,7 +7365,24 @@ globby@^9.2.0: pify "^4.0.1" slash "^2.0.0" -got@7.1.0, got@^7.1.0: +got@9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +got@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/got/-/got-7.1.0.tgz#05450fd84094e6bbea56f451a43a9c289166385a" integrity sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw== @@ -7448,23 +7402,6 @@ got@7.1.0, got@^7.1.0: url-parse-lax "^1.0.0" url-to-options "^1.0.1" -got@9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - graceful-fs@^4.1.10, graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.3" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" @@ -9023,11 +8960,6 @@ js-sha3@0.5.7, js-sha3@^0.5.7: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" integrity sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc= -js-sha3@^0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.6.1.tgz#5b89f77a7477679877f58c4a075240934b1f95c0" - integrity sha1-W4n3enR3Z5h39YxKB1JAk0sflcA= - js-sha3@^0.8.0: version "0.8.0" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" @@ -9186,13 +9118,6 @@ json5@^2.1.0: dependencies: minimist "^1.2.0" -jsonfile@^2.1.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" - integrity sha1-NzaitCi4e72gzIO1P6PWM6NcKug= - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" @@ -9367,14 +9292,6 @@ keccak@^2.0.0: nan "^2.14.0" safe-buffer "^5.2.0" -keccakjs@^0.2.1: - version "0.2.3" - resolved "https://registry.yarnpkg.com/keccakjs/-/keccakjs-0.2.3.tgz#5e4e969ce39689a3861f445d7752ee3477f9fe72" - integrity sha512-BjLkNDcfaZ6l8HBG9tH0tpmDv3sS2mA7FNQxFHpCdzP3Gb2MVruXBSuoM66SnVxKJpAr5dKGdkHD+bDokt8fTg== - dependencies: - browserify-sha3 "^0.0.4" - sha3 "^1.2.2" - keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -10245,11 +10162,6 @@ moment@2.24.0, moment@^2.10.2, moment@^2.24.0: resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== -mout@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/mout/-/mout-0.11.1.tgz#ba3611df5f0e5b1ffbfd01166b8f02d1f5fa2b99" - integrity sha1-ujYR318OWx/7/QEWa48C0fX6K5k= - move-concurrently@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" @@ -10315,7 +10227,7 @@ mute-stream@0.0.8, mute-stream@~0.0.4: resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== -mz@^2.5.0, mz@^2.6.0: +mz@^2.5.0: version "2.7.0" resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== @@ -10324,12 +10236,7 @@ mz@^2.5.0, mz@^2.6.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== - -nan@^2.0.8, nan@^2.12.1, nan@^2.14.0, nan@^2.2.1, nan@^2.3.3: +nan@^2.0.8, nan@^2.12.1, nan@^2.14.0, nan@^2.2.1: version "2.14.0" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== @@ -10769,13 +10676,6 @@ object.values@^1.1.0: function-bind "^1.1.1" has "^1.0.3" -oboe@2.1.3: - version "2.1.3" - resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.3.tgz#2b4865dbd46be81225713f4e9bfe4bcf4f680a4f" - integrity sha1-K0hl29Rr6BIlcT9Om/5Lz09oCk8= - dependencies: - http-https "^1.0.0" - oboe@2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/oboe/-/oboe-2.1.4.tgz#20c88cdb0c15371bb04119257d4fdd34b0aa49f6" @@ -12433,11 +12333,6 @@ randomfill@^1.0.3: randombytes "^2.0.5" safe-buffer "^5.1.0" -randomhex@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/randomhex/-/randomhex-0.1.5.tgz#baceef982329091400f2a2912c6cd02f1094f585" - integrity sha1-us7vmCMpCRQA8qKRLGzQLxCU9YU= - range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" @@ -13439,14 +13334,6 @@ scrypt-js@2.0.3: resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-2.0.3.tgz#bb0040be03043da9a012a2cea9fc9f852cfc87d4" integrity sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q= -scrypt.js@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" - integrity sha1-r40UZbcemZARC+38WTuUeeA6ito= - dependencies: - scrypt "^6.0.2" - scryptsy "^1.2.1" - scrypt.js@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.3.0.tgz#6c62d61728ad533c8c376a2e5e3e86d41a95c4c0" @@ -13648,13 +13535,6 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" -sha3@^1.2.2: - version "1.2.6" - resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.6.tgz#102aa3e47dc793e2357902c3cce8760822f9e905" - integrity sha512-KgLGmJGrmNB4JWVsAV11Yk6KbvsAiygWJc7t5IebWva/0NukNrjJqhtKhzy3Eiv2AKuGvhZZt7dt1mDo7HkoiQ== - dependencies: - nan "2.13.2" - shallow-clone@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" @@ -14346,25 +14226,6 @@ svgo@^1.0.0, svgo@^1.2.2: unquote "~1.1.1" util.promisify "~1.0.0" -swarm-js@0.1.37: - version "0.1.37" - resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.37.tgz#27d485317a340bbeec40292af783cc10acfa4663" - integrity sha512-G8gi5fcXP/2upwiuOShJ258sIufBVztekgobr3cVgYXObZwJ5AXLqZn52AI+/ffft29pJexF9WNdUxjlkVehoQ== - dependencies: - bluebird "^3.5.0" - buffer "^5.0.5" - decompress "^4.0.0" - eth-lib "^0.1.26" - fs-extra "^2.1.2" - fs-promise "^2.0.0" - got "^7.1.0" - mime-types "^2.1.16" - mkdirp-promise "^5.0.1" - mock-fs "^4.1.0" - setimmediate "^1.0.5" - tar.gz "^1.0.5" - xhr-request-promise "^0.1.2" - swarm-js@0.1.39: version "0.1.39" resolved "https://registry.yarnpkg.com/swarm-js/-/swarm-js-0.1.39.tgz#79becb07f291d4b2a178c50fee7aa6e10342c0e8" @@ -14426,26 +14287,6 @@ tar-stream@^1.5.2: to-buffer "^1.1.1" xtend "^4.0.0" -tar.gz@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/tar.gz/-/tar.gz-1.0.7.tgz#577ef2c595faaa73452ef0415fed41113212257b" - integrity sha512-uhGatJvds/3diZrETqMj4RxBR779LKlIE74SsMcn5JProZsfs9j0QBwWO1RW+IWNJxS2x8Zzra1+AW6OQHWphg== - dependencies: - bluebird "^2.9.34" - commander "^2.8.1" - fstream "^1.0.8" - mout "^0.11.0" - tar "^2.1.1" - -tar@^2.1.1: - version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" - tar@^4.0.2, tar@^4.4.10, tar@^4.4.12, tar@^4.4.8: version "4.4.13" resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" @@ -14544,7 +14385,7 @@ text-table@0.2.0, text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -thenify-all@^1.0.0, thenify-all@^1.6.0: +thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" integrity sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY= @@ -14819,7 +14660,7 @@ typed-styles@^0.0.7: resolved "https://registry.yarnpkg.com/typed-styles/-/typed-styles-0.0.7.tgz#93392a008794c4595119ff62dde6809dbc40a3d9" integrity sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q== -typedarray-to-buffer@^3.1.2, typedarray-to-buffer@^3.1.5: +typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== @@ -14880,11 +14721,6 @@ unbzip2-stream@^1.0.9: buffer "^5.2.1" through "^2.3.8" -underscore@1.8.3: - version "1.8.3" - resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.8.3.tgz#4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022" - integrity sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI= - underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" @@ -15065,11 +14901,6 @@ use@^3.1.0: resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -utf8@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.1.tgz#2e01db02f7d8d0944f77104f1609eb0c304cf768" - integrity sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g= - utf8@3.0.0, utf8@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/utf8/-/utf8-3.0.0.tgz#f052eed1364d696e769ef058b183df88c87f69d1" @@ -15265,15 +15096,6 @@ wcwidth@^1.0.0, wcwidth@^1.0.1: dependencies: defaults "^1.0.3" -web3-bzz@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.0.0-beta.37.tgz#59e3e4f5a9d732731008fe9165c3ec8bf85d502f" - integrity sha512-E+dho49Nsm/QpQvYWOF35YDsQrMvLB19AApENxhlQsu6HpWQt534DQul0t3Y/aAh8rlKD6Kanxt8LhHDG3vejQ== - dependencies: - got "7.1.0" - swarm-js "0.1.37" - underscore "1.8.3" - web3-bzz@1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.4.tgz#a4adb7a8cba3d260de649bdb1f14ed359bfb3821" @@ -15284,14 +15106,15 @@ web3-bzz@1.2.4: swarm-js "0.1.39" underscore "1.9.1" -web3-core-helpers@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.37.tgz#04ec354b7f5c57234c309eea2bda9bf1f2fe68ba" - integrity sha512-efaLOzN28RMnbugnyelgLwPWWaSwElQzcAJ/x3PZu+uPloM/lE5x0YuBKvIh7/PoSMlHqtRWj1B8CpuQOUQ5Ew== +web3-bzz@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-bzz/-/web3-bzz-1.2.6.tgz#0b88c0b96029eaf01b10cb47c4d5f79db4668883" + integrity sha512-9NiHLlxdI1XeFtbPJAmi2jnnIHVF+GNy517wvOS72P7ZfuJTPwZaSNXfT01vWgPPE9R96/uAHDWHOg+T4WaDQQ== dependencies: - underscore "1.8.3" - web3-eth-iban "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + "@types/node" "^10.12.18" + got "9.6.0" + swarm-js "0.1.39" + underscore "1.9.1" web3-core-helpers@1.2.4: version "1.2.4" @@ -15302,16 +15125,14 @@ web3-core-helpers@1.2.4: web3-eth-iban "1.2.4" web3-utils "1.2.4" -web3-core-method@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.0.0-beta.37.tgz#53d148e63f818b23461b26307afdfbdaa9457744" - integrity sha512-pKWFUeqnVmzx3VrZg+CseSdrl/Yrk2ioid/HzolNXZE6zdoITZL0uRjnsbqXGEzgRRd1Oe/pFndpTlRsnxXloA== +web3-core-helpers@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-core-helpers/-/web3-core-helpers-1.2.6.tgz#7aacd25bf8015adcdfc0f3243d0dcfdff0373f7d" + integrity sha512-gYKWmC2HmO7RcDzpo4L1K8EIoy5L8iubNDuTC6q69UxczwqKF/Io0kbK/1Z10Av++NlzOSiuyGp2gc4t4UOsDw== dependencies: - underscore "1.8.3" - web3-core-helpers "1.0.0-beta.37" - web3-core-promievent "1.0.0-beta.37" - web3-core-subscriptions "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + underscore "1.9.1" + web3-eth-iban "1.2.6" + web3-utils "1.2.6" web3-core-method@1.2.4: version "1.2.4" @@ -15324,13 +15145,16 @@ web3-core-method@1.2.4: web3-core-subscriptions "1.2.4" web3-utils "1.2.4" -web3-core-promievent@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.0.0-beta.37.tgz#4e51c469d0a7ac0a969885a4dbcde8504abe5b02" - integrity sha512-GTF2r1lP8nJBeA5Gxq5yZpJy9l8Fb9CXGZPfF8jHvaRdQHtm2Z+NDhqYmF833lcdkokRSyfPcXlz1mlWeClFpg== +web3-core-method@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-core-method/-/web3-core-method-1.2.6.tgz#f5a3e4d304abaf382923c8ab88ec8eeef45c1b3b" + integrity sha512-r2dzyPEonqkBg7Mugq5dknhV5PGaZTHBZlS/C+aMxNyQs3T3eaAsCTqlQDitwNUh/sUcYPEGF0Vo7ahYK4k91g== dependencies: - any-promise "1.3.0" - eventemitter3 "1.1.1" + underscore "1.9.1" + web3-core-helpers "1.2.6" + web3-core-promievent "1.2.6" + web3-core-subscriptions "1.2.6" + web3-utils "1.2.6" web3-core-promievent@1.2.4: version "1.2.4" @@ -15340,16 +15164,13 @@ web3-core-promievent@1.2.4: any-promise "1.3.0" eventemitter3 "3.1.2" -web3-core-requestmanager@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.0.0-beta.37.tgz#721a75df5920621bff42d9d74f7a64413675d56b" - integrity sha512-66VUqye5BGp1Zz1r8psCxdNH+GtTjaFwroum2Osx+wbC5oRjAiXkkadiitf6wRb+edodjEMPn49u7B6WGNuewQ== +web3-core-promievent@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-core-promievent/-/web3-core-promievent-1.2.6.tgz#b1550a3a4163e48b8b704c1fe4b0084fc2dad8f5" + integrity sha512-km72kJef/qtQNiSjDJJVHIZvoVOm6ytW3FCYnOcCs7RIkviAb5JYlPiye0o4pJOLzCXYID7DK7Q9bhY8qWb1lw== dependencies: - underscore "1.8.3" - web3-core-helpers "1.0.0-beta.37" - web3-providers-http "1.0.0-beta.37" - web3-providers-ipc "1.0.0-beta.37" - web3-providers-ws "1.0.0-beta.37" + any-promise "1.3.0" + eventemitter3 "3.1.2" web3-core-requestmanager@1.2.4: version "1.2.4" @@ -15362,14 +15183,16 @@ web3-core-requestmanager@1.2.4: web3-providers-ipc "1.2.4" web3-providers-ws "1.2.4" -web3-core-subscriptions@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.37.tgz#40de5e2490cc05b15faa8f935c97fd48d670cd9a" - integrity sha512-FdXl8so9kwkRRWziuCSpFsAuAdg9KvpXa1fQlT16uoGcYYfxwFO/nkwyBGQzkZt7emShI2IRugcazyPCZDwkOA== +web3-core-requestmanager@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-core-requestmanager/-/web3-core-requestmanager-1.2.6.tgz#5808c0edc0d6e2991a87b65508b3a1ab065b68ec" + integrity sha512-QU2cbsj9Dm0r6om40oSwk8Oqbp3wTa08tXuMpSmeOTkGZ3EMHJ1/4LiJ8shwg1AvPMrKVU0Nri6+uBNCdReZ+g== dependencies: - eventemitter3 "1.1.1" - underscore "1.8.3" - web3-core-helpers "1.0.0-beta.37" + underscore "1.9.1" + web3-core-helpers "1.2.6" + web3-providers-http "1.2.6" + web3-providers-ipc "1.2.6" + web3-providers-ws "1.2.6" web3-core-subscriptions@1.2.4: version "1.2.4" @@ -15380,15 +15203,14 @@ web3-core-subscriptions@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-core@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.0.0-beta.37.tgz#66c2c7000772c9db36d737ada31607ace09b7e90" - integrity sha512-cIwEqCj7OJyefQNauI0HOgW4sSaOQ98V99H2/HEIlnCZylsDzfw7gtQUdwnRFiIyIxjbWy3iWsjwDPoXNPZBYg== +web3-core-subscriptions@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-core-subscriptions/-/web3-core-subscriptions-1.2.6.tgz#9d44189e2321f8f1abc31f6c09103b5283461b57" + integrity sha512-M0PzRrP2Ct13x3wPulFtc5kENH4UtnPxO9YxkfQlX2WRKENWjt4Rfq+BCVGYEk3rTutDfWrjfzjmqMRvXqEY5Q== dependencies: - web3-core-helpers "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-core-requestmanager "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + eventemitter3 "3.1.2" + underscore "1.9.1" + web3-core-helpers "1.2.6" web3-core@1.2.4: version "1.2.4" @@ -15403,14 +15225,17 @@ web3-core@1.2.4: web3-core-requestmanager "1.2.4" web3-utils "1.2.4" -web3-eth-abi@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.37.tgz#55592fa9cd2427d9f0441d78f3b8d0c1359a2a24" - integrity sha512-g9DKZGM2OqwKp/tX3W/yihcj7mQCtJ6CXyZXEIZfuDyRBED/iSEIFfieDOd+yo16sokLMig6FG7ADhhu+19hdA== +web3-core@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-core/-/web3-core-1.2.6.tgz#bb42a1d7ae49a7258460f0d95ddb00906f59ef92" + integrity sha512-y/QNBFtr5cIR8vxebnotbjWJpOnO8LDYEAzZjeRRUJh2ijmhjoYk7dSNx9ExgC0UCfNFRoNCa9dGRu/GAxwRlw== dependencies: - ethers "4.0.0-beta.1" - underscore "1.8.3" - web3-utils "1.0.0-beta.37" + "@types/bn.js" "^4.11.4" + "@types/node" "^12.6.1" + web3-core-helpers "1.2.6" + web3-core-method "1.2.6" + web3-core-requestmanager "1.2.6" + web3-utils "1.2.6" web3-eth-abi@1.2.4: version "1.2.4" @@ -15421,21 +15246,14 @@ web3-eth-abi@1.2.4: underscore "1.9.1" web3-utils "1.2.4" -web3-eth-accounts@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.37.tgz#0a5a9f14a6c3bd285e001c15eb3bb38ffa4b5204" - integrity sha512-uvbHL62/zwo4GDmwKdqH9c/EgYd8QVnAfpVw8D3epSISpgbONNY7Hr4MRMSd/CqAP12l2Ls9JVQGLhhC83bW6g== +web3-eth-abi@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth-abi/-/web3-eth-abi-1.2.6.tgz#b495383cc5c0d8e2857b26e7fe25606685983b25" + integrity sha512-w9GAyyikn8nSifSDZxAvU9fxtQSX+W2xQWMmrtTXmBGCaE4/ywKOSPAO78gq8AoU4Wq5yqVGKZLLbfpt7/sHlA== dependencies: - any-promise "1.3.0" - crypto-browserify "3.12.0" - eth-lib "0.2.7" - scrypt.js "0.2.0" - underscore "1.8.3" - uuid "2.0.1" - web3-core "1.0.0-beta.37" - web3-core-helpers "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + ethers "4.0.0-beta.3" + underscore "1.9.1" + web3-utils "1.2.6" web3-eth-accounts@1.2.4: version "1.2.4" @@ -15455,19 +15273,23 @@ web3-eth-accounts@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" -web3-eth-contract@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.37.tgz#87f93c95ed16f320ba54943b7886890de6766013" - integrity sha512-h1B3A8Z/C7BlnTCHkrWbXZQTViDxfR12lKMeTkT8Sqj5phFmxrBlPE4ORy4lf1Dk5b23mZYE0r/IRACx4ThCrQ== +web3-eth-accounts@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth-accounts/-/web3-eth-accounts-1.2.6.tgz#a1ba4bf75fa8102a3ec6cddd0eccd72462262720" + integrity sha512-cDVtonHRgzqi/ZHOOf8kfCQWFEipcfQNAMzXIaKZwc0UUD9mgSI5oJrN45a89Ze+E6Lz9m77cDG5Ax9zscSkcw== dependencies: - underscore "1.8.3" - web3-core "1.0.0-beta.37" - web3-core-helpers "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-core-promievent "1.0.0-beta.37" - web3-core-subscriptions "1.0.0-beta.37" - web3-eth-abi "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + "@web3-js/scrypt-shim" "^0.1.0" + any-promise "1.3.0" + crypto-browserify "3.12.0" + eth-lib "^0.2.8" + ethereumjs-common "^1.3.2" + ethereumjs-tx "^2.1.1" + underscore "1.9.1" + uuid "3.3.2" + web3-core "1.2.6" + web3-core-helpers "1.2.6" + web3-core-method "1.2.6" + web3-utils "1.2.6" web3-eth-contract@1.2.4: version "1.2.4" @@ -15484,19 +15306,20 @@ web3-eth-contract@1.2.4: web3-eth-abi "1.2.4" web3-utils "1.2.4" -web3-eth-ens@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.37.tgz#714ecb01eb447ee3eb39b2b20a10ae96edb1f01f" - integrity sha512-dR3UkrVzdRrJhfP57xBPx0CMiVnCcYFvh+u2XMkGydrhHgupSUkjqGr89xry/j1T0BkuN9mikpbyhdCVMXqMbg== +web3-eth-contract@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth-contract/-/web3-eth-contract-1.2.6.tgz#39111543960035ed94c597a239cf5aa1da796741" + integrity sha512-ak4xbHIhWgsbdPCkSN+HnQc1SH4c856y7Ly+S57J/DQVzhFZemK5HvWdpwadJrQTcHET3ZeId1vq3kmW7UYodw== dependencies: - eth-ens-namehash "2.0.8" - underscore "1.8.3" - web3-core "1.0.0-beta.37" - web3-core-helpers "1.0.0-beta.37" - web3-core-promievent "1.0.0-beta.37" - web3-eth-abi "1.0.0-beta.37" - web3-eth-contract "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + "@types/bn.js" "^4.11.4" + underscore "1.9.1" + web3-core "1.2.6" + web3-core-helpers "1.2.6" + web3-core-method "1.2.6" + web3-core-promievent "1.2.6" + web3-core-subscriptions "1.2.6" + web3-eth-abi "1.2.6" + web3-utils "1.2.6" web3-eth-ens@1.2.4: version "1.2.4" @@ -15512,13 +15335,19 @@ web3-eth-ens@1.2.4: web3-eth-contract "1.2.4" web3-utils "1.2.4" -web3-eth-iban@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.37.tgz#313a3f18ae2ab00ba98678ea1156b09ef32a3655" - integrity sha512-WQRniGJFxH/XCbd7miO6+jnUG+6bvuzfeufPIiOtCbeIC1ypp1kSqER8YVBDrTyinU1xnf1U5v0KBZ2yiWBJxQ== +web3-eth-ens@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth-ens/-/web3-eth-ens-1.2.6.tgz#bf86a624c4c72bc59913c2345180d3ea947e110d" + integrity sha512-8UEqt6fqR/dji/jBGPFAyBs16OJjwi0t2dPWXPyGXmty/fH+osnXwWXE4HRUyj4xuafiM5P1YkXMsPhKEadjiw== dependencies: - bn.js "4.11.6" - web3-utils "1.0.0-beta.37" + eth-ens-namehash "2.0.8" + underscore "1.9.1" + web3-core "1.2.6" + web3-core-helpers "1.2.6" + web3-core-promievent "1.2.6" + web3-eth-abi "1.2.6" + web3-eth-contract "1.2.6" + web3-utils "1.2.6" web3-eth-iban@1.2.4: version "1.2.4" @@ -15528,16 +15357,13 @@ web3-eth-iban@1.2.4: bn.js "4.11.8" web3-utils "1.2.4" -web3-eth-personal@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.37.tgz#187472f51861e2b6d45da43411801bc91a859f9a" - integrity sha512-B4dZpGbD+nGnn48i6nJBqrQ+HB7oDmd+Q3wGRKOsHSK5HRWO/KwYeA7wgwamMAElkut50lIsT9EJl4Apfk3G5Q== +web3-eth-iban@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth-iban/-/web3-eth-iban-1.2.6.tgz#0b22191fd1aa6e27f7ef0820df75820bfb4ed46b" + integrity sha512-TPMc3BW9Iso7H+9w+ytbqHK9wgOmtocyCD3PaAe5Eie50KQ/j7ThA60dGJnxItVo6yyRv5pZAYxPVob9x/fJlg== dependencies: - web3-core "1.0.0-beta.37" - web3-core-helpers "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-net "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + bn.js "4.11.8" + web3-utils "1.2.6" web3-eth-personal@1.2.4: version "1.2.4" @@ -15551,24 +15377,17 @@ web3-eth-personal@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" -web3-eth@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.0.0-beta.37.tgz#0e8ffcd857a5f85ae4b5f052ad831ca5c56f4f74" - integrity sha512-Eb3aGtkz3G9q+Z9DKgSQNbn/u8RtcZQQ0R4sW9hy5KK47GoT6vab5c6DiD3QWzI0BzitHzR5Ji+3VHf/hPUGgw== - dependencies: - underscore "1.8.3" - web3-core "1.0.0-beta.37" - web3-core-helpers "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-core-subscriptions "1.0.0-beta.37" - web3-eth-abi "1.0.0-beta.37" - web3-eth-accounts "1.0.0-beta.37" - web3-eth-contract "1.0.0-beta.37" - web3-eth-ens "1.0.0-beta.37" - web3-eth-iban "1.0.0-beta.37" - web3-eth-personal "1.0.0-beta.37" - web3-net "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" +web3-eth-personal@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth-personal/-/web3-eth-personal-1.2.6.tgz#47a0a0657ec04dd77f95451a6869d4751d324b6b" + integrity sha512-T2NUkh1plY8d7wePXSoHnaiKOd8dLNFaQfgBl9JHU6S7IJrG9jnYD9bVxLEgRUfHs9gKf9tQpDf7AcPFdq/A8g== + dependencies: + "@types/node" "^12.6.1" + web3-core "1.2.6" + web3-core-helpers "1.2.6" + web3-core-method "1.2.6" + web3-net "1.2.6" + web3-utils "1.2.6" web3-eth@1.2.4: version "1.2.4" @@ -15589,14 +15408,24 @@ web3-eth@1.2.4: web3-net "1.2.4" web3-utils "1.2.4" -web3-net@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.0.0-beta.37.tgz#b494136043f3c6ba84fe4a47d4c028c2a63c9a8e" - integrity sha512-xG/uBtMdDa1UMXw9KjDUgf3fXA/fDEJUYUS0TDn+U9PMgngA+UVECHNNvQTrVVDxEky38V3sahwIDiopNsQdsw== +web3-eth@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-eth/-/web3-eth-1.2.6.tgz#15a8c65fdde0727872848cae506758d302d8d046" + integrity sha512-ROWlDPzh4QX6tlGGGlAK6X4kA2n0/cNj/4kb0nNVWkRouGmYO0R8k6s47YxYHvGiXt0s0++FUUv5vAbWovtUQw== dependencies: - web3-core "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + underscore "1.9.1" + web3-core "1.2.6" + web3-core-helpers "1.2.6" + web3-core-method "1.2.6" + web3-core-subscriptions "1.2.6" + web3-eth-abi "1.2.6" + web3-eth-accounts "1.2.6" + web3-eth-contract "1.2.6" + web3-eth-ens "1.2.6" + web3-eth-iban "1.2.6" + web3-eth-personal "1.2.6" + web3-net "1.2.6" + web3-utils "1.2.6" web3-net@1.2.4: version "1.2.4" @@ -15607,13 +15436,14 @@ web3-net@1.2.4: web3-core-method "1.2.4" web3-utils "1.2.4" -web3-providers-http@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.0.0-beta.37.tgz#c06efd60e16e329e25bd268d2eefc68d82d13651" - integrity sha512-FM/1YDB1jtZuTo78habFj7S9tNHoqt0UipdyoQV29b8LkGKZV9Vs3is8L24hzuj1j/tbwkcAH+ewIseHwu0DTg== +web3-net@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-net/-/web3-net-1.2.6.tgz#035ca0fbe55282fda848ca17ebb4c8966147e5ea" + integrity sha512-hsNHAPddrhgjWLmbESW0KxJi2GnthPcow0Sqpnf4oB6+/+ZnQHU9OsIyHb83bnC1OmunrK2vf9Ye2mLPdFIu3A== dependencies: - web3-core-helpers "1.0.0-beta.37" - xhr2-cookies "1.1.0" + web3-core "1.2.6" + web3-core-method "1.2.6" + web3-utils "1.2.6" web3-providers-http@1.2.4: version "1.2.4" @@ -15623,14 +15453,13 @@ web3-providers-http@1.2.4: web3-core-helpers "1.2.4" xhr2-cookies "1.1.0" -web3-providers-ipc@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.0.0-beta.37.tgz#55d247e7197257ca0c3e4f4b0fe1561311b9d5b9" - integrity sha512-NdRPRxYMIU0C3u18NI8u4bwbhI9pCg5nRgDGYcmSAx5uOBxiYcQy+hb0WkJRRhBoyIXJmy+s26FoH8904+UnPg== +web3-providers-http@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-providers-http/-/web3-providers-http-1.2.6.tgz#3c7b1252751fb37e53b873fce9dbb6340f5e31d9" + integrity sha512-2+SaFCspb5f82QKuHB3nEPQOF9iSWxRf7c18fHtmnLNVkfG9SwLN1zh67bYn3tZGUdOI3gj8aX4Uhfpwx9Ezpw== dependencies: - oboe "2.1.3" - underscore "1.8.3" - web3-core-helpers "1.0.0-beta.37" + web3-core-helpers "1.2.6" + xhr2-cookies "1.1.0" web3-providers-ipc@1.2.4: version "1.2.4" @@ -15641,14 +15470,14 @@ web3-providers-ipc@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-providers-ws@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.0.0-beta.37.tgz#77c15aebc00b75d760d22d063ac2e415bdbef72f" - integrity sha512-8p6ZLv+1JYa5Vs8oBn33Nn3VGFBbF+wVfO+b78RJS1Qf1uIOzjFVDk3XwYDD7rlz9G5BKpxhaQw+6EGQ7L02aw== +web3-providers-ipc@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-providers-ipc/-/web3-providers-ipc-1.2.6.tgz#adabab5ac66b3ff8a26c7dc97af3f1a6a7609701" + integrity sha512-b0Es+/GTZyk5FG3SgUDW+2/mBwJAXWt5LuppODptiOas8bB2khLjG6+Gm1K4uwOb+1NJGPt5mZZ8Wi7vibtQ+A== dependencies: - underscore "1.8.3" - web3-core-helpers "1.0.0-beta.37" - websocket "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" + oboe "2.1.4" + underscore "1.9.1" + web3-core-helpers "1.2.6" web3-providers-ws@1.2.4: version "1.2.4" @@ -15659,15 +15488,14 @@ web3-providers-ws@1.2.4: underscore "1.9.1" web3-core-helpers "1.2.4" -web3-shh@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.0.0-beta.37.tgz#3246ce5229601b525020828a56ee283307057105" - integrity sha512-h5STG/xqZNQWtCLYOu7NiMqwqPea8SfkKQUPUFxXKIPVCFVKpHuQEwW1qcPQRJMLhlQIv17xuoUe1A+RzDNbrw== +web3-providers-ws@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-providers-ws/-/web3-providers-ws-1.2.6.tgz#3cecc49f7c99f07a75076d3c54247050bc4f7e11" + integrity sha512-20waSYX+gb5M5yKhug5FIwxBBvkKzlJH7sK6XEgdOx6BZ9YYamLmvg9wcRVtnSZO8hV/3cWenO/tRtTrHVvIgQ== dependencies: - web3-core "1.0.0-beta.37" - web3-core-method "1.0.0-beta.37" - web3-core-subscriptions "1.0.0-beta.37" - web3-net "1.0.0-beta.37" + "@web3-js/websocket" "^1.0.29" + underscore "1.9.1" + web3-core-helpers "1.2.6" web3-shh@1.2.4: version "1.2.4" @@ -15679,18 +15507,15 @@ web3-shh@1.2.4: web3-core-subscriptions "1.2.4" web3-net "1.2.4" -web3-utils@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.0.0-beta.37.tgz#ab868a90fe5e649337e38bdaf72133fcbf4d414d" - integrity sha512-kA1fyhO8nKgU21wi30oJQ/ssvu+9srMdjOTKbHYbQe4ATPcr5YNwwrxG3Bcpbu1bEwRUVKHCkqi+wTvcAWBdlQ== +web3-shh@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-shh/-/web3-shh-1.2.6.tgz#2492616da4cac32d4c7534b890f43bac63190c14" + integrity sha512-rouWyOOM6YMbLQd65grpj8BBezQfgNeRRX+cGyW4xsn6Xgu+B73Zvr6OtA/ftJwwa9bqHGpnLrrLMeWyy4YLUw== dependencies: - bn.js "4.11.6" - eth-lib "0.1.27" - ethjs-unit "0.1.6" - number-to-bn "1.7.0" - randomhex "0.1.5" - underscore "1.8.3" - utf8 "2.1.1" + web3-core "1.2.6" + web3-core-method "1.2.6" + web3-core-subscriptions "1.2.6" + web3-net "1.2.6" web3-utils@1.2.4: version "1.2.4" @@ -15706,18 +15531,19 @@ web3-utils@1.2.4: underscore "1.9.1" utf8 "3.0.0" -web3@1.0.0-beta.37: - version "1.0.0-beta.37" - resolved "https://registry.yarnpkg.com/web3/-/web3-1.0.0-beta.37.tgz#b42c30e67195f816cd19d048fda872f70eca7083" - integrity sha512-8XLgUspdzicC/xHG82TLrcF/Fxzj2XYNJ1KTYnepOI77bj5rvpsxxwHYBWQ6/JOjk0HkZqoBfnXWgcIHCDhZhQ== +web3-utils@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3-utils/-/web3-utils-1.2.6.tgz#b9a25432da00976457fcc1094c4af8ac6d486db9" + integrity sha512-8/HnqG/l7dGmKMgEL9JeKPTtjScxOePTzopv5aaKFExPfaBrYRkgoMqhoowCiAl/s16QaTn4DoIF1QC4YsT7Mg== dependencies: - web3-bzz "1.0.0-beta.37" - web3-core "1.0.0-beta.37" - web3-eth "1.0.0-beta.37" - web3-eth-personal "1.0.0-beta.37" - web3-net "1.0.0-beta.37" - web3-shh "1.0.0-beta.37" - web3-utils "1.0.0-beta.37" + bn.js "4.11.8" + eth-lib "0.2.7" + ethereum-bloom-filters "^1.0.6" + ethjs-unit "0.1.6" + number-to-bn "1.7.0" + randombytes "^2.1.0" + underscore "1.9.1" + utf8 "3.0.0" web3@1.2.4: version "1.2.4" @@ -15733,6 +15559,20 @@ web3@1.2.4: web3-shh "1.2.4" web3-utils "1.2.4" +web3@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/web3/-/web3-1.2.6.tgz#c497dcb14cdd8d6d9fb6b445b3b68ff83f8ccf68" + integrity sha512-tpu9fLIComgxGrFsD8LUtA4s4aCZk7px8UfcdEy6kS2uDi/ZfR07KJqpXZMij7Jvlq+cQrTAhsPSiBVvoMaivA== + dependencies: + "@types/node" "^12.6.1" + web3-bzz "1.2.6" + web3-core "1.2.6" + web3-eth "1.2.6" + web3-eth-personal "1.2.6" + web3-net "1.2.6" + web3-shh "1.2.6" + web3-utils "1.2.6" + webidl-conversions@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" @@ -15854,15 +15694,6 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== -"websocket@git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible": - version "1.0.26" - resolved "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" - dependencies: - debug "^2.2.0" - nan "^2.3.3" - typedarray-to-buffer "^3.1.2" - yaeti "^0.0.6" - whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0"